Compare commits
476 Commits
chadv/cros
...
mesa-12.0.
Author | SHA1 | Date | |
---|---|---|---|
|
2fc6a31f10 | ||
|
63001e7ddf | ||
|
7757de1ebf | ||
|
8e9b6161eb | ||
|
7c96b11fd6 | ||
|
49e84b8f18 | ||
|
463d9ea0dc | ||
|
53e8701c7b | ||
|
0fa0e2a505 | ||
|
9a8d605398 | ||
|
17d40ca82b | ||
|
a8e4b59cfd | ||
|
2566315063 | ||
|
b529a77d79 | ||
|
d159ca4fa2 | ||
|
1ce414accf | ||
|
e12b7486b3 | ||
|
1d0c79b13b | ||
|
04f04ab6a6 | ||
|
5af16ddf84 | ||
|
178c34c535 | ||
|
7c583adfb5 | ||
|
f70585e56a | ||
|
2d48468e58 | ||
|
ab0183172f | ||
|
1d4c887020 | ||
|
a0e81225bd | ||
|
6898eb5859 | ||
|
9aa4e400d2 | ||
|
b061b2e3eb | ||
|
69acfb7c94 | ||
|
544a92ad49 | ||
|
9fced1aa53 | ||
|
5ad09f744c | ||
|
6001e37b8e | ||
|
e45e500d4b | ||
|
4ec509533e | ||
|
731e6575e6 | ||
|
ab157ffd86 | ||
|
61a6d84679 | ||
|
fabc5c2783 | ||
|
ec68600280 | ||
|
838c1cbde4 | ||
|
965ceef596 | ||
|
0f097f28eb | ||
|
7c583f85e1 | ||
|
cdfd7c7b72 | ||
|
e671f40e79 | ||
|
42fe245370 | ||
|
015b920fb4 | ||
|
32a0038a02 | ||
|
346f9e5a85 | ||
|
7fe8cad4e4 | ||
|
6847a37363 | ||
|
bf61f2e5c3 | ||
|
d2f0a2925f | ||
|
9e71069d8f | ||
|
8d1029fb7b | ||
|
16751e0be4 | ||
|
52f094859a | ||
|
21411adc27 | ||
|
e609ec2c1a | ||
|
610857acea | ||
|
de1f9ce703 | ||
|
951b508e44 | ||
|
47b72990fe | ||
|
9cf5eb292b | ||
|
6ea7a82b5e | ||
|
ab441496ca | ||
|
d1142926c2 | ||
|
8b76a3744c | ||
|
d279dec359 | ||
|
c04ee8c110 | ||
|
07df4bf0c8 | ||
|
32c009b116 | ||
|
ea29312a79 | ||
|
bc40bc5527 | ||
|
0c25b3e4b0 | ||
|
e1698fa455 | ||
|
3dca5c8eb1 | ||
|
659d9f189c | ||
|
1959b57310 | ||
|
fce2e3b493 | ||
|
236172997c | ||
|
cd009c46be | ||
|
f20168723f | ||
|
6980f686d0 | ||
|
9e22182223 | ||
|
e82567c02b | ||
|
6503a05f35 | ||
|
447501914a | ||
|
f8a5d340e8 | ||
|
6ec0c92b3c | ||
|
fbde508c18 | ||
|
178b889823 | ||
|
7208d82dfb | ||
|
be0344f630 | ||
|
6156d8d93e | ||
|
3237c07e98 | ||
|
5f09454e34 | ||
|
1951df7812 | ||
|
2f8cd4a8c3 | ||
|
2f80fb368b | ||
|
e1c20919a8 | ||
|
a94056e2c7 | ||
|
d70f97784b | ||
|
cd10b86026 | ||
|
3b4c74963a | ||
|
faa432c0b6 | ||
|
271eee2464 | ||
|
fd2312e745 | ||
|
67032af87a | ||
|
f9964dd2c6 | ||
|
1c9412bb1a | ||
|
726f47e495 | ||
|
1dd0c22ab0 | ||
|
a00081a9e8 | ||
|
626f21051b | ||
|
629a7b32e0 | ||
|
749e4cb96b | ||
|
48e9ecc47f | ||
|
57c1d0ea07 | ||
|
fb8b548ac1 | ||
|
92799eee93 | ||
|
b717b49286 | ||
|
bb0c49bf76 | ||
|
de695014eb | ||
|
67e04622d8 | ||
|
fde7fc1ab2 | ||
|
abaf0e9817 | ||
|
485c6d231e | ||
|
1f3ce210cd | ||
|
f123f574fa | ||
|
bbb0587c78 | ||
|
fb4ab871a8 | ||
|
53bb4e0354 | ||
|
aeb3ca9754 | ||
|
b1b601fc7c | ||
|
7441632753 | ||
|
56d6f64206 | ||
|
f194c84b37 | ||
|
cb9a2a4b85 | ||
|
9798eb14da | ||
|
60e41ca10a | ||
|
826117a1c4 | ||
|
f334b6deaa | ||
|
30c6bff143 | ||
|
474b169c1f | ||
|
6deeccf5aa | ||
|
bf11931c95 | ||
|
17e1b016fc | ||
|
b0d1395480 | ||
|
ad09c8142f | ||
|
2e010ab1cc | ||
|
0aae486a8b | ||
|
605063953d | ||
|
cbdbf67f1c | ||
|
a2aec66444 | ||
|
1ed8237b1a | ||
|
e7de53fefd | ||
|
76a2950c1e | ||
|
d6c387933d | ||
|
60eabe9ad3 | ||
|
04584d5835 | ||
|
2035ac24ce | ||
|
72d287e347 | ||
|
3a35da7e8a | ||
|
bc68532a06 | ||
|
edfc17a19a | ||
|
04277f058d | ||
|
a2770e55a2 | ||
|
a705f82a56 | ||
|
3a146a789c | ||
|
8b06176f31 | ||
|
ab8938817f | ||
|
88a095962f | ||
|
450f076482 | ||
|
168fdc6a07 | ||
|
5193fe9f4f | ||
|
4a3d510b5b | ||
|
63b7c6ffc8 | ||
|
3276443935 | ||
|
8a700c562c | ||
|
dcc4df858a | ||
|
dbb4c3c7c8 | ||
|
7af5c2834c | ||
|
0e5e20dca0 | ||
|
cc2c350416 | ||
|
66fe2be1f5 | ||
|
568ba49673 | ||
|
134523aa7d | ||
|
9f364ed35e | ||
|
d0e1d6b1c8 | ||
|
7d40db8cdb | ||
|
250e13e585 | ||
|
5469fc9800 | ||
|
951be8a50c | ||
|
b08e5a1940 | ||
|
2ad47d912e | ||
|
bb819a9e21 | ||
|
0076e14f53 | ||
|
930425df1e | ||
|
700c1412e7 | ||
|
1eaba7b5b3 | ||
|
684e555aaa | ||
|
dcc6dde5f9 | ||
|
6d47c3eb4e | ||
|
7f0984ca51 | ||
|
94bfef8a71 | ||
|
2bd400d953 | ||
|
d4ab5bcad5 | ||
|
b82362f52c | ||
|
2fc24cfd8c | ||
|
507d19c44f | ||
|
a6a246e17c | ||
|
a51a9d7ba3 | ||
|
4f784775a7 | ||
|
48fe283158 | ||
|
f41f78cda1 | ||
|
197e2eaea8 | ||
|
eadccf8c67 | ||
|
1fc705366c | ||
|
91de94a119 | ||
|
d7ea3eada7 | ||
|
0af4f5c1ba | ||
|
335193107a | ||
|
32bb867118 | ||
|
60b5ba557e | ||
|
9013f56bb7 | ||
|
133d0f0882 | ||
|
1e8fb90f19 | ||
|
6c1911effb | ||
|
aefcbf41ef | ||
|
892cbc202c | ||
|
7a4641cdbe | ||
|
13d82b7690 | ||
|
94cd7425e8 | ||
|
40a9ffbbca | ||
|
02bf08e124 | ||
|
feaa68e38a | ||
|
72cc8544a8 | ||
|
fcefb53c37 | ||
|
913e9e14f0 | ||
|
a49f97fae3 | ||
|
672872051d | ||
|
667beb92a9 | ||
|
262282c1bf | ||
|
350ae65585 | ||
|
415869c5c9 | ||
|
6a3f08be3a | ||
|
0315650532 | ||
|
9259e0f990 | ||
|
dbc94da586 | ||
|
1dd276aa7c | ||
|
652161bdc8 | ||
|
29b24d75eb | ||
|
8b3333d1df | ||
|
bf59ce8869 | ||
|
0a7671a309 | ||
|
69234ef45e | ||
|
2681454102 | ||
|
e9fd680fde | ||
|
6a6947d89a | ||
|
1673dec65c | ||
|
af12f81147 | ||
|
d9219b5b79 | ||
|
abfed13bf4 | ||
|
8ac0a713f7 | ||
|
f7af3868f7 | ||
|
15d06d4d61 | ||
|
6fd7d618f4 | ||
|
045d6bc023 | ||
|
b2fe134064 | ||
|
2e8129ddf8 | ||
|
5e0b11cb6d | ||
|
6306930c3f | ||
|
76377387c2 | ||
|
6775b169cd | ||
|
a0235eb0f7 | ||
|
09a098bdeb | ||
|
f3c8dde2e4 | ||
|
3fddb9fd46 | ||
|
f614a1f4d8 | ||
|
f4bc7218d5 | ||
|
77f241bd37 | ||
|
deedb368de | ||
|
bac23b13eb | ||
|
b03b256e92 | ||
|
52ae654569 | ||
|
f675339b22 | ||
|
cdbcd315b3 | ||
|
7f1a4dc740 | ||
|
97440cc2ed | ||
|
3265becac3 | ||
|
033279c961 | ||
|
6572273631 | ||
|
dab4a6001b | ||
|
286ed3aff0 | ||
|
baa6ef4ed0 | ||
|
b7e91a0421 | ||
|
05c5ed47d1 | ||
|
a9647850d1 | ||
|
7d41c8aa25 | ||
|
575f9eaa2d | ||
|
792a5ee425 | ||
|
59841f5466 | ||
|
966ee94558 | ||
|
8ed5204182 | ||
|
28294573c7 | ||
|
7bed792ebb | ||
|
7d5cdb7675 | ||
|
465be91421 | ||
|
4a6fecdf69 | ||
|
883a1b3bd2 | ||
|
a71e0fd8cd | ||
|
547b5d2daa | ||
|
7154fa614b | ||
|
2cf78b4851 | ||
|
b9f69df93d | ||
|
eaa8561230 | ||
|
9edc2f1828 | ||
|
5e41ac197f | ||
|
cdeb3e8eb4 | ||
|
0b71ef5e46 | ||
|
c01ebdc83e | ||
|
501e8421f8 | ||
|
3162e2f9fc | ||
|
766f852616 | ||
|
b499d1062d | ||
|
939cd6edac | ||
|
2b6817c91c | ||
|
9a118c79e7 | ||
|
be426c46ab | ||
|
02f381bb17 | ||
|
e84116f364 | ||
|
6c5c1bc1b9 | ||
|
fdcc6a855b | ||
|
c9477e0a80 | ||
|
8d9bf67bba | ||
|
ca009cf8ba | ||
|
7487d5cbdc | ||
|
72dbdf6f89 | ||
|
dd1943f904 | ||
|
6eb0240a32 | ||
|
eb0197ad53 | ||
|
242ac96a24 | ||
|
c03b4444d1 | ||
|
ad684cee3a | ||
|
ea24c9be4a | ||
|
86dbf1ef4b | ||
|
b1f217b5a9 | ||
|
a0be8d3d08 | ||
|
901c78786f | ||
|
986159437d | ||
|
ab75b22029 | ||
|
5cae2ac47e | ||
|
7d515b26bb | ||
|
0e554f54dc | ||
|
201f357c52 | ||
|
bf3d6d9601 | ||
|
f51e99f704 | ||
|
b2afa23a40 | ||
|
6f38259419 | ||
|
bba2299735 | ||
|
49c53a2987 | ||
|
4306e01ece | ||
|
b9920d2bba | ||
|
9bf30be693 | ||
|
05d33806cd | ||
|
507d25f6f1 | ||
|
4daa331e25 | ||
|
fc0a469e4c | ||
|
0ce3dc9a30 | ||
|
89bc5f9a90 | ||
|
09f48203c5 | ||
|
997bcc45ec | ||
|
a0e36438a8 | ||
|
954829ebbb | ||
|
f12a16ec99 | ||
|
ceb9ed0e38 | ||
|
5a63ae9f15 | ||
|
a95560bac5 | ||
|
1adbe2f45c | ||
|
ccc9783a98 | ||
|
c632590996 | ||
|
2830ae638c | ||
|
5ca18b6a4b | ||
|
bb4ff53a71 | ||
|
d5dc87a1ef | ||
|
85579221a4 | ||
|
6eb39fa255 | ||
|
13999dc70d | ||
|
a3fce26907 | ||
|
7ddbe91435 | ||
|
c6ca6f0728 | ||
|
300737042c | ||
|
09b2be7a51 | ||
|
6efd37f30d | ||
|
af2a278dfe | ||
|
07f5e621cf | ||
|
d0dddbf4ee | ||
|
cbb02ebd74 | ||
|
d5528d5f55 | ||
|
0e540b4a15 | ||
|
911eddd37b | ||
|
2185edf699 | ||
|
09f0e97d1c | ||
|
2db670cf3e | ||
|
5000556d5d | ||
|
ab525a637a | ||
|
d130c53ac1 | ||
|
669836e1be | ||
|
1dce03e4c1 | ||
|
a7649abe9f | ||
|
bcfda0a1fe | ||
|
998e503592 | ||
|
5e3e292502 | ||
|
3be5c6a9ec | ||
|
a26ca04fe3 | ||
|
1a5d6a232f | ||
|
702a1121c9 | ||
|
9a21315ea9 | ||
|
94630ce0c7 | ||
|
6ad61d90ea | ||
|
a136b8bfe2 | ||
|
52ba7abe1e | ||
|
28ecf2b90e | ||
|
ead833a395 | ||
|
ee77c4a099 | ||
|
a94be40ecc | ||
|
632d7ef148 | ||
|
5513300f59 | ||
|
33d0016836 | ||
|
169b700dfd | ||
|
33e985f8b9 | ||
|
c9de6190a0 | ||
|
05d88165d9 | ||
|
d1cf18497a | ||
|
5a44d36b46 | ||
|
0e54eebeed | ||
|
0ab1a3957a | ||
|
1398a9510f | ||
|
b265796c79 | ||
|
4a00da1662 | ||
|
e817522728 | ||
|
915cc490d7 | ||
|
683c6940d8 | ||
|
2d483256d5 | ||
|
8c627af1f0 | ||
|
86e367a572 | ||
|
64015c03bb | ||
|
99fcfd985e | ||
|
7bc29c784a | ||
|
b2b7f05da6 | ||
|
eb56a2f250 | ||
|
c1269825cf | ||
|
f651a4bb2e | ||
|
44029d4237 | ||
|
910fa7a824 | ||
|
3b78304025 | ||
|
dd96daa55e | ||
|
a6011c6fc6 | ||
|
2d83aad693 | ||
|
665f57c513 | ||
|
7e62585ee8 | ||
|
4dd70617a1 | ||
|
9ed6965749 | ||
|
aed6230269 | ||
|
f73a68ec37 | ||
|
0c12887764 | ||
|
145705e49c | ||
|
d3c92267e0 | ||
|
36e26f2ee2 | ||
|
9a56e7d25b | ||
|
7ad2cb6f08 | ||
|
a43a368457 |
@@ -1,5 +1,4 @@
|
||||
((nil . ((show-trailing-whitespace . t)))
|
||||
(prog-mode
|
||||
((prog-mode
|
||||
(indent-tabs-mode . nil)
|
||||
(tab-width . 8)
|
||||
(c-basic-offset . 3)
|
||||
@@ -9,10 +8,6 @@
|
||||
(c-set-offset 'case-label '0)
|
||||
(c-set-offset 'innamespace '0)
|
||||
(c-set-offset 'inline-open '0)))
|
||||
(whitespace-style face indentation)
|
||||
(whitespace-line-column . 79)
|
||||
(eval ignore-errors
|
||||
(require 'whitespace)
|
||||
(whitespace-mode 1)))
|
||||
)
|
||||
(makefile-mode (indent-tabs-mode . t))
|
||||
)
|
||||
|
@@ -1,35 +0,0 @@
|
||||
# To use this config on you editor, follow the instructions at:
|
||||
# http://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
insert_final_newline = true
|
||||
tab_width = 8
|
||||
|
||||
[*.{c,h,cpp,hpp,cc,hh}]
|
||||
indent_style = space
|
||||
indent_size = 3
|
||||
|
||||
[{Makefile*,*.mk}]
|
||||
indent_style = tab
|
||||
|
||||
[{*.py,SCons*}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.pl]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.m4]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -49,4 +49,3 @@ Makefile.in
|
||||
.install-mesa-links
|
||||
.install-gallium-links
|
||||
/src/git_sha1.h
|
||||
TAGS
|
||||
|
12
.mailmap
12
.mailmap
@@ -88,11 +88,9 @@ Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mai
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
||||
|
||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
|
||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
||||
Chad Versace <chad.versace@intel.com> <chad@chad-versace.us>
|
||||
Chad Versace <chad.versace@intel.com> <Chad Versace chad@chad-versace.us>
|
||||
Chad Versace <chad.versace@intel.com> <chad.versace@linux.intel.com>
|
||||
|
||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
|
||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
|
||||
@@ -140,8 +138,6 @@ Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.co
|
||||
|
||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
|
||||
|
||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
||||
|
||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
||||
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
||||
@@ -278,7 +274,7 @@ Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
|
||||
|
||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com>
|
||||
|
||||
Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com>
|
||||
Marek Olšák <marek.olsak@amd.com> <maraeo@gmail.com>
|
||||
|
||||
Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de>
|
||||
Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de>
|
||||
|
31
.travis.yml
31
.travis.yml
@@ -1,7 +1,6 @@
|
||||
language: c
|
||||
|
||||
sudo: true
|
||||
dist: trusty
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
@@ -11,15 +10,12 @@ addons:
|
||||
apt:
|
||||
packages:
|
||||
- libdrm-dev
|
||||
- libudev-dev
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libxcb-dri2-0-dev
|
||||
- libx11-xcb-dev
|
||||
- llvm-3.5-dev
|
||||
# llvm-config is not in the dev package?
|
||||
- llvm-3.5
|
||||
# LLVM packaging is broken and misses this dep.
|
||||
- libedit-dev
|
||||
- llvm-3.4-dev
|
||||
- scons
|
||||
|
||||
env:
|
||||
@@ -32,7 +28,7 @@ env:
|
||||
- DRI3PROTO_VERSION=dri3proto-1.0
|
||||
- PRESENTPROTO_VERSION=presentproto-1.0
|
||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||
- LIBDRM_VERSION=libdrm-2.4.74
|
||||
- LIBDRM_VERSION=libdrm-2.4.65
|
||||
- XCBPROTO_VERSION=xcb-proto-1.11
|
||||
- LIBXCB_VERSION=libxcb-1.11
|
||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
||||
@@ -45,16 +41,6 @@ install:
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- pip install --user mako
|
||||
|
||||
# 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).
|
||||
|
||||
@@ -92,19 +78,22 @@ install:
|
||||
|
||||
- wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
- tar -jxvf $LIBDRM_VERSION.tar.bz2
|
||||
- (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-etnaviv-experimental-api && make install)
|
||||
- (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
- wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
||||
- tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
||||
- (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
# Disabled LLVM (and therefore r300 and r600) because the build fails
|
||||
# with "undefined reference to `clock_gettime'" and "undefined
|
||||
# reference to `setupterm'" in llvmpipe.
|
||||
script:
|
||||
- if test "x$BUILD" = xmake; then
|
||||
./autogen.sh --enable-debug
|
||||
--disable-gallium-llvm
|
||||
--with-egl-platforms=x11,drm
|
||||
--with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
|
||||
--with-gallium-drivers=svga,swrast,vc4,virgl,r300,r600,etnaviv,imx
|
||||
--disable-llvm-shared-libs
|
||||
--with-gallium-drivers=svga,swrast,vc4,virgl
|
||||
;
|
||||
make && make check;
|
||||
elif test x$BUILD = xscons; then
|
||||
|
@@ -34,16 +34,11 @@ MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
|
||||
LOCAL_CFLAGS += \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-date-time \
|
||||
-Wno-pointer-arith \
|
||||
-Wno-missing-field-initializers \
|
||||
-Wno-initializer-overrides \
|
||||
-Wno-mismatched-tags \
|
||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\" \
|
||||
-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DENABLE_SHADER_CACHE \
|
||||
-D__STDC_LIMIT_MACROS \
|
||||
-DHAVE___BUILTIN_EXPECT \
|
||||
-DHAVE___BUILTIN_FFS \
|
||||
@@ -52,7 +47,6 @@ LOCAL_CFLAGS += \
|
||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
||||
-DHAVE_FUNC_ATTRIBUTE_PACKED \
|
||||
-DHAVE_FUNC_ATTRIBUTE_ALIAS \
|
||||
-DHAVE___BUILTIN_CTZ \
|
||||
-DHAVE___BUILTIN_POPCOUNT \
|
||||
-DHAVE___BUILTIN_POPCOUNTLL \
|
||||
@@ -84,14 +78,6 @@ LOCAL_CFLAGS += \
|
||||
-D__STDC_LIMIT_MACROS
|
||||
endif
|
||||
|
||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
|
||||
# add libdrm if there are hardware drivers
|
||||
ifneq ($(filter-out swrast,$(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
|
||||
LOCAL_SHARED_LIBRARIES += libdrm
|
||||
endif
|
||||
endif
|
||||
|
||||
LOCAL_CPPFLAGS += \
|
||||
$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \
|
||||
-Wno-error=non-virtual-dtor \
|
||||
|
@@ -95,8 +95,8 @@ SUBDIRS := \
|
||||
src/mesa \
|
||||
src/util \
|
||||
src/egl \
|
||||
src/amd \
|
||||
src/intel \
|
||||
src/intel/genxml \
|
||||
src/intel/isl \
|
||||
src/mesa/drivers/dri
|
||||
|
||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
|
||||
|
@@ -40,11 +40,11 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-vdpau \
|
||||
--enable-xa \
|
||||
--enable-xvmc \
|
||||
--enable-llvm-shared-libs \
|
||||
--disable-llvm-shared-libs \
|
||||
--with-egl-platforms=x11,wayland,drm,surfaceless \
|
||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
||||
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,swr,etnaviv,imx \
|
||||
--with-vulkan-drivers=intel,radeon
|
||||
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,swr \
|
||||
--with-vulkan-drivers=intel
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
@@ -62,7 +62,6 @@ noinst_HEADERS = \
|
||||
include/c99_math.h \
|
||||
include/c11 \
|
||||
include/D3D9 \
|
||||
include/GL/wglext.h \
|
||||
include/HaikuGL \
|
||||
include/no_extern_c.h \
|
||||
include/pci_ids
|
||||
|
10
REVIEWERS
10
REVIEWERS
@@ -92,16 +92,10 @@ F: */Makefile.sources
|
||||
|
||||
ANDROID BUILD
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
F: CleanSpec.mk
|
||||
F: */Android.*mk
|
||||
F: */Makefile.sources
|
||||
|
||||
ANDROID EGL SUPPORT
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
R: Tomasz Figa <tfiga@chromium.org>
|
||||
F: src/egl/drivers/dri2/platform_android.c
|
||||
|
||||
WAYLAND EGL SUPPORT
|
||||
R: Daniel Stone <daniels@collabora.com>
|
||||
F: src/egl/wayland/*
|
||||
@@ -110,7 +104,3 @@ F: src/egl/drivers/dri2/platform_wayland.c
|
||||
FREEDRENO
|
||||
R: Rob Clark <robclark@freedesktop.org>
|
||||
F: src/gallium/drivers/freedreno/
|
||||
|
||||
GLX
|
||||
R: Adam Jackson <ajax@redhat.com>
|
||||
F: src/glx/
|
||||
|
@@ -55,7 +55,7 @@ install:
|
||||
- python -m pip install --egg scons==2.4.1
|
||||
- scons --version
|
||||
# Install flex/bison
|
||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
|
||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "http://downloads.sourceforge.net/project/winflexbison/%WINFLEXBISON_ARCHIVE%"
|
||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
||||
- set Path=%CD%\winflexbison;%Path%
|
||||
- win_flex --version
|
||||
|
5
bin/.cherry-ignore
Normal file
5
bin/.cherry-ignore
Normal file
@@ -0,0 +1,5 @@
|
||||
# The offending commit that this patch (part) reverts isn't in 12.0
|
||||
be32a2132785fbc119f17e62070e007ee7d17af7 i965/compiler: Bring back the INTEL_PRECISE_TRIG environment variable
|
||||
|
||||
# The patch depends on the batch_cache work at least.
|
||||
89f00f749fda4c1beca38f362c7f86bdc6e32785 a4xx: make sure to actually clamp depth as requested
|
@@ -1,3 +0,0 @@
|
||||
[*.sh]
|
||||
indent_style = space
|
||||
indent_size = 2
|
@@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for generating a list of candidates which have typos in the nomination line
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/get-typod-pick-list.sh
|
||||
# $ bin/get-typod-pick-list.sh > picklist
|
||||
# $ bin/get-typod-pick-list.sh | tee picklist
|
||||
|
||||
# NB:
|
||||
# This script intentionally _never_ checks for specific version tag
|
||||
# Should we consider folding it with the original get-pick-list.sh
|
||||
|
||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
||||
git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' HEAD..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check to see if it has already been picked over.
|
||||
if grep -q ^$sha already_picked ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
git log -n1 --pretty=oneline $sha | cat
|
||||
done
|
||||
|
||||
rm -f already_picked
|
@@ -59,7 +59,7 @@ if target_platform == 'windows' and host_platform != 'windows':
|
||||
|
||||
|
||||
# find default_llvm value
|
||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
|
||||
if 'LLVM' in os.environ:
|
||||
default_llvm = 'yes'
|
||||
else:
|
||||
default_llvm = 'no'
|
||||
@@ -86,7 +86,7 @@ def AddOptions(opts):
|
||||
from SCons.Options.EnumOption import EnumOption
|
||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
||||
allowed_values=('debug', 'checked', 'profile',
|
||||
'release', 'opt')))
|
||||
'release')))
|
||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code',
|
||||
default_machine,
|
||||
@@ -110,6 +110,5 @@ def AddOptions(opts):
|
||||
opts.Add(BoolOption('texture_float',
|
||||
'enable floating-point textures and renderbuffers',
|
||||
'no'))
|
||||
opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
|
||||
if host_platform == 'windows':
|
||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
||||
|
1032
configure.ac
1032
configure.ac
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@ are exposed in the 3.0 context as extensions.
|
||||
Feature Status
|
||||
------------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
GL_NV_conditional_render (Conditional rendering) DONE ()
|
||||
@@ -60,12 +60,12 @@ GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE
|
||||
Multisample anti-aliasing DONE (freedreno (*), llvmpipe (*), softpipe (*), swr (*))
|
||||
Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*), swr (*))
|
||||
|
||||
(*) freedreno, llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
(*) llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
|
||||
Forward compatible context support/deprecations DONE ()
|
||||
GL_ARB_draw_instanced (Instanced drawing) DONE ()
|
||||
@@ -82,36 +82,36 @@ GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft
|
||||
|
||||
Core/compatibility profiles DONE
|
||||
Geometry shaders DONE ()
|
||||
GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (freedreno, swr)
|
||||
GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno, swr)
|
||||
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno, swr)
|
||||
GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno, swr)
|
||||
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno, swr)
|
||||
GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (swr)
|
||||
GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (swr)
|
||||
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (swr)
|
||||
GL_ARB_provoking_vertex (Provoking vertex) DONE (swr)
|
||||
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (swr)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (swr)
|
||||
GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno, swr)
|
||||
GL_ARB_sync (Fence objects) DONE (freedreno, swr)
|
||||
GL_ARB_depth_clamp (Frag depth clamp) DONE (swr)
|
||||
GL_ARB_sync (Fence objects) DONE (swr)
|
||||
GLX_ARB_create_context_profile DONE
|
||||
|
||||
|
||||
GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
||||
|
||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, swr)
|
||||
GL_ARB_blend_func_extended DONE (swr)
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (freedreno, swr)
|
||||
GL_ARB_occlusion_query2 DONE (swr)
|
||||
GL_ARB_sampler_objects DONE (all drivers)
|
||||
GL_ARB_shader_bit_encoding DONE (freedreno, swr)
|
||||
GL_ARB_texture_rgb10_a2ui DONE (freedreno, swr)
|
||||
GL_ARB_texture_swizzle DONE (freedreno, swr)
|
||||
GL_ARB_shader_bit_encoding DONE (swr)
|
||||
GL_ARB_texture_rgb10_a2ui DONE (swr)
|
||||
GL_ARB_texture_swizzle DONE (swr)
|
||||
GL_ARB_timer_query DONE (swr)
|
||||
GL_ARB_instanced_arrays DONE (freedreno, swr)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (freedreno, swr)
|
||||
GL_ARB_instanced_arrays DONE (swr)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (swr)
|
||||
|
||||
|
||||
GL 4.0, GLSL 4.00 --- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
||||
GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi
|
||||
|
||||
GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_draw_indirect DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_gpu_shader5 DONE (i965/gen7+)
|
||||
GL_ARB_draw_buffers_blend DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_draw_indirect DONE (i965, llvmpipe, softpipe, swr)
|
||||
GL_ARB_gpu_shader5 DONE (i965)
|
||||
- 'precise' qualifier DONE
|
||||
- Dynamically uniform sampler array indices DONE (softpipe)
|
||||
- Dynamically uniform UBO array indices DONE ()
|
||||
@@ -124,214 +124,154 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
||||
- Enhanced per-sample shading DONE ()
|
||||
- Interpolation functions DONE ()
|
||||
- New overload resolution rules DONE
|
||||
GL_ARB_gpu_shader_fp64 DONE (i965/hsw+, llvmpipe, softpipe)
|
||||
GL_ARB_sample_shading DONE (i965/gen6+, nv50)
|
||||
GL_ARB_shader_subroutine DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_tessellation_shader DONE (i965/gen7+)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965/gen6+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_gpu_shader_fp64 DONE (i965/gen8+, llvmpipe, softpipe)
|
||||
GL_ARB_sample_shading DONE (i965, nv50)
|
||||
GL_ARB_shader_subroutine DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_tessellation_shader DONE (i965)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
|
||||
GL_ARB_transform_feedback2 DONE (i965/gen7+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback2 DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback3 DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
|
||||
|
||||
GL 4.1, GLSL 4.10 --- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
||||
GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi
|
||||
|
||||
GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_get_program_binary DONE (0 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision DONE (i965/hsw+, all drivers that support GLSL 4.10)
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/hsw+, llvmpipe, softpipe)
|
||||
GL_ARB_shader_precision DONE (all drivers that support GLSL 4.10)
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen8+, llvmpipe, softpipe)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20 -- all DONE: i965/hsw+, nvc0, radeonsi
|
||||
GL 4.2, GLSL 4.20 -- all DONE: radeonsi
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (i965, r600)
|
||||
GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (i965, softpipe)
|
||||
GL_ARB_shader_atomic_counters DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_base_instance DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_shader_image_load_store DONE (i965, softpipe)
|
||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_shader_image_load_store DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_internalformat_query DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, radeonsi
|
||||
GL 4.3, GLSL 4.30:
|
||||
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||
GL_ARB_compute_shader DONE (i965, softpipe)
|
||||
GL_ARB_copy_image DONE (i965, nv50, r600, softpipe, llvmpipe)
|
||||
GL_ARB_compute_shader DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_copy_image DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, r600, llvmpipe, softpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965, r600, softpipe)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_internalformat_query2 DONE (all drivers)
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (i965, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_multi_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
||||
GL_ARB_shader_image_size DONE (i965, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_buffer_range DONE (nv50, i965, r600, llvmpipe)
|
||||
GL_ARB_robust_buffer_access_behavior DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_image_size DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_view DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, radeonsi
|
||||
GL 4.4, GLSL 4.40:
|
||||
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
GL_ARB_buffer_storage DONE (i965, nv50, r600)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, r600)
|
||||
GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, nvc0)
|
||||
GL_ARB_enhanced_layouts in progress (Timothy)
|
||||
- compile-time constant expressions DONE
|
||||
- explicit byte offsets for blocks DONE
|
||||
- forced alignment within blocks DONE
|
||||
- specified vec4-slot component numbers DONE (i965, nv50, llvmpipe, softpipe)
|
||||
- specified vec4-slot component numbers in progress
|
||||
- specified transform/feedback layout DONE
|
||||
- input/output block locations DONE
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_query_buffer_object DONE (i965/hsw+)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_stencil8 DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_query_buffer_object DONE (i965/hsw+, nvc0)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_stencil8 DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
|
||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||
GL 4.5, GLSL 4.50:
|
||||
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+)
|
||||
GL_ARB_clip_control DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, r600)
|
||||
GL_ARB_ES3_1_compatibility DONE (nvc0, radeonsi)
|
||||
GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_cull_distance DONE (i965, nv50, nvc0, llvmpipe, softpipe)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_direct_state_access DONE (all drivers)
|
||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600)
|
||||
GL_ARB_texture_barrier DONE (i965, nv50, r600)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_texture_barrier DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
||||
GL_KHR_robustness DONE (i965)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi
|
||||
|
||||
GLES3.1, GLSL ES 3.1
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_compute_shader DONE (i965/gen7+, softpipe)
|
||||
GL_ARB_draw_indirect DONE (i965/gen7+, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_compute_shader DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965/gen7+, r600, softpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (i965/gen7+, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (i965/gen7+, softpipe)
|
||||
GL_ARB_shader_image_size DONE (i965/gen7+, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965/gen7+, softpipe)
|
||||
GL_ARB_shader_atomic_counters DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_image_size DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, r600, llvmpipe, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
GS5 Enhanced textureGather DONE (i965/gen7+, r600)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965/gen6+, r600)
|
||||
GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
Additional functionality not covered above:
|
||||
glMemoryBarrierByRegion DONE
|
||||
glGetTexLevelParameter[fi]v - needs updates DONE
|
||||
glGetBooleani_v - restrict to GLES enums
|
||||
gl_HelperInvocation support DONE (i965, r600)
|
||||
|
||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
|
||||
gl_HelperInvocation support DONE (i965, nvc0, r600, radeonsi)
|
||||
|
||||
GLES3.2, GLSL ES 3.2
|
||||
GL_EXT_color_buffer_float DONE (all drivers)
|
||||
GL_KHR_blend_equation_advanced DONE (i965, nvc0)
|
||||
GL_KHR_blend_equation_advanced not started
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_KHR_robustness DONE (i965, nvc0, radeonsi)
|
||||
GL_KHR_robustness DONE (i965)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
|
||||
GL_OES_copy_image DONE (all drivers)
|
||||
GL_OES_copy_image DONE (i965)
|
||||
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
|
||||
GL_OES_draw_elements_base_vertex DONE (all drivers)
|
||||
GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi)
|
||||
GL_OES_geometry_shader started (idr)
|
||||
GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
|
||||
GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi)
|
||||
GL_OES_primitive_bounding_box not started
|
||||
GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
|
||||
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
|
||||
GL_OES_shader_io_blocks DONE (i965/gen8+, nvc0, radeonsi)
|
||||
GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
|
||||
GL_OES_tessellation_shader started (Ken)
|
||||
GL_OES_texture_border_clamp DONE (all drivers)
|
||||
GL_OES_texture_buffer DONE (i965, nvc0, radeonsi)
|
||||
GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi)
|
||||
GL_OES_texture_cube_map_array not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers)
|
||||
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
|
||||
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
|
||||
Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
|
||||
|
||||
GL_ARB_bindless_texture started (airlied)
|
||||
GL_ARB_cl_event not started
|
||||
GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
|
||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
|
||||
GL_ARB_fragment_shader_interlock not started
|
||||
GL_ARB_gl_spirv not started
|
||||
GL_ARB_gpu_shader_int64 started (airlied for core and Gallium, idr for i965)
|
||||
GL_ARB_indirect_parameters DONE (nvc0, radeonsi)
|
||||
GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, softpipe, swr)
|
||||
GL_ARB_post_depth_coverage DONE (i965)
|
||||
GL_ARB_robustness_isolation not started
|
||||
GL_ARB_sample_locations not started
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_ballot not started
|
||||
GL_ARB_shader_clock DONE (i965/gen7+)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (nvc0)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, radeonsi, softpipe, llvmpipe, swr)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+)
|
||||
GL_ARB_sparse_buffer not started
|
||||
GL_ARB_sparse_texture not started
|
||||
GL_ARB_sparse_texture2 not started
|
||||
GL_ARB_sparse_texture_clamp not started
|
||||
GL_ARB_texture_filter_minmax not started
|
||||
GL_ARB_transform_feedback_overflow_query not started
|
||||
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
|
||||
GL_KHR_no_error not started
|
||||
GL_KHR_texture_compression_astc_hdr DONE (core only)
|
||||
GL_KHR_texture_compression_astc_sliced_3d not started
|
||||
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
|
||||
GL_OES_EGL_image DONE (all drivers)
|
||||
GL_OES_EGL_image_external_essl3 not started
|
||||
GL_OES_required_internalformat not started - GLES2 extension based on OpenGL ES 3.0 feature
|
||||
GL_OES_surfaceless_context DONE (all drivers)
|
||||
GL_OES_texture_compression_astc DONE (core only)
|
||||
GL_OES_texture_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_view not started - based on GL_ARB_texture_view
|
||||
GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
|
||||
GLX_ARB_context_flush_control not started
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
GLX_ARB_robustness_share_group_isolation not started
|
||||
|
||||
The following extensions are not part of any OpenGL or OpenGL ES version, and
|
||||
we DO NOT WANT implementations of these extensions for Mesa.
|
||||
|
||||
GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
|
||||
GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
|
||||
GL_ARB_shading_language_include Not interesting
|
||||
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
|
||||
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
|
||||
|
||||
More info about these features and the work involved can be found at
|
||||
http://dri.freedesktop.org/wiki/MissingFunctionality
|
@@ -55,7 +55,7 @@ to your preference, type:
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
This will produce libGL.so and/or several other libraries depending on the
|
||||
This will produce libGL.so and several other libraries depending on the
|
||||
options you have chosen. Later, if you want to rebuild for a different
|
||||
configuration run <code>make realclean</code> before rebuilding.
|
||||
</p>
|
||||
@@ -133,11 +133,9 @@ There are also a few general options for altering the Mesa build:
|
||||
</p>
|
||||
<dl>
|
||||
<dt><code>--enable-debug</code></dt>
|
||||
<dd><p>This option will set the compiler debug/optimisation levels (if the user
|
||||
hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in
|
||||
debugging the Mesa libraries.</p>
|
||||
|
||||
<p>Note that enabling this option can lead to noticable loss of performance.</p>
|
||||
<dd><p>This option will enable compiler
|
||||
options and macros to aid in debugging the Mesa libraries.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>--disable-asm</code></dt>
|
||||
<dd><p>There are assembly routines
|
||||
@@ -176,22 +174,27 @@ architecture, the following should be sufficient to configure multilib Mesa</p>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2 id="driver">2. GL Driver Options</h2>
|
||||
<h2 id="driver">2. Driver Options</h2>
|
||||
|
||||
<p>
|
||||
There are several different driver modes that Mesa can use. These are
|
||||
described in more detail in the <a href="install.html">basic
|
||||
installation instructions</a>. The Mesa driver is controlled through the
|
||||
configure options <code>--enable-glx</code> and <code>--enable-osmesa</code>
|
||||
configure options <code>--enable-xlib-glx</code>, <code>--enable-osmesa</code>,
|
||||
and <code>--enable-dri</code>.
|
||||
</p>
|
||||
|
||||
<h3 id="xlib">Xlib</h3><p>
|
||||
It uses Xlib as a software renderer to do all rendering. It corresponds
|
||||
to the option <code>--enable-glx=xlib</code> or <code>--enable-glx=gallium-xlib</code>.
|
||||
to the option <code>--enable-xlib-glx</code>. The libX11 and libXext
|
||||
libraries, as well as the X11 development headers, will be need to
|
||||
support the Xlib driver.
|
||||
|
||||
<h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for
|
||||
accelerated OpenGL rendering. To enable use <code>--enable-glx=dri
|
||||
--enable-dri</code>.
|
||||
accelerated OpenGL rendering. Enable the DRI drivers with the option
|
||||
<code>--enable-dri</code>. See the <a href="install.html">basic
|
||||
installation instructions</a> for details on prerequisites for the DRI
|
||||
drivers.
|
||||
|
||||
<!-- DRI specific options -->
|
||||
<dl>
|
||||
@@ -249,8 +252,10 @@ will create the libOSMesa16 library with a 16-bit color channel.
|
||||
<h2 id="library">3. Library Options</h2>
|
||||
|
||||
<p>
|
||||
The configure script provides more fine grained control over the libraries
|
||||
that will be built.
|
||||
The configure script provides more fine grained control over the GL
|
||||
libraries that will be built. More details on the specific GL libraries
|
||||
can be found in the <a href="install.html">basic installation
|
||||
instructions</a>.
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -1,142 +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>Coding Style</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>Coding Style</h1>
|
||||
|
||||
<p>
|
||||
Mesa is over 20 years old and the coding style has evolved over time.
|
||||
Some old parts use a style that's a bit out of date.
|
||||
|
||||
Different sections of mesa can use different coding style as set in the local
|
||||
EditorConfig (.editorconfig) and/or Emacs (.dir-locals.el) file.
|
||||
|
||||
Alternatively the following is applicable.
|
||||
|
||||
If the guidelines below don't cover something, try following the format of
|
||||
existing, neighboring code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Basic formatting guidelines
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>3-space indentation, no tabs.
|
||||
<li>Limit lines to 78 or fewer characters. The idea is to prevent line
|
||||
wrapping in 80-column editors and terminals. There are exceptions, such
|
||||
as if you're defining a large, static table of information.
|
||||
<li>Opening braces go on the same line as the if/for/while statement.
|
||||
For example:
|
||||
<pre>
|
||||
if (condition) {
|
||||
foo;
|
||||
} else {
|
||||
bar;
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
|
||||
and not <tt>a=b+c;</tt>
|
||||
|
||||
<li>This GNU indent command generally does the right thing for formatting:
|
||||
<pre>
|
||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||
</pre>
|
||||
|
||||
<li>Use comments wherever you think it would be helpful for other developers.
|
||||
Several specific cases and style examples follow. Note that we roughly
|
||||
follow <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
|
||||
<br>
|
||||
<br>
|
||||
Single-line comments:
|
||||
<pre>
|
||||
/* null-out pointer to prevent dangling reference below */
|
||||
bufferObj = NULL;
|
||||
</pre>
|
||||
Or,
|
||||
<pre>
|
||||
bufferObj = NULL; /* prevent dangling reference below */
|
||||
</pre>
|
||||
Multi-line comment:
|
||||
<pre>
|
||||
/* If this is a new buffer object id, or one which was generated but
|
||||
* never used before, allocate a buffer object now.
|
||||
*/
|
||||
</pre>
|
||||
We try to quote the OpenGL specification where prudent:
|
||||
<pre>
|
||||
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated for any of the following
|
||||
* conditions:
|
||||
*
|
||||
* * <length> is zero."
|
||||
*
|
||||
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
|
||||
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
|
||||
* either.
|
||||
*/
|
||||
</pre>
|
||||
Function comment example:
|
||||
<pre>
|
||||
/**
|
||||
* Create and initialize a new buffer object. Called via the
|
||||
* ctx->Driver.CreateObject() driver callback function.
|
||||
* \param name integer name of the object
|
||||
* \param type one of GL_FOO, GL_BAR, etc.
|
||||
* \return pointer to new object or NULL if error
|
||||
*/
|
||||
struct gl_object *
|
||||
_mesa_create_object(GLuint name, GLenum type)
|
||||
{
|
||||
/* function body */
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put the function return type and qualifiers on one line and the function
|
||||
name and parameters on the next, as seen above. This makes it easy to use
|
||||
<code>grep ^function_name dir/*</code> to find function definitions. Also,
|
||||
the opening brace goes on the next line by itself (see above.)
|
||||
|
||||
<li>Function names follow various conventions depending on the type of function:
|
||||
<pre>
|
||||
glFooBar() - a public GL entry point (in glapi_dispatch.c)
|
||||
_mesa_FooBar() - the internal immediate mode function
|
||||
save_FooBar() - retained mode (display list) function in dlist.c
|
||||
foo_bar() - a static (private) function
|
||||
_mesa_foo_bar() - an internal non-static Mesa function
|
||||
</pre>
|
||||
|
||||
<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
|
||||
words.
|
||||
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
|
||||
while gallium typically uses underscores (Ex: "local_var_name").
|
||||
<li>Global variables are almost never used because Mesa should be thread-safe.
|
||||
|
||||
<li>Booleans. Places that are not directly visible to the GL API
|
||||
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
|
||||
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
|
||||
<tt>GL_FALSE</tt>. In C code, this may mean that
|
||||
<tt>#include <stdbool.h></tt> needs to be added. The
|
||||
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
|
||||
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
|
||||
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -66,7 +66,7 @@
|
||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
|
||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
|
||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
|
||||
<li><a href="mangling.html" target="_parent">GL Function Name Mangling</a>
|
||||
<li><a href="mangling.html" target="_parent">Function Name Mangling</a>
|
||||
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
|
||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
|
||||
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
|
||||
@@ -81,8 +81,6 @@
|
||||
<li><a href="utilities.html" target="_parent">Utilities</a>
|
||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
|
||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
|
||||
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
|
||||
<li><a href="submittingpatches.html" target="_parent">Submitting patches</a>
|
||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
|
||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
|
||||
</ul>
|
||||
|
@@ -38,7 +38,7 @@ including:
|
||||
|
||||
<p>
|
||||
Other companies including
|
||||
<a href="https://01.org/linuxgraphics">Intel</a>
|
||||
<a href="http://www.intellinuxgraphics.org/index.html">Intel</a>
|
||||
and RedHat also actively contribute to the project.
|
||||
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
|
||||
</p>
|
||||
|
@@ -18,9 +18,646 @@
|
||||
|
||||
|
||||
<ul>
|
||||
<li><a href="#style">Coding Style</a>
|
||||
<li><a href="#submitting">Submitting Patches</a>
|
||||
<li><a href="#release">Making a New Mesa Release</a>
|
||||
<li><a href="#extensions">Adding Extensions</a>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="style">Coding Style</h2>
|
||||
|
||||
<p>
|
||||
Mesa is over 20 years old and the coding style has evolved over time.
|
||||
Some old parts use a style that's a bit out of date.
|
||||
If the guidelines below don't cover something, try following the format of
|
||||
existing, neighboring code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Basic formatting guidelines
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>3-space indentation, no tabs.
|
||||
<li>Limit lines to 78 or fewer characters. The idea is to prevent line
|
||||
wrapping in 80-column editors and terminals. There are exceptions, such
|
||||
as if you're defining a large, static table of information.
|
||||
<li>Opening braces go on the same line as the if/for/while statement.
|
||||
For example:
|
||||
<pre>
|
||||
if (condition) {
|
||||
foo;
|
||||
} else {
|
||||
bar;
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
|
||||
and not <tt>a=b+c;</tt>
|
||||
|
||||
<li>This GNU indent command generally does the right thing for formatting:
|
||||
<pre>
|
||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||
</pre>
|
||||
|
||||
<li>Use comments wherever you think it would be helpful for other developers.
|
||||
Several specific cases and style examples follow. Note that we roughly
|
||||
follow <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
|
||||
<br>
|
||||
<br>
|
||||
Single-line comments:
|
||||
<pre>
|
||||
/* null-out pointer to prevent dangling reference below */
|
||||
bufferObj = NULL;
|
||||
</pre>
|
||||
Or,
|
||||
<pre>
|
||||
bufferObj = NULL; /* prevent dangling reference below */
|
||||
</pre>
|
||||
Multi-line comment:
|
||||
<pre>
|
||||
/* If this is a new buffer object id, or one which was generated but
|
||||
* never used before, allocate a buffer object now.
|
||||
*/
|
||||
</pre>
|
||||
We try to quote the OpenGL specification where prudent:
|
||||
<pre>
|
||||
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated for any of the following
|
||||
* conditions:
|
||||
*
|
||||
* * <length> is zero."
|
||||
*
|
||||
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
|
||||
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
|
||||
* either.
|
||||
*/
|
||||
</pre>
|
||||
Function comment example:
|
||||
<pre>
|
||||
/**
|
||||
* Create and initialize a new buffer object. Called via the
|
||||
* ctx->Driver.CreateObject() driver callback function.
|
||||
* \param name integer name of the object
|
||||
* \param type one of GL_FOO, GL_BAR, etc.
|
||||
* \return pointer to new object or NULL if error
|
||||
*/
|
||||
struct gl_object *
|
||||
_mesa_create_object(GLuint name, GLenum type)
|
||||
{
|
||||
/* function body */
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put the function return type and qualifiers on one line and the function
|
||||
name and parameters on the next, as seen above. This makes it easy to use
|
||||
<code>grep ^function_name dir/*</code> to find function definitions. Also,
|
||||
the opening brace goes on the next line by itself (see above.)
|
||||
|
||||
<li>Function names follow various conventions depending on the type of function:
|
||||
<pre>
|
||||
glFooBar() - a public GL entry point (in glapi_dispatch.c)
|
||||
_mesa_FooBar() - the internal immediate mode function
|
||||
save_FooBar() - retained mode (display list) function in dlist.c
|
||||
foo_bar() - a static (private) function
|
||||
_mesa_foo_bar() - an internal non-static Mesa function
|
||||
</pre>
|
||||
|
||||
<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
|
||||
words.
|
||||
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
|
||||
while gallium typically uses underscores (Ex: "local_var_name").
|
||||
<li>Global variables are almost never used because Mesa should be thread-safe.
|
||||
|
||||
<li>Booleans. Places that are not directly visible to the GL API
|
||||
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
|
||||
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
|
||||
<tt>GL_FALSE</tt>. In C code, this may mean that
|
||||
<tt>#include <stdbool.h></tt> needs to be added. The
|
||||
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
|
||||
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="submitting">Submitting patches</h2>
|
||||
|
||||
<p>
|
||||
The basic guidelines for submitting patches are:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Patches should be sufficiently tested before submitting.
|
||||
<li>Code patches should follow Mesa coding conventions.
|
||||
<li>Whenever possible, patches should only effect individual Mesa/Gallium
|
||||
components.
|
||||
<li>Patches should never introduce build breaks and should be bisectable (see
|
||||
<code>git bisect</code>.)
|
||||
<li>Patches should be properly formatted (see below).
|
||||
<li>Patches should be submitted to mesa-dev for review using
|
||||
<code>git send-email</code>.
|
||||
<li>Patches should not mix code changes with code formatting changes (except,
|
||||
perhaps, in very trivial cases.)
|
||||
</ul>
|
||||
|
||||
<h3>Patch formatting</h3>
|
||||
|
||||
<p>
|
||||
The basic rules for patch formatting are:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Lines should be limited to 75 characters or less so that git logs
|
||||
displayed in 80-column terminals avoid line wrapping. Note that git
|
||||
log uses 4 spaces of indentation (4 + 75 < 80).
|
||||
<li>The first line should be a short, concise summary of the change prefixed
|
||||
with a module name. Examples:
|
||||
<pre>
|
||||
mesa: Add support for querying GL_VERTEX_ATTRIB_ARRAY_LONG
|
||||
|
||||
gallium: add PIPE_CAP_DEVICE_RESET_STATUS_QUERY
|
||||
|
||||
i965: Fix missing type in local variable declaration.
|
||||
</pre>
|
||||
<li>Subsequent patch comments should describe the change in more detail,
|
||||
if needed. For example:
|
||||
<pre>
|
||||
i965: Remove end-of-thread SEND alignment code.
|
||||
|
||||
This was present in Eric's initial implementation of the compaction code
|
||||
for Sandybridge (commit 077d01b6). There is no documentation saying this
|
||||
is necessary, and removing it causes no regressions in piglit on any
|
||||
platform.
|
||||
</pre>
|
||||
<li>A "Signed-off-by:" line is not required, but not discouraged either.
|
||||
<li>If a patch address a bugzilla issue, that should be noted in the
|
||||
patch comment. For example:
|
||||
<pre>
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
|
||||
</pre>
|
||||
<li>If there have been several revisions to a patch during the review
|
||||
process, they should be noted such as in this example:
|
||||
<pre>
|
||||
st/mesa: add ARB_texture_stencil8 support (v4)
|
||||
|
||||
if we support stencil texturing, enable texture_stencil8
|
||||
there is no requirement to support native S8 for this,
|
||||
the texture can be converted to x24s8 fine.
|
||||
|
||||
v2: fold fixes from Marek in:
|
||||
a) put S8 last in the list
|
||||
b) fix renderable to always test for d/s renderable
|
||||
fixup the texture case to use a stencil only format
|
||||
for picking the format for the texture view.
|
||||
v3: hit fallback for getteximage
|
||||
v4: put s8 back in front, it shouldn't get picked now (Ilia)
|
||||
</pre>
|
||||
<li>If someone tested your patch, document it with a line like this:
|
||||
<pre>
|
||||
Tested-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
<li>If the patch was reviewed (usually the case) or acked by someone,
|
||||
that should be documented with:
|
||||
<pre>
|
||||
Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
Acked-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3>Testing Patches</h3>
|
||||
|
||||
<p>
|
||||
It should go without saying that patches must be tested. In general,
|
||||
do whatever testing is prudent.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You should always run the Mesa test suite before submitting patches.
|
||||
The test suite can be run using the 'make check' command. All tests
|
||||
must pass before patches will be accepted, this may mean you have
|
||||
to update the tests themselves.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Whenever possible and applicable, test the patch with
|
||||
<a href="http://piglit.freedesktop.org">Piglit</a> to
|
||||
check for regressions.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Mailing Patches</h3>
|
||||
|
||||
<p>
|
||||
Patches should be sent to the Mesa mailing list for review.
|
||||
When submitting a patch make sure to use git send-email rather than attaching
|
||||
patches to emails. Sending patches as attachments prevents people from being
|
||||
able to provide in-line review comments.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When submitting follow-up patches you can use --in-reply-to to make v2, v3,
|
||||
etc patches show up as replies to the originals. This usually works well
|
||||
when you're sending out updates to individual patches (as opposed to
|
||||
re-sending the whole series). Using --in-reply-to makes
|
||||
it harder for reviewers to accidentally review old patches.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When submitting follow-up patches you should also login to
|
||||
<a href="https://patchwork.freedesktop.org">patchwork</a> and change the
|
||||
state of your old patches to Superseded.
|
||||
</p>
|
||||
|
||||
<h3>Reviewing Patches</h3>
|
||||
|
||||
<p>
|
||||
When you've reviewed a patch on the mailing list, please be unambiguous
|
||||
about your review. That is, state either
|
||||
<pre>
|
||||
Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
or
|
||||
<pre>
|
||||
Acked-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
Rather than saying just "LGTM" or "Seems OK".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If small changes are suggested, it's OK to say something like:
|
||||
<pre>
|
||||
With the above fixes, Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
which tells the patch author that the patch can be committed, as long
|
||||
as the issues are resolved first.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Marking a commit as a candidate for a stable branch</h3>
|
||||
|
||||
<p>
|
||||
If you want a commit to be applied to a stable branch,
|
||||
you should add an appropriate note to the commit message.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here are some examples of such a note:
|
||||
</p>
|
||||
<ul>
|
||||
<li>CC: <mesa-stable@lists.freedesktop.org></li>
|
||||
<li>CC: "9.2 10.0" <mesa-stable@lists.freedesktop.org></li>
|
||||
<li>CC: "10.0" <mesa-stable@lists.freedesktop.org></li>
|
||||
</ul>
|
||||
|
||||
Simply adding the CC to the mesa-stable list address is adequate to nominate
|
||||
the commit for the most-recently-created stable branch. It is only necessary
|
||||
to specify a specific branch name, (such as "9.2 10.0" or "10.0" in the
|
||||
examples above), if you want to nominate the commit for an older stable
|
||||
branch. And, as in these examples, you can nominate the commit for the older
|
||||
branch in addition to the more recent branch, or nominate the commit
|
||||
exclusively for the older branch.
|
||||
|
||||
This "CC" syntax for patch nomination will cause patches to automatically be
|
||||
copied to the mesa-stable@ mailing list when you use "git send-email" to send
|
||||
patches to the mesa-dev@ mailing list. Also, if you realize that a commit
|
||||
should be nominated for the stable branch after it has already been committed,
|
||||
you can send a note directly to the mesa-stable@lists.freedesktop.org where
|
||||
the Mesa stable-branch maintainers will receive it. Be sure to mention the
|
||||
commit ID of the commit of interest (as it appears in the mesa master branch).
|
||||
|
||||
The latest set of patches that have been nominated, accepted, or rejected for
|
||||
the upcoming stable release can always be seen on the
|
||||
<a href="http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
|
||||
page.
|
||||
|
||||
<h3>Criteria for accepting patches to the stable branch</h3>
|
||||
|
||||
Mesa has a designated release manager for each stable branch, and the release
|
||||
manager is the only developer that should be pushing changes to these
|
||||
branches. Everyone else should simply nominate patches using the mechanism
|
||||
described above.
|
||||
|
||||
The stable-release manager will work with the list of nominated patches, and
|
||||
for each patch that meets the crtieria below will cherry-pick the patch with:
|
||||
<code>git cherry-pick -x <commit></code>. The <code>-x</code> option is
|
||||
important so that the picked patch references the comit ID of the original
|
||||
patch.
|
||||
|
||||
The stable-release manager may at times need to force-push changes to the
|
||||
stable branches, for example, to drop a previously-picked patch that was later
|
||||
identified as causing a regression). These force-pushes may cause changes to
|
||||
be lost from the stable branch if developers push things directly. Consider
|
||||
yourself warned.
|
||||
|
||||
The stable-release manager is also given broad discretion in rejecting patches
|
||||
that have been nominated for the stable branch. The most basic rule is that
|
||||
the stable branch is for bug fixes only, (no new features, no
|
||||
regressions). Here is a non-exhaustive list of some reasons that a patch may
|
||||
be rejected:
|
||||
|
||||
<ul>
|
||||
<li>Patch introduces a regression. Any reported build breakage or other
|
||||
regression caused by a particular patch, (game no longer work, piglit test
|
||||
changes from PASS to FAIL), is justification for rejecting a patch.</li>
|
||||
|
||||
<li>Patch is too large, (say, larger than 100 lines)</li>
|
||||
|
||||
<li>Patch is not a fix. For example, a commit that moves code around with no
|
||||
functional change should be rejected.</li>
|
||||
|
||||
<li>Patch fix is not clearly described. For example, a commit message
|
||||
of only a single line, no description of the bug, no mention of bugzilla,
|
||||
etc.</li>
|
||||
|
||||
<li>Patch has not obviously been reviewed, For example, the commit message
|
||||
has no Reviewed-by, Signed-off-by, nor Tested-by tags from anyone but the
|
||||
author.</li>
|
||||
|
||||
<li>Patch has not already been merged to the master branch. As a rule, bug
|
||||
fixes should never be applied first to a stable branch. Patches should land
|
||||
first on the master branch and then be cherry-picked to a stable
|
||||
branch. (This is to avoid future releases causing regressions if the patch
|
||||
is not also applied to master.) The only things that might look like
|
||||
exceptions would be backports of patches from master that happen to look
|
||||
significantly different.</li>
|
||||
|
||||
<li>Patch depends on too many other patches. Ideally, all stable-branch
|
||||
patches should be self-contained. It sometimes occurs that a single, logical
|
||||
bug-fix occurs as two separate patches on master, (such as an original
|
||||
patch, then a subsequent fix-up to that patch). In such a case, these two
|
||||
patches should be squashed into a single, self-contained patch for the
|
||||
stable branch. (Of course, if the squashing makes the patch too large, then
|
||||
that could be a reason to reject the patch.)</li>
|
||||
|
||||
<li>Patch includes new feature development, not bug fixes. New OpenGL
|
||||
features, extensions, etc. should be applied to Mesa master and included in
|
||||
the next major release. Stable releases are intended only for bug fixes.
|
||||
|
||||
Note: As an exception to this rule, the stable-release manager may accept
|
||||
hardware-enabling "features". For example, backports of new code to support
|
||||
a newly-developed hardware product can be accepted if they can be reasonably
|
||||
determined to not have effects on other hardware.</li>
|
||||
|
||||
<li>Patch is a performance optimization. As a rule, performance patches are
|
||||
not candidates for the stable branch. The only exception might be a case
|
||||
where an application's performance was recently severely impacted so as to
|
||||
become unusable. The fix for this performance regression could then be
|
||||
considered for a stable branch. The optimization must also be
|
||||
non-controversial and the patches still need to meet the other criteria of
|
||||
being simple and self-contained</li>
|
||||
|
||||
<li>Patch introduces a new failure mode (such as an assert). While the new
|
||||
assert might technically be correct, for example to make Mesa more
|
||||
conformant, this is not the kind of "bug fix" we want in a stable
|
||||
release. The potential problem here is that an OpenGL program that was
|
||||
previously working, (even if technically non-compliant with the
|
||||
specification), could stop working after this patch. So that would be a
|
||||
regression that is unaacceptable for the stable branch.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="release">Making a New Mesa Release</h2>
|
||||
|
||||
<p>
|
||||
These are the instructions for making a new Mesa release.
|
||||
</p>
|
||||
|
||||
<h3>Get latest source files</h3>
|
||||
<p>
|
||||
Use git to get the latest Mesa files from the git repository, from whatever
|
||||
branch is relevant. This document uses the convention X.Y.Z for the release
|
||||
being created, which should be created from a branch named X.Y.
|
||||
</p>
|
||||
|
||||
<h3>Perform basic testing</h3>
|
||||
<p>
|
||||
The release manager should, at the very least, test the code by compiling it,
|
||||
installing it, and running the latest piglit to ensure that no piglit tests
|
||||
have regressed since the previous release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The release manager should do this testing with at least one hardware driver,
|
||||
(say, whatever is contained in the local development machine), as well as on
|
||||
both Gallium and non-Gallium software drivers. The software testing can be
|
||||
performed by running piglit with the following environment-variable set:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
LIBGL_ALWAYS_SOFTWARE=1
|
||||
</pre>
|
||||
|
||||
And Gallium vs. non-Gallium software drivers can be obtained by using the
|
||||
following configure flags on separate builds:
|
||||
|
||||
<pre>
|
||||
--with-dri-drivers=swrast
|
||||
--with-gallium-drivers=swrast
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Note: If both options are given in one build, both swrast_dri.so drivers will
|
||||
be compiled, but only one will be installed. The following command can be used
|
||||
to ensure the correct driver is being tested:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep "renderer string"
|
||||
</pre>
|
||||
|
||||
If any regressions are found in this testing with piglit, stop here, and do
|
||||
not perform a release until regressions are fixed.
|
||||
|
||||
<h3>Update version in file VERSION</h3>
|
||||
|
||||
<p>
|
||||
Increment the version contained in the file VERSION at Mesa's top-level, then
|
||||
commit this change.
|
||||
</p>
|
||||
|
||||
<h3>Create release notes for the new release</h3>
|
||||
|
||||
<p>
|
||||
Create a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous
|
||||
release notes). Note that the sha256sums section of the release notes should
|
||||
be empty at this point.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Two scripts are available to help generate portions of the release notes:
|
||||
|
||||
<pre>
|
||||
./bin/bugzilla_mesa.sh
|
||||
./bin/shortlog_mesa.sh
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The first script identifies commits that reference bugzilla bugs and obtains
|
||||
the descriptions of those bugs from bugzilla. The second script generates a
|
||||
log of all commits. In both cases, HTML-formatted lists are printed to stdout
|
||||
to be included in the release notes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Commit these changes
|
||||
</p>
|
||||
|
||||
<h3>Make the release archives, signatures, and the release tag</h3>
|
||||
<p>
|
||||
From inside the Mesa directory:
|
||||
<pre>
|
||||
./autogen.sh
|
||||
make -j1 tarballs
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
After the tarballs are created, the sha256 checksums for the files will
|
||||
be computed and printed. These will be used in a step below.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It's important at this point to also verify that the constructed tar file
|
||||
actually builds:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
tar xjf MesaLib-X.Y.Z.tar.bz2
|
||||
cd Mesa-X.Y.Z
|
||||
./configure --enable-gallium-llvm
|
||||
make -j6
|
||||
make install
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Some touch testing should also be performed at this point, (run glxgears or
|
||||
more involved OpenGL programs against the installed Mesa).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Create detached GPG signatures for each of the archive files created above:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
gpg --sign --detach MesaLib-X.Y.Z.tar.gz
|
||||
gpg --sign --detach MesaLib-X.Y.Z.tar.bz2
|
||||
gpg --sign --detach MesaLib-X.Y.Z.zip
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Tag the commit used for the build:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git tag -s mesa-X.Y.X -m "Mesa X.Y.Z release"
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Note: It would be nice to investigate and fix the issue that causes the
|
||||
tarballs target to fail with multiple build process, such as with "-j4". It
|
||||
would also be nice to incorporate all of the above commands into a single
|
||||
makefile target. And instead of a custom "tarballs" target, we should
|
||||
incorporate things into the standard "make dist" and "make distcheck" targets.
|
||||
</p>
|
||||
|
||||
<h3>Add the sha256sums to the release notes</h3>
|
||||
|
||||
<p>
|
||||
Edit docs/relnotes/X.Y.Z.html to add the sha256sums printed as part of "make
|
||||
tarballs" in the previous step. Commit this change.
|
||||
</p>
|
||||
|
||||
<h3>Push all commits and the tag created above</h3>
|
||||
|
||||
<p>
|
||||
This is the first step that cannot easily be undone. The release is going
|
||||
forward from this point:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git push origin X.Y --tags
|
||||
</pre>
|
||||
|
||||
<h3>Install the release files and signatures on the distribution server</h3>
|
||||
|
||||
<p>
|
||||
The following commands can be used to copy the release archive files and
|
||||
signatures to the freedesktop.org server:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
scp MesaLib-X.Y.Z* people.freedesktop.org:
|
||||
ssh people.freedesktop.org
|
||||
cd /srv/ftp.freedesktop.org/pub/mesa
|
||||
mkdir X.Y.Z
|
||||
cd X.Y.Z
|
||||
mv ~/MesaLib-X.Y.Z* .
|
||||
</pre>
|
||||
|
||||
<h3>Back on mesa master, add the new release notes into the tree</h3>
|
||||
|
||||
<p>
|
||||
Something like the following steps will do the trick:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
cp docs/relnotes/X.Y.Z.html /tmp
|
||||
git checkout master
|
||||
cp /tmp/X.Y.Z.html docs/relnotes
|
||||
git add docs/relnotes/X.Y.Z.html
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Also, edit docs/relnotes.html to add a link to the new release notes, and edit
|
||||
docs/index.html to add a news entry. Then commit and push:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git commit -a -m "docs: Import X.Y.Z release notes, add news item."
|
||||
git push origin
|
||||
</pre>
|
||||
|
||||
<h3>Update the mesa3d.org website</h3>
|
||||
|
||||
<p>
|
||||
NOTE: The recent release managers have not been performing this step
|
||||
themselves, but leaving this to Brian Paul, (who has access to the
|
||||
sourceforge.net hosting for mesa3d.org). Brian is more than willing to grant
|
||||
the permission necessary to future release managers to do this step on their
|
||||
own.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Update the web site by copying the docs/ directory's files to
|
||||
/home/users/b/br/brianp/mesa-www/htdocs/ with:
|
||||
<br>
|
||||
<code>
|
||||
sftp USERNAME,mesa3d@web.sourceforge.net
|
||||
</code>
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Announce the release</h3>
|
||||
<p>
|
||||
Make an announcement on the mailing lists:
|
||||
|
||||
<em>mesa-dev@lists.freedesktop.org</em>,
|
||||
and
|
||||
<em>mesa-announce@lists.freedesktop.org</em>
|
||||
|
||||
Follow the template of previously-sent release announcements. The following
|
||||
command can be used to generate the log of changes to be included in the
|
||||
release announcement:
|
||||
|
||||
<pre>
|
||||
git shortlog mesa-X.Y.Z-1..mesa-X.Y.Z
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="extensions">Adding Extensions</h2>
|
||||
|
||||
<p>
|
||||
@@ -47,11 +684,9 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
</li>
|
||||
<li>
|
||||
Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
|
||||
if the extension requires driver capabilities not already exposed by
|
||||
another extension.
|
||||
</li>
|
||||
<li>
|
||||
Add a new entry to the src/mesa/main/extensions_table.h file.
|
||||
Update the <code>extensions.c</code> file.
|
||||
</li>
|
||||
<li>
|
||||
From this point, the best way to proceed is to find another extension,
|
||||
@@ -62,18 +697,12 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
If the new extension adds new GL state, the functions in get.c, enable.c
|
||||
and attrib.c will most likely require new code.
|
||||
</li>
|
||||
<li>
|
||||
To determine if the new extension is active in the current context,
|
||||
use the auto-generated _mesa_has_##name_str() function defined in
|
||||
src/mesa/main/extensions.h.
|
||||
</li>
|
||||
<li>
|
||||
The dispatch tests check_table.cpp and dispatch_sanity.cpp
|
||||
should be updated with details about the new extensions functions. These
|
||||
tests are run using 'make check'
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
@@ -50,19 +50,8 @@ sometimes be useful for debugging end-user issues.
|
||||
if the application generates a GL_INVALID_ENUM error, a corresponding error
|
||||
message indicating where the error occurred, and possibly why, will be
|
||||
printed to stderr.<br>
|
||||
|
||||
For release builds, MESA_DEBUG defaults to off (no debug output).
|
||||
|
||||
MESA_DEBUG accepts the following comma-separated list of named
|
||||
flags, which adds extra behaviour to just set MESA_DEBUG=1:
|
||||
<ul>
|
||||
<li>silent - turn off debug messages. Only useful for debug builds.</li>
|
||||
<li>flush - flush after each drawing command</li>
|
||||
<li>incomplete_tex - extra debug messages when a texture is incomplete</li>
|
||||
<li>incomplete_fbo - extra debug messages when a fbo is incomplete</li>
|
||||
<li>context - create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB) and
|
||||
print error and performance messages to stderr (or MESA_LOG_FILE).</li>
|
||||
</ul>
|
||||
If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will
|
||||
generate exceptions.
|
||||
<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
|
||||
etc., rather than stderr
|
||||
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
|
||||
@@ -155,10 +144,11 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||
<li>bat - emit batch information</li>
|
||||
<li>pix - emit messages about pixel operations</li>
|
||||
<li>buf - emit messages about buffer objects</li>
|
||||
<li>reg - emit messages about regions</li>
|
||||
<li>fbo - emit messages about framebuffers</li>
|
||||
<li>fs - dump shader assembly for fragment shaders</li>
|
||||
<li>gs - dump shader assembly for geometry shaders</li>
|
||||
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
||||
<li>sync - emit messages about synchronization</li>
|
||||
<li>prim - emit messages about drawing primitives</li>
|
||||
<li>vert - emit messages about vertex assembly</li>
|
||||
<li>dri - emit messages about the DRI interface</li>
|
||||
@@ -173,22 +163,11 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||
<li>blorp - emit messages about the blorp operations (blits & clears)</li>
|
||||
<li>nodualobj - suppress generation of dual-object geometry shader code</li>
|
||||
<li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
|
||||
<li>ann - annotate IR in assembly dumps</li>
|
||||
<li>no8 - don't generate SIMD8 fragment shader</li>
|
||||
<li>vec4 - force vec4 mode in vertex shader</li>
|
||||
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
||||
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
||||
<li>cs - dump shader assembly for compute shaders</li>
|
||||
<li>hex - print instruction hex dump with the disassembly</li>
|
||||
<li>nocompact - disable instruction compaction</li>
|
||||
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
||||
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
||||
<li>l3 - emit messages about the new L3 state during transitions</li>
|
||||
<li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
|
||||
<li>norbc - disable single sampled render buffer compression</li>
|
||||
</ul>
|
||||
<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
|
||||
accuracy over performance in trig functions.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -219,12 +198,8 @@ Mesa EGL supports different sets of environment variables. See the
|
||||
<li>GALLIUM_HUD_TOGGLE_SIGNAL - toggle visibility via user specified signal.
|
||||
Especially useful to toggle hud at specific points of application and
|
||||
disable for unencumbered viewing the rest of the time. For example, set
|
||||
GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_TOGGLE_SIGNAL to 10 (SIGUSR1).
|
||||
GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_SIGNAL_TOGGLE to 10 (SIGUSR1).
|
||||
Use kill -10 <pid> to toggle the hud as desired.
|
||||
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
|
||||
hud values into files.
|
||||
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=1 for
|
||||
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
|
||||
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
|
||||
rather than stderr.
|
||||
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
|
||||
@@ -241,21 +216,6 @@ Setting to "tgsi", for example, will print all the TGSI shaders.
|
||||
See src/mesa/state_tracker/st_debug.c for other options.
|
||||
</ul>
|
||||
|
||||
<h3>Clover state tracker environment variables</h3>
|
||||
|
||||
<ul>
|
||||
<li>CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in clBuildProgram.
|
||||
<li>CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in clCompileProgram.
|
||||
<li>CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in clLinkProgram.
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Softpipe driver environment variables</h3>
|
||||
<ul>
|
||||
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
|
||||
|
@@ -57,7 +57,7 @@ drivers for X.org.
|
||||
<ul>
|
||||
<li>See the <a href="http://dri.freedesktop.org/">DRI website</a>
|
||||
for more information.</li>
|
||||
<li>See <a href="https://01.org/linuxgraphics">01.org</a>
|
||||
<li>See <a href="http://intellinuxgraphics.org">intellinuxgraphics.org</a>
|
||||
for more information about Intel drivers.</li>
|
||||
<li>See <a href="http://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
|
||||
for more information about Nouveau drivers.</li>
|
||||
|
@@ -56,8 +56,8 @@ You can find some further To-do lists here:
|
||||
<b>Common To-Do lists:</b>
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/features.txt">
|
||||
<b>features.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
||||
<li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt">
|
||||
<b>GL3.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
||||
<li><a href="http://dri.freedesktop.org/wiki/MissingFunctionality">
|
||||
<b>MissingFunctionality</b></a> - Detailed information about missing OpenGL features.</li>
|
||||
</ul>
|
||||
|
@@ -16,83 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>January 23, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.6.html">Mesa 12.0.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
<br>
|
||||
NOTE: This is an extra release for the 12.0 stable branch, as per developers'
|
||||
feedback. It is anticipated that 12.0.6 will be the final release in the 12.0
|
||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||
to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>January 5, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/13.0.3.html">Mesa 13.0.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>December 5, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.5.html">Mesa 12.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
<br>
|
||||
NOTE: It is anticipated that 12.0.5 will be the final release in the 12.0
|
||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||
to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>November 28, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/13.0.2.html">Mesa 13.0.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 14, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/13.0.1.html">Mesa 13.0.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 10, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.4.html">Mesa 12.0.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 1, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/13.0.0.html">Mesa 13.0.0</a> is released. This is a
|
||||
new development release. See the release notes for more information
|
||||
about the release.
|
||||
</p>
|
||||
|
||||
<h2>September 15, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.3.html">Mesa 12.0.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 2, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.2.html">Mesa 12.0.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 8, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/12.0.1.html">Mesa 12.0.1</a> is released.
|
||||
This is a bug-fix release, resolving build issues in the r600 and
|
||||
radeonsi drivers.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="relnotes/12.0.0.html">Mesa 12.0.0</a> is released. This is a
|
||||
new development release. See the release notes for more information
|
||||
about the release.
|
||||
</p>
|
||||
|
||||
<h2>May 9, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/11.1.4.html">Mesa 11.1.4</a> and
|
||||
|
@@ -24,7 +24,7 @@
|
||||
</ul>
|
||||
<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>
|
||||
<li><a href="#other">Building for other systems</a>
|
||||
<li><a href="#libs">Library Information</a>
|
||||
<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
|
||||
</ol>
|
||||
@@ -33,85 +33,62 @@
|
||||
<h1 id="prereq-general">1. Prerequisites for building</h1>
|
||||
|
||||
<h2>1.1 General</h2>
|
||||
|
||||
<p>
|
||||
Build system.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<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.)
|
||||
</li>
|
||||
<li>Android Build system when building as native Android component. Autoconf
|
||||
is used when when building ARC.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>
|
||||
The following compilers are known to work, if you know of others or you're
|
||||
willing to maintain support for other compiler get in touch.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GCC 4.2.0 or later (some parts of Mesa may require later versions)
|
||||
<li>clang - exact minimum requirement is currently unknown.
|
||||
<li>Microsoft Visual Studio 2013 Update 4 or later is required, for building on Windows.
|
||||
</ul>
|
||||
|
||||
|
||||
<p>
|
||||
Third party/extra tools.
|
||||
<br>
|
||||
<strong>Note</strong>: These should not be required, when building from a release tarball. If
|
||||
you think you've spotted a bug let developers know by filing a
|
||||
<a href="bugs.html">bug report</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<ul>
|
||||
<li><a href="http://www.python.org/">Python</a> - Python is required.
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
||||
Python Mako module is required. Version 0.3.4 or later should work.
|
||||
</li>
|
||||
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
||||
<div>
|
||||
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
|
||||
(or later) should work.
|
||||
</br>
|
||||
<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.)
|
||||
</li>
|
||||
<br>
|
||||
<li>lex / yacc - for building the GLSL compiler.
|
||||
<br>
|
||||
<br>
|
||||
On Linux systems, flex and bison are used.
|
||||
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
|
||||
<br>
|
||||
<br>
|
||||
On Windows with MinGW, install flex and bison with:
|
||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||
For MSVC on Windows, install
|
||||
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
||||
</div>
|
||||
</li>
|
||||
<br>
|
||||
<li>For building on Windows, Microsoft Visual Studio 2013 or later is required.
|
||||
</li>
|
||||
</ul>
|
||||
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
|
||||
|
||||
|
||||
<h3 id="prereq-dri">1.2 Requirements</h3>
|
||||
<h3 id="prereq-dri">1.2 For DRI and hardware acceleration</h3>
|
||||
|
||||
<p>
|
||||
The requirements depends on the features selected at configure stage.
|
||||
Check/install the respective -devel package as prompted by the configure error
|
||||
message.
|
||||
The following are required for DRI-based hardware acceleration with Mesa:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">
|
||||
dri2proto</a> version 2.6 or later
|
||||
<li><a href="http://dri.freedesktop.org/libdrm/">libDRM</a> latest version
|
||||
<li>Xorg server version 1.5 or later
|
||||
<li>Linux 2.6.28 or later
|
||||
</ul>
|
||||
<p>
|
||||
Here are some common ways to retrieve most/all of the dependencies based on
|
||||
the packaging tool used by your distro.
|
||||
If you're using a fedora distro the following command should install all
|
||||
the needed dependencies:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
|
||||
yum-builddep mesa # yum Fedora, OpenSuse(?)
|
||||
dnf builddep mesa # dnf Fedora
|
||||
apt-get build-dep mesa # Debian and derivatives
|
||||
... # others
|
||||
sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \
|
||||
gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \
|
||||
expat-devel llvm-devel python-mako
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
|
||||
<p>
|
||||
@@ -162,30 +139,22 @@ This will create:
|
||||
</ul>
|
||||
<p>
|
||||
Put them all in the same directory to test them.
|
||||
|
||||
Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h1 id="android">4. Building with AOSP (Android)</h1>
|
||||
<h1 id="other">4. Building for other systems</h1>
|
||||
|
||||
<p>
|
||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||
your experience might vary.
|
||||
Documentation for other environments (some may be very out of date):
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In order to achieve that one should update their local manifest to point to the
|
||||
upstream repo, set the approapriate BOARD_GPU_DRIVERS and build the
|
||||
libGLES_mesa library.
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="README.VMS">README.VMS</a> - VMS
|
||||
<li><a href="README.CYGWIN">README.CYGWIN</a> - Cygwin
|
||||
<li><a href="README.WIN32">README.WIN32</a> - Win32
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
FINISHME: Improve on the instructions add references to Rob H repos/Jenkins,
|
||||
Android-x86 and/or other resources.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="libs">5. Library Information</h1>
|
||||
|
@@ -173,27 +173,6 @@ of the OpenGL specification is implemented.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Version 12.x features</h2>
|
||||
<p>
|
||||
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
|
||||
support OpenGL 4.3.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Version 11.x features</h2>
|
||||
<p>
|
||||
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
|
||||
support OpenGL 4.1.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Version 10.x features</h2>
|
||||
<p>
|
||||
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
|
||||
support OpenGL 3.3.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Version 9.x features</h2>
|
||||
<p>
|
||||
Version 9.x of Mesa implements the OpenGL 3.1 API.
|
||||
@@ -203,10 +182,6 @@ community contributed features required for OpenGL 3.1. The primary
|
||||
features added since the Mesa 8.0 release are
|
||||
GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object.
|
||||
</p>
|
||||
<p>
|
||||
Version 9.0 of Mesa also included the first release of the Clover state
|
||||
tracker for OpenCL.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Version 8.x features</h2>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>GL Function Name Mangling</title>
|
||||
<title>Function Name Mangling</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
@@ -14,7 +14,7 @@
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>GL Function Name Mangling</h1>
|
||||
<h1>Function Name Mangling</h1>
|
||||
|
||||
<p>
|
||||
If you want to use both Mesa and another OpenGL library in the same
|
||||
@@ -25,11 +25,12 @@ This results in all the Mesa functions being prefixed with
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This option is supported only with the autoconf build. To use it add
|
||||
--enable-mangling to your configure line.
|
||||
To do this, recompile Mesa with the compiler flag -DUSE_MGL_NAMESPACE.
|
||||
Add the flag to CFLAGS in the configuration file which you want to use.
|
||||
For example:
|
||||
</p>
|
||||
<pre>
|
||||
<code>./configure --enable-mangling ...</code>
|
||||
CFLAGS += -DUSE_MGL_NAMESPACE
|
||||
</pre>
|
||||
|
||||
</div>
|
||||
|
@@ -1,512 +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>Releasing process</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>Releasing process</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a>
|
||||
<li><a href="#schedule">Release schedule</a>
|
||||
<li><a href="#pickntest">Cherry-pick and test</a>
|
||||
<li><a href="#branch">Making a branchpoint</a>
|
||||
<li><a href="#prerelease">Pre-release announcement</a>
|
||||
<li><a href="#release">Making a new release</a>
|
||||
<li><a href="#announce">Announce the release</a>
|
||||
<li><a href="#website">Update the mesa3d.org website</a>
|
||||
<li><a href="#bugzilla">Update Bugzilla</a>
|
||||
</ul>
|
||||
|
||||
<h1 id="overview">Overview</h1>
|
||||
|
||||
<p>
|
||||
This document uses the convention X.Y.Z for the release number with X.Y being
|
||||
the stable branch name.
|
||||
<br>
|
||||
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
|
||||
while the latter have a non-zero one.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example:
|
||||
</p>
|
||||
<pre>
|
||||
Mesa 10.1.0 - 10.1 branch, feature
|
||||
Mesa 10.1.4 - 10.1 branch, bugfix
|
||||
Mesa 12.0.0 - 12.0 branch, feature
|
||||
Mesa 12.0.2 - 12.0 branch, bugfix
|
||||
</pre>
|
||||
|
||||
<h1 id="schedule">Release schedule</h1>
|
||||
|
||||
<p>
|
||||
Releases should happen on Fridays. Delays can occur although those should be keep
|
||||
to a minimum.
|
||||
</p>
|
||||
|
||||
<h2>Feature releases</h2>
|
||||
<ul>
|
||||
<li>Available approximatelly every three months.
|
||||
<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1)
|
||||
on the mesa-announce@ mailing list.
|
||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
||||
approximatelly 24 hours before the final (non-rc) release.
|
||||
</ul>
|
||||
|
||||
<h2>Stable releases</h2>
|
||||
<ul>
|
||||
<li>Normally available once every two weeks.
|
||||
<li>Only the latest branch has releases. See note below.
|
||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
||||
approximatelly 48 hours before the actual release.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<h1 id="pickntest">Cherry-picking and testing</h1>
|
||||
|
||||
<p>
|
||||
Commits nominated for the active branch are picked as based on the
|
||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> as
|
||||
described in the same section.
|
||||
|
||||
<p>
|
||||
Maintainer is responsible for testing in various possible permutations of
|
||||
the autoconf and scons build.
|
||||
</p>
|
||||
|
||||
<h2>Cherry-picking and build/check testing</h2>
|
||||
|
||||
<p>Done continuously up-to the <a href="#prerelease">pre-release</a> announcement.</p>
|
||||
|
||||
<p>
|
||||
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>
|
||||
Currently Ilia Mirkin and AMD devs have requested "permanent" exception.
|
||||
</p>
|
||||
|
||||
|
||||
<ul>
|
||||
<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.
|
||||
</ul>
|
||||
<p>
|
||||
Achieved by combination of local ad-hoc scripts and AppVeyor plus Travis-CI,
|
||||
the latter as part of their Github integration.
|
||||
</p>
|
||||
|
||||
<h2>Regression/functionality testing</h2>
|
||||
|
||||
<p>
|
||||
Less often (once or twice), shortly before the pre-release announcement.
|
||||
Ensure that testing is redone if Intel devs have requested an exception, as per above.
|
||||
</p>
|
||||
<ul>
|
||||
<li><em>no regressions should be observed for Piglit/dEQP/CTS/Vulkan on Intel platforms</em>
|
||||
<li><em>no regressions should be observed for Piglit using the swrast, softpipe
|
||||
and llvmpipe drivers</em>
|
||||
</ul>
|
||||
<p>
|
||||
Currently testing is performed courtesy of the Intel OTC team and their Jenkins CI setup. Check with the Intel team over IRC how to get things setup.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="branch">Making a branchpoint</h1>
|
||||
|
||||
<p>
|
||||
A branchpoint is made such that new development can continue in parallel to
|
||||
stabilisation and bugfixing.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: Before doing a branch ensure that basic build and <code>make check</code>
|
||||
testing is done and there are little to-no issues.
|
||||
<br>
|
||||
Ideally all of those should be tackled already.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Check if the version number is going to remain as, alternatively
|
||||
<code> git mv docs/relnotes/{current,new}.html </code> as appropriate.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To setup the branchpoint:
|
||||
</p>
|
||||
<pre>
|
||||
git checkout master # make sure we're in master first
|
||||
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
|
||||
git checkout -b X.Y
|
||||
git checkout master
|
||||
$EDITOR VERSION # bump the version number
|
||||
git commit -as
|
||||
git push origin X.Y-branchpoint X.Y
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Now go to
|
||||
<a href="https://bugs.freedesktop.org/editversions.cgi?action=add&product=Mesa" target="_parent">Bugzilla</a> and add the new Mesa version X.Y.
|
||||
</p>
|
||||
<p>
|
||||
Check for rare that there are no distribution breaking changes and revert them
|
||||
if needed. Extremely rare - we had only one case so far (see
|
||||
commit 2ced8eb136528914e1bf4e000dea06a9d53c7e04).
|
||||
</p>
|
||||
<p>
|
||||
Proceed to <a href="#release">release</a> -rc1.
|
||||
</p>
|
||||
|
||||
<h1 id="prerelease">Pre-release announcement</h1>
|
||||
|
||||
<p>
|
||||
It comes shortly after outstanding patches in the respective branch are pushed.
|
||||
Developers can check, in brief, what's the status of their patches. They,
|
||||
alongside very early testers, are strongly encouraged to test the branch and
|
||||
report any regressions.
|
||||
<br>
|
||||
It is followed by a brief period (normally 24 or 48 hours) before the actual
|
||||
release is made.
|
||||
</p>
|
||||
|
||||
<h2>Terminology used</h2>
|
||||
<ul><li>Nominated</ul>
|
||||
<p>
|
||||
Patch that is nominated but yet to to merged in the patch queue/branch.
|
||||
</p>
|
||||
|
||||
<ul><li>Queued</ul>
|
||||
<p>
|
||||
Patch is in the queue/branch and will feature in the next release.
|
||||
Barring reported regressions or objections from developers.
|
||||
</p>
|
||||
|
||||
<ul><li>Rejected</ul>
|
||||
<p>
|
||||
Patch does not fit the
|
||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and
|
||||
is followed by a brief information.
|
||||
<br>
|
||||
The release maintainer is human so if you believe you've spotted a mistake do
|
||||
let them know.
|
||||
</p>
|
||||
|
||||
<h2>Format/template</h2>
|
||||
<pre>
|
||||
Subject: [ANNOUNCE] Mesa X.Y.Z release candidate
|
||||
To: mesa-announce@...
|
||||
Cc: mesa-dev@...
|
||||
|
||||
Hello list,
|
||||
|
||||
The candidate for the Mesa X.Y.Z is now available. Currently we have:
|
||||
- NUMBER queued
|
||||
- NUMBER nominated (outstanding)
|
||||
- and NUMBER rejected patches
|
||||
|
||||
BRIEF SUMMARY OF CHANGES
|
||||
|
||||
Take a look at section "Mesa stable queue" for more information.
|
||||
|
||||
|
||||
Testing reports/general approval
|
||||
--------------------------------
|
||||
Any testing reports (or general approval of the state of the branch) will be
|
||||
greatly appreciated.
|
||||
|
||||
The plan is to have X.Y.Z this DAY (DATE), around or shortly after TIME.
|
||||
|
||||
If you have any questions or suggestions - be that about the current patch
|
||||
queue or otherwise, please go ahead.
|
||||
|
||||
|
||||
Trivial merge conflicts
|
||||
-----------------------
|
||||
List of commits where manual intervention was required.
|
||||
Keep the authors in the CC list.
|
||||
|
||||
commit SHA
|
||||
Author: AUTHOR
|
||||
|
||||
COMMIT SUMMARY
|
||||
|
||||
CHERRY PICKED FROM
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
commit 990f395e007c3204639daa34efc3049f350ee819
|
||||
Author: Emil Velikov <emil.velikov@collabora.com>
|
||||
|
||||
anv: automake: cleanup the generated json file during make clean
|
||||
|
||||
(cherry picked from commit 8df581520a823564be0ab5af7dbb7d501b1c9670)
|
||||
|
||||
|
||||
Cheers,
|
||||
Emil
|
||||
|
||||
|
||||
Mesa stable queue
|
||||
-----------------
|
||||
|
||||
Nominated (NUMBER)
|
||||
==================
|
||||
|
||||
AUTHOR (NUMBER):
|
||||
SHA COMMIT SUMMARY
|
||||
|
||||
For example:
|
||||
|
||||
Dave Airlie (1):
|
||||
2de85eb radv: fix texturesamples to handle single sample case
|
||||
|
||||
|
||||
Queued (NUMBER)
|
||||
===============
|
||||
|
||||
AUTHOR (NUMBER):
|
||||
COMMIT SUMMARY
|
||||
|
||||
|
||||
Rejected (NUMBER)
|
||||
=================
|
||||
|
||||
Rejected (11)
|
||||
=============
|
||||
|
||||
AUTHOR (NUMBER):
|
||||
SHA COMMIT SUMMARY
|
||||
|
||||
Reason: ...
|
||||
</pre>
|
||||
|
||||
<h1 id="release">Making a new release</h1>
|
||||
|
||||
<p>
|
||||
These are the instructions for making a new Mesa release.
|
||||
</p>
|
||||
|
||||
<h3>Get latest source files</h3>
|
||||
<p>
|
||||
Ensure the latest code is available - both in your local master and the
|
||||
relevant branch.
|
||||
</p>
|
||||
|
||||
<h3>Perform basic testing</h3>
|
||||
<p>
|
||||
Most of the testing should already be done during the
|
||||
<a href="#pickntest">cherry-pick</a> and
|
||||
<a href="#prerelease">pre-announce</a> stages.
|
||||
|
||||
So we do a quick 'touch test'
|
||||
<ul>
|
||||
<li>make distcheck (you can omit this if you're not using --dist below)
|
||||
<li>scons (from release tarball)
|
||||
<li>the produced binaries work
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Here is one solution that I've been using.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git clean -fXd; git clean -nxd
|
||||
read # quick cross check any outstanding files
|
||||
export __version=`cat VERSION`
|
||||
export __mesa_root=../
|
||||
export __build_root=./foo
|
||||
chmod 755 -fR $__build_root; rm -rf $__build_root
|
||||
mkdir -p $__build_root && cd $__build_root
|
||||
|
||||
$__mesa_root/autogen.sh --enable-llvm-shared-libs && make -j2 distcheck
|
||||
|
||||
# Build check the tarballs (scons)
|
||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version && scons && cd ..
|
||||
|
||||
# Test the automake binaries
|
||||
rm -rf mesa-$__version
|
||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version
|
||||
./configure \
|
||||
--with-dri-drivers=i965,swrast \
|
||||
--with-gallium-drivers=swrast \
|
||||
--with-vulkan-drivers=intel \
|
||||
--enable-llvm-shared-libs \
|
||||
--enable-gallium-llvm \
|
||||
--enable-glx-tls \
|
||||
--enable-gbm \
|
||||
--enable-egl \
|
||||
--with-egl-platforms=x11,drm,wayland
|
||||
make -j2 && DESTDIR=`pwd`/test make -j6 install
|
||||
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/
|
||||
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
|
||||
export LIBGL_DEBUG=verbose
|
||||
glxinfo | egrep -o "Mesa.*"
|
||||
glxgears
|
||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
||||
es2gears_x11
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
glxinfo | egrep -o "Mesa.*|Gallium.*"
|
||||
glxgears
|
||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
||||
es2gears_x11
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
export GALLIUM_DRIVER=softpipe
|
||||
glxinfo | egrep -o "Mesa.*|Gallium.*"
|
||||
glxgears
|
||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
||||
es2gears_x11
|
||||
# Smoke test DOTA2
|
||||
unset LD_LIBRARY_PATH
|
||||
unset LIBGL_DRIVERS_PATH
|
||||
unset LIBGL_DEBUG
|
||||
unset LIBGL_ALWAYS_SOFTWARE
|
||||
export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.json
|
||||
steam steam://rungameid/570 -vconsole -vulkan
|
||||
</pre>
|
||||
|
||||
<h3>Update version in file VERSION</h3>
|
||||
|
||||
<p>
|
||||
Increment the version contained in the file VERSION at Mesa's top-level, then
|
||||
commit this change.
|
||||
</p>
|
||||
|
||||
<h3>Create release notes for the new release</h3>
|
||||
|
||||
<p>
|
||||
Create a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous
|
||||
release notes). Note that the sha256sums section of the release notes should
|
||||
be empty (TBD) at this point.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Two scripts are available to help generate portions of the release notes:
|
||||
|
||||
<pre>
|
||||
./bin/bugzilla_mesa.sh
|
||||
./bin/shortlog_mesa.sh
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The first script identifies commits that reference bugzilla bugs and obtains
|
||||
the descriptions of those bugs from bugzilla. The second script generates a
|
||||
log of all commits. In both cases, HTML-formatted lists are printed to stdout
|
||||
to be included in the release notes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Commit these changes and push the branch.
|
||||
</p>
|
||||
<pre>
|
||||
git push origin HEAD
|
||||
</pre>
|
||||
|
||||
|
||||
<h3>Use the release.sh script from xorg util-macros</h3>
|
||||
|
||||
<p>
|
||||
Ensure that the mesa git tree is clean via <code>git clean -fXd</code> and
|
||||
start the release process.
|
||||
</p>
|
||||
<pre>
|
||||
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Pay close attention to the prompts as you might be required to enter your GPG
|
||||
and SSH passphrase(s) to sign and upload the files, respectively.
|
||||
</p>
|
||||
|
||||
<h3>Add the sha256sums to the release notes</h3>
|
||||
|
||||
<p>
|
||||
Edit docs/relnotes/X.Y.Z.html to add the sha256sums as availabe in the mesa-X.Y.Z.announce template. Commit this change.
|
||||
</p>
|
||||
|
||||
<h3>Back on mesa master, add the new release notes into the tree</h3>
|
||||
|
||||
<p>
|
||||
Something like the following steps will do the trick:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git cherry-pick -x X.Y~1
|
||||
git cherry-pick -x X.Y
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Also, edit docs/relnotes.html to add a link to the new release notes, and edit
|
||||
docs/index.html to add a news entry. Then commit and push:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git commit -as -m "docs: add news item and link release notes for X.Y.Z"
|
||||
git push origin master X.Y
|
||||
</pre>
|
||||
|
||||
|
||||
<h1 id="announce">Announce the release</h1>
|
||||
<p>
|
||||
Use the generated template during the releasing process.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="website">Update the mesa3d.org website</h1>
|
||||
|
||||
<p>
|
||||
NOTE: The recent release managers have not been performing this step
|
||||
themselves, but leaving this to Brian Paul, (who has access to the
|
||||
sourceforge.net hosting for mesa3d.org). Brian is more than willing to grant
|
||||
the permission necessary to future release managers to do this step on their
|
||||
own.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Update the web site by copying the docs/ directory's files to
|
||||
/home/users/b/br/brianp/mesa-www/htdocs/ with:
|
||||
<br>
|
||||
<code>
|
||||
sftp USERNAME,mesa3d@web.sourceforge.net
|
||||
</code>
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="bugzilla">Update Bugzilla</h1>
|
||||
|
||||
<p>
|
||||
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
||||
document.
|
||||
<br>
|
||||
If there's outstanding action, close the bug referencing the commit ID which
|
||||
addresses the bug and mention the Mesa version that has the fix.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: the above is not applicable to all the reports, so use common sense.
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -21,17 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/12.0.6.html">12.0.6 release notes</a>
|
||||
<li><a href="relnotes/13.0.3.html">13.0.3 release notes</a>
|
||||
<li><a href="relnotes/12.0.5.html">12.0.5 release notes</a>
|
||||
<li><a href="relnotes/13.0.2.html">13.0.2 release notes</a>
|
||||
<li><a href="relnotes/13.0.1.html">13.0.1 release notes</a>
|
||||
<li><a href="relnotes/12.0.4.html">12.0.4 release notes</a>
|
||||
<li><a href="relnotes/13.0.0.html">13.0.0 release notes</a>
|
||||
<li><a href="relnotes/12.0.3.html">12.0.3 release notes</a>
|
||||
<li><a href="relnotes/12.0.2.html">12.0.2 release notes</a>
|
||||
<li><a href="relnotes/12.0.1.html">12.0.1 release notes</a>
|
||||
<li><a href="relnotes/12.0.0.html">12.0.0 release notes</a>
|
||||
<li><a href="relnotes/11.2.2.html">11.2.2 release notes</a>
|
||||
<li><a href="relnotes/11.1.4.html">11.1.4 release notes</a>
|
||||
<li><a href="relnotes/11.2.1.html">11.2.1 release notes</a>
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
<h1>Mesa 12.0.1 Release Notes / July 8, 2016</h1>
|
||||
|
||||
<h1>Mesa 12.0.1 Release Notes / July 8, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.0.1 is a bug fix release which fixes bugs found since the 12.0.1 release.
|
||||
</p>
|
||||
|
@@ -31,8 +31,7 @@ because compatibility contexts are not supported.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
a08565ab1273751ebe2ffa928cbf785056594c803077c9719d0763da780f2918 mesa-12.0.2.tar.gz
|
||||
d957a5cc371dcd7ff2aa0d87492f263aece46f79352f4520039b58b1f32552cb mesa-12.0.2.tar.xz
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,71 +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 12.0.3 Release Notes / September 15, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.0.3 is a bug fix release which fixes bugs found since the 12.0.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 12.0.3 implements the OpenGL 4.3 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.3. OpenGL
|
||||
4.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
79abcfab3de30dbd416d1582a3cf6b1be308466231488775f1b7bb43be353602 mesa-12.0.3.tar.gz
|
||||
1dc86dd9b51272eee1fad3df65e18cda2e556ef1bc0b6e07cd750b9757f493b1 mesa-12.0.3.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97781">Bug 97781</a> - [HSW, BYT, IVB] es2-cts.gtf.gl2extensiontests.depth_texture_cube_map.depth_texture_cube_map</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 12.0.2</li>
|
||||
<li>Revert "i965/miptree: Stop multiplying cube depth by 6 in HiZ calculations"</li>
|
||||
<li>Update version to 12.0.3</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>appveyor: Update winflexbison download URL.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,321 +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 12.0.4 Release Notes / November 10, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.0.4 is a bug fix release which fixes bugs found since the 12.0.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 12.0.4 implements the OpenGL 4.3 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.3. OpenGL
|
||||
4.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
22026ce4f1c6a7908b0d10ff057decec0a5633afe7f38a0cef5c08d0689f02a6 mesa-12.0.4.tar.gz
|
||||
5d6003da867d3f54e5000b4acdfc37e6cce5b6a4459274fdad73e24bd2f0065e mesa-12.0.4.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71759">Bug 71759</a> - Intel driver fails with "intel_do_flush_locked failed: No such file or directory" if buffer imported with EGL_NATIVE_PIXMAP_KHR</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94354">Bug 94354</a> - R9285 Unigine Valley perf regression since radeonsi: use re-Z</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96770">Bug 96770</a> - include/GL/mesa_glinterop.h:62: error: redefinition of typedef ‘GLXContext’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97231">Bug 97231</a> - GL_DEPTH_CLAMP doesn't clamp to the far plane</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97233">Bug 97233</a> - vkQuake VkSpecializationMapEntry related bug</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97260">Bug 97260</a> - R9 290 low performance in Linux 4.7</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97549">Bug 97549</a> - [SNB, BXT] up to 40% perf drop from "loader/dri3: Overhaul dri3_update_num_back" commit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97887">Bug 97887</a> - llvm segfault in janusvr -render vive</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98025">Bug 98025</a> - [radeonsi] incorrect primitive restart index used</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98134">Bug 98134</a> - dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.draw_buffers wants a different GL error code</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98326">Bug 98326</a> - [dEQP, EGL] pbuffer depth/stencil tests fail</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Axel Davy (4):</p>
|
||||
<ul>
|
||||
<li>gallium/util: Really allow aliasing of dst for u_box_union_*</li>
|
||||
<li>st/nine: Fix the calculation of the number of vs inputs</li>
|
||||
<li>st/nine: Fix mistake in Volume9 UnlockBox</li>
|
||||
<li>st/nine: Fix locking CubeTexture surfaces.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brendan King (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: fix the name of the Wayland Scanner pc file</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix swizzle issue in st_create_sampler_view_from_stobj()</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (3):</p>
|
||||
<ul>
|
||||
<li>egl: Fix truncation error in _eglParseSyncAttribList64</li>
|
||||
<li>i965/sync: Fix uninitalized usage and leak of mutex</li>
|
||||
<li>egl: Don't advertise unsupported platform extensions</li>
|
||||
</ul>
|
||||
|
||||
<p>Chuanbo Weng (1):</p>
|
||||
<ul>
|
||||
<li>gbm: fix potential NULL deref of mapImage/unmapImage.</li>
|
||||
</ul>
|
||||
|
||||
<p>Chuck Atkins (1):</p>
|
||||
<ul>
|
||||
<li>autoconf: Make header install distinct for various APIs (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (3):</p>
|
||||
<ul>
|
||||
<li>anv: initialise and increment send_sbc</li>
|
||||
<li>anv/wsi: fix apps that acquire multiple images up front</li>
|
||||
<li>Revert "st/vdpau: use linear layout for output surfaces"</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (12):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 12.0.3</li>
|
||||
<li>cherry-ignore: add non-applicable i965 commit</li>
|
||||
<li>cherry-ignore: add vaapi encode fix</li>
|
||||
<li>cherry-ignore: add EGL_KHR_debug fix</li>
|
||||
<li>cherry-ignore: add update_renderbuffer_read_surfaces()</li>
|
||||
<li>isl/gen6: correctly check msaa layout samples count</li>
|
||||
<li>egl/x11: don't crash if dri2_dpy->conn is NULL</li>
|
||||
<li>get-pick-list.sh: Require explicit "12.0" for nominating stable patches</li>
|
||||
<li>automake: don't forget to pick wglext.h in the tarball</li>
|
||||
<li>cherry-ignore: add N/A EGL revert</li>
|
||||
<li>cherry-ignore: add ClientWaitSync fixes</li>
|
||||
<li>Update version to 12.0.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (5):</p>
|
||||
<ul>
|
||||
<li>travis: Parse configure.ac to pick an updated LIBDRM_VERSION.</li>
|
||||
<li>travis: Update to the Ubuntu Trusty image.</li>
|
||||
<li>travis: Enable vc4 in libdrm to satisfy vc4 test build dependency.</li>
|
||||
<li>travis: Upgrade LLVM dependency to 3.5 and enable LLVM drivers.</li>
|
||||
<li>gallium: Fix install-gallium-links.mk on non-bash /bin/sh</li>
|
||||
</ul>
|
||||
|
||||
<p>Hans de Goede (1):</p>
|
||||
<ul>
|
||||
<li>pipe_loader_sw: Fix fd leak when instantiated via pipe_loader_sw_probe_kms</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Fix cut-and-paste bug in hierarchical visitor ir_expression::accept</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (16):</p>
|
||||
<ul>
|
||||
<li>nv30: set usage to staging so that the buffer is allocated in GART</li>
|
||||
<li>a3xx: make sure to actually clamp depth as requested</li>
|
||||
<li>a3xx: make use of software clipping when hw can't handle it</li>
|
||||
<li>a3xx: use window scissor to simulate viewport xy clip</li>
|
||||
<li>main: GL_RGB10_A2UI does not come with GL 3.0/EXT_texture_integer</li>
|
||||
<li>mesa/formatquery: limit ES target support, fix core context support</li>
|
||||
<li>nir: fix definition of pack_uvec2_to_uint</li>
|
||||
<li>gm107/ir: AL2P writes to a predicate register</li>
|
||||
<li>st/mesa: fix is_scissor_enabled when X/Y are negative</li>
|
||||
<li>nvc0/ir: fix overwriting of value backing non-constant gather offset</li>
|
||||
<li>nv50/ir: copy over value's register id when resolving merge of a phi</li>
|
||||
<li>nvc0/ir: fix textureGather with a single offset</li>
|
||||
<li>gm107/ir: fix texturing with indirect samplers</li>
|
||||
<li>gm107/ir: fix bit offset of tex lod setting for indirect texturing</li>
|
||||
<li>nv50,nvc0: avoid reading out of bounds when getting bogus so info</li>
|
||||
<li>nv50/ir: process texture offset sources as regular sources</li>
|
||||
</ul>
|
||||
|
||||
<p>James Legg (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix primitive restart when index changes</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (9):</p>
|
||||
<ul>
|
||||
<li>nir/spirv: Swap the argument order for AtomicCompareExchange</li>
|
||||
<li>nir/spirv: Use the correct sources for CompareExchange on images</li>
|
||||
<li>nir/spirv: Break variable decoration handling into a helper</li>
|
||||
<li>nir/spirv: Refactor variable deocration handling</li>
|
||||
<li>nir/spirv/cfg: Handle switches whose break block is a loop continue</li>
|
||||
<li>nir/spirv/cfg: Detect switch_break after loop_break/continue</li>
|
||||
<li>nir: Add a nop intrinsic</li>
|
||||
<li>nir/spirv/cfg: Use a nop intrinsic for tagging the ends of blocks</li>
|
||||
<li>intel/blorp: Rework our usage of ralloc when compiling shaders</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (3):</p>
|
||||
<ul>
|
||||
<li>genxml: add generated headers to EXTRA_DIST</li>
|
||||
<li>mapi: automake: set VISIBILITY_CFLAGS for shared glapi</li>
|
||||
<li>mesa: automake: include mesa_glinterop.h in distfile</li>
|
||||
</ul>
|
||||
|
||||
<p>Julien Isorce (1):</p>
|
||||
<ul>
|
||||
<li>st/va: also honors interlaced preference when providing a video format</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (8):</p>
|
||||
<ul>
|
||||
<li>nir: Call nir_metadata_preserve from nir_lower_alu_to_scalar().</li>
|
||||
<li>mesa: Expose RESET_NOTIFICATION_STRATEGY with KHR_robustness.</li>
|
||||
<li>i965: Fix missing _NEW_TRANSFORM in Gen8+ 3DSTATE_DS atom.</li>
|
||||
<li>i965: Add missing BRW_NEW_VS_PROG_DATA to 3DSTATE_CLIP.</li>
|
||||
<li>i965: Move BRW_NEW_FRAGMENT_PROGRAM from 3DSTATE_PS to PS_EXTRA.</li>
|
||||
<li>i965: Add missing BRW_NEW_CS_PROG_DATA to compute constant atom.</li>
|
||||
<li>i965: Add missing BRW_CS_PROG_DATA to CS work group surface atom.</li>
|
||||
<li>i965: Fix gl_InvocationID in dual object GS where invocations == 1.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (12):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix cubemaps viewed as 2D</li>
|
||||
<li>radeonsi: take compute shader and dispatch indirect memory usage into account</li>
|
||||
<li>radeonsi: fix FP64 UBO loads with indirect uniform block indexing</li>
|
||||
<li>mesa: fix glGetFramebufferAttachmentParameteriv w/ on-demand FRONT_BACK alloc</li>
|
||||
<li>radeonsi: fix interpolateAt opcodes for .zw components</li>
|
||||
<li>radeonsi: fix texture border colors for compute shaders</li>
|
||||
<li>radeonsi: disable ReZ</li>
|
||||
<li>gallium/radeon: make sure the address of separate CMASK is aligned properly</li>
|
||||
<li>winsys/amdgpu: fix radeon_surf::macro_tile_index for imported textures</li>
|
||||
<li>egl: use util/macros.h</li>
|
||||
<li>egl: make interop ABI visible again</li>
|
||||
<li>glx: make interop ABI visible again</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (1):</p>
|
||||
<ul>
|
||||
<li>glx: Perform check for valid fbconfig against proper X-Screen.</li>
|
||||
</ul>
|
||||
|
||||
<p>Martin Peres (2):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: add get_dri_screen() to the vtable</li>
|
||||
<li>loader/dri3: import prime buffers in the currently-bound screen</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Whitlock (5):</p>
|
||||
<ul>
|
||||
<li>egl/android: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)</li>
|
||||
<li>gallium/auxiliary: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)</li>
|
||||
<li>st/dri: replace calls to dup(2) with fcntl(F_DUPFD_CLOEXEC)</li>
|
||||
<li>st/xa: replace call to dup(2) with fcntl(F_DUPFD_CLOEXEC)</li>
|
||||
<li>gallium/winsys: replace calls to dup(2) with fcntl(F_DUPFD_CLOEXEC)</li>
|
||||
</ul>
|
||||
|
||||
<p>Max Staudt (1):</p>
|
||||
<ul>
|
||||
<li>r300g: Set R300_VAP_CNTL on RSxxx to avoid triangle flickering</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Overhaul dri3_update_num_back</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicholas Bishop (2):</p>
|
||||
<ul>
|
||||
<li>gbm: return appropriate error when queryImage() fails</li>
|
||||
<li>st/dri: check pipe_screen->resource_get_handle() return value</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (10):</p>
|
||||
<ul>
|
||||
<li>gallium/radeon: cleanup and fix branch emits</li>
|
||||
<li>st/glsl_to_tgsi: disable on-the-fly peephole for 64-bit operations</li>
|
||||
<li>st/glsl_to_tgsi: simplify translate_tex_offset</li>
|
||||
<li>st/glsl_to_tgsi: fix textureGatherOffset with indirectly loaded offsets</li>
|
||||
<li>st/mesa: fix vertex elements setup for doubles</li>
|
||||
<li>radeonsi: fix indirect loads of 64 bit constants</li>
|
||||
<li>st/glsl_to_tgsi: fix atomic counter addressing</li>
|
||||
<li>st/glsl_to_tgsi: fix block copies of arrays of doubles</li>
|
||||
<li>st/mesa: only set primitive_restart when the restart index is in range</li>
|
||||
<li>radeonsi: fix 64-bit loads from LDS</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (4):</p>
|
||||
<ul>
|
||||
<li>nvc0/ir: fix subops for IMAD</li>
|
||||
<li>gk110/ir: fix wrong emission of OP_NOT</li>
|
||||
<li>nvc0: use correct bufctx when invalidating CP textures</li>
|
||||
<li>nvc0/ir: fix emission of IMAD with NEG modifiers</li>
|
||||
</ul>
|
||||
|
||||
<p>Stencel, Joanna (1):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: add missing destroy_window callback</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (5):</p>
|
||||
<ul>
|
||||
<li>egl: stop claiming support for pbuffer + msaa</li>
|
||||
<li>egl/dri2: set max values for pbuffer width and height</li>
|
||||
<li>egl: add check that eglCreateContext gets a valid config</li>
|
||||
<li>mesa: fix error handling in DrawBuffers</li>
|
||||
<li>egl: set preserved behavior for surface only if config supports it</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: add llvm inteljitevents component if enabled</li>
|
||||
</ul>
|
||||
|
||||
<p>Vedran Miletić (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build against clang SVN >= r273191</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>Revert "mesa_glinterop: remove inclusion of GLX header"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,138 +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 12.0.5 Release Notes / December 5, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.0.5 is a bug fix release which fixes bugs found since the 12.0.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 12.0.5 implements the OpenGL 4.3 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.3. OpenGL
|
||||
4.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
44d08a27d98bfeacd864381189e434d98afbf451689d01f80380dc1d66450e5b mesa-12.0.5.tar.gz
|
||||
2b0a972d8282860a11291c09c3ef01ac45171405951eb21a83c45ed2b4321924 mesa-12.0.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77662">Bug 77662</a> - Fail to render to different faces of depth-stencil cube map</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97779">Bug 97779</a> - [regression, bisected][BDW, GPU hang] stuck on render ring, always reproducible</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98415">Bug 98415</a> - Vulkan Driver JSON file contains incorrect field</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adam Jackson (2):</p>
|
||||
<ul>
|
||||
<li>glx/glvnd: Don't modify the dummy slot in the dispatch table</li>
|
||||
<li>glx/glvnd: Fix dispatch function names and indices</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix GPU hang related to multiple render targets and alpha testing</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (4):</p>
|
||||
<ul>
|
||||
<li>docs: add release notes for 12.0.4</li>
|
||||
<li>docs: add sha256 checksums for 12.0.4</li>
|
||||
<li>cherry-ignore: add reverted LLVM_LIBDIR patch</li>
|
||||
<li>Update version to 12.0.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Haixia Shi (1):</p>
|
||||
<ul>
|
||||
<li>mesa: change state query return value for RGB565</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs/generator: Don't use the address immediate for MOV_INDIRECT</li>
|
||||
<li>anv/cmd_buffer: Take a command buffer instead of a batch in two helpers</li>
|
||||
<li>anv/cmd_buffer: Enable a CS stall workaround for Sky Lake gt4</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>intel: Fix pixel shader scratch space allocation on Gen9+ platforms.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (13):</p>
|
||||
<ul>
|
||||
<li>gallium/radeon: fix behavior of GLSL findLSB(0)</li>
|
||||
<li>gallium/radeon: make sure HTILE address is aligned properly</li>
|
||||
<li>radeonsi: fix an assertion failure in si_decompress_sampler_color_textures</li>
|
||||
<li>gallium/radeon: unify viewport emission code</li>
|
||||
<li>gallium/radeon: set VPORT_ZMIN/MAX registers correctly</li>
|
||||
<li>radeonsi: fix gl_PatchVerticesIn for tessellation evaluation shader</li>
|
||||
<li>radeonsi: fix a crash in imageSize for cubemap arrays</li>
|
||||
<li>radeonsi: emit TA_CS_BC_BASE_ADDR on SI only if the kernel allows it</li>
|
||||
<li>gallium/radeon: add support for sharing textures with DCC between processes</li>
|
||||
<li>radeonsi: always set all blend registers</li>
|
||||
<li>radeonsi: set CB_BLEND1_CONTROL.ENABLE for dual source blending</li>
|
||||
<li>radeonsi: disable RB+ blend optimizations for dual source blending</li>
|
||||
<li>radeonsi: silence runtime warnings with LLVM 3.9</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (1):</p>
|
||||
<ul>
|
||||
<li>anv: Replace "abi_versions" with correct "api_version".</li>
|
||||
</ul>
|
||||
|
||||
<p>Nanley Chery (1):</p>
|
||||
<ul>
|
||||
<li>mesa/fbobject: Update CubeMapFace when reusing textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Steinar H. Gunderson (1):</p>
|
||||
<ul>
|
||||
<li>Fix races during _mesa_HashWalk().</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (3):</p>
|
||||
<ul>
|
||||
<li>swr: [rasterizer jitter] cleanup supporting different llvm versions</li>
|
||||
<li>swr: [rasterizer jitter] fix llvm-3.7 compile</li>
|
||||
<li>swr: [rasterizer] add support for llvm-3.9</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,148 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 12.0.6 Release Notes / January 23, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.0.6 is a bug fix release which fixes bugs found since the 12.0.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 12.0.6 implements the OpenGL 4.3 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.3. OpenGL
|
||||
4.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
65339ba5d76a45225b8b56f9a1da9db15c569e1d163760faa2921da0a8461741 mesa-12.0.6.tar.gz
|
||||
7d6da9744c1022a4c2ab6ad01a206984d00443fb691568011d01b3dd97e36448 mesa-12.0.6.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92234">Bug 92234</a> - [BDW] GPU hang in Shogun2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95130">Bug 95130</a> - Derivatives of gl_Color wrong when helper pixels used</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98329">Bug 98329</a> - [dEQP, EGL, SKL, BDW, BSW] dEQP-EGL.functional.image.render_multiple_contexts.gles2_renderbuffer_depth16_depth_buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99030">Bug 99030</a> - [HSW, regression] transform feedback fails on Linux 4.8</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99354">Bug 99354</a> - [G71] "Assertion `bkref' failed" reproducible with glmark2</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Chad Versace (3):</p>
|
||||
<ul>
|
||||
<li>i965/mt: Disable aux surfaces after making miptree shareable</li>
|
||||
<li>i965/mt: Disable HiZ when sharing depth buffer externally (v2)</li>
|
||||
<li>anv: Handle vkGetPhysicalDeviceQueueFamilyProperties with count == 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 12.0.5</li>
|
||||
<li>get-typod-pick-list.sh: add new script</li>
|
||||
<li>automake: use shared llvm libs for make distcheck</li>
|
||||
<li>egl/wayland: use the destroy_window_callback for swrast</li>
|
||||
<li>Update version to 12.0.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Fredrik Höglund (1):</p>
|
||||
<ul>
|
||||
<li>dri3: Fix MakeCurrent without a default framebuffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>nouveau: take extra push space into account for pushbuf_space calls</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (19):</p>
|
||||
<ul>
|
||||
<li>spirv/nir: Fix some texture opcode asserts</li>
|
||||
<li>spirv/nir: Add support for shadow samplers that return vec4</li>
|
||||
<li>spirv/nir: Properly handle gather components</li>
|
||||
<li>anv/pipeline: Set binding_table.gather_texture_start</li>
|
||||
<li>nir: Add a helper for determining the type of a texture source</li>
|
||||
<li>nir/lower_tex: Add some helpers for working with tex sources</li>
|
||||
<li>nir/lower_tex: Add support for lowering coordinate offsets</li>
|
||||
<li>i965/nir: Enable NIR lowering of txf and rect offsets</li>
|
||||
<li>i965: Get rid of the do_lower_unnormalized_offsets pass</li>
|
||||
<li>spirv/nir: Don't increment coord_components for array lod queries</li>
|
||||
<li>anv/image: Assert that the image format is actually supported</li>
|
||||
<li>spirv/nir: Move opcode selection higher up in handle_texture</li>
|
||||
<li>spirv/nir: Refactor type handling in handle_texture</li>
|
||||
<li>nir/spirv: Refactor coordinate handling in handle_texture</li>
|
||||
<li>spirv/nir: Handle texture projectors</li>
|
||||
<li>spirv/nir: Add support for ImageQuerySamples</li>
|
||||
<li>anv/device: Return the right error for failed maps</li>
|
||||
<li>anv/device: Implicitly unmap memory objects in FreeMemory</li>
|
||||
<li>anv/descriptor_set: Write the state offset in the surface state free list.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>spirv: Move cursor before calling vtn_ssa_value() in phi 2nd pass.</li>
|
||||
<li>i965: Properly flush in hsw_pause_transform_feedback().</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (6):</p>
|
||||
<ul>
|
||||
<li>cso: don't release sampler states that are bound</li>
|
||||
<li>radeonsi: always restore sampler states when unbinding sampler views</li>
|
||||
<li>radeonsi: fix incorrect FMASK checking in bind_sampler_states</li>
|
||||
<li>radeonsi: disable CE on SI + AMDGPU</li>
|
||||
<li>radeonsi: disable the constant engine (CE) on Carrizo and Stoney</li>
|
||||
<li>gallium/radeon: fix the draw-calls HUD query</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Rename opt_copy_propagate -> opt_copy_propagation.</li>
|
||||
<li>i965/fs: Add unit tests for copy propagation pass.</li>
|
||||
<li>i965/fs: Reject copy propagation into SEL if not min/max.</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>cso: Don't restore nr_samplers in cso_restore_fragment_samplers</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: enable WQM in PS prolog when needed</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,311 +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 13.0.0 Release Notes / November 1, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 13.0.0 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 13.0.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 13.0.0 implements the OpenGL 4.4 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.4. OpenGL
|
||||
4.4 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
4a54d7cdc1a94a8dae05a75ccff48356406d51b0d6a64cbdc641c266e3e008eb mesa-13.0.0.tar.gz
|
||||
94edb4ebff82066a68be79d9c2627f15995e1fe10f67ab3fc63deb842027d727 mesa-13.0.0.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>OpenGL ES 3.1 on i965/hsw</li>
|
||||
<li>OpenGL ES 3.2 on i965/gen9+ (Skylake and later)</li>
|
||||
<li>GL_ARB_ES3_1_compatibility on i965</li>
|
||||
<li>GL_ARB_ES3_2_compatibility on i965/gen8+</li>
|
||||
<li>GL_ARB_clear_texture on r600, radeonsi</li>
|
||||
<li>GL_ARB_compute_variable_group_size on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_cull_distance on radeonsi</li>
|
||||
<li>GL_ARB_enhanced_layouts on i965, nv50, nvc0, radeonsi, llvmpipe, softpipe</li>
|
||||
<li>GL_ARB_indirect_parameters on radeonsi</li>
|
||||
<li>GL_ARB_query_buffer_object on radeonsi</li>
|
||||
<li>GL_ARB_shader_draw_parameters on radeonsi</li>
|
||||
<li>GL_ARB_shader_group_vote on nvc0</li>
|
||||
<li>GL_ARB_shader_viewport_layer_array on i965/gen6+</li>
|
||||
<li>GL_ARB_stencil_texturing on i965/hsw</li>
|
||||
<li>GL_ARB_texture_stencil8 on i965/hsw</li>
|
||||
<li>GL_EXT_window_rectangles on nv50, nvc0</li>
|
||||
<li>GL_KHR_blend_equation_advanced on i965</li>
|
||||
<li>GL_KHR_robustness on nvc0, radeonsi</li>
|
||||
<li>GL_KHR_texture_compression_astc_sliced_3d on i965</li>
|
||||
<li>GL_OES_copy_image on nv50, nvc0, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>GL_OES_geometry_shader on i965/gen8+, nvc0, radeonsi</li>
|
||||
<li>GL_OES_primitive_bounding_box on i965/gen7+, nvc0, radeonsi</li>
|
||||
<li>GL_OES_texture_cube_map_array on i965/gen8+, nvc0, radeonsi</li>
|
||||
<li>GL_OES_tessellation_shader on i965/gen7+, nvc0, radeonsi</li>
|
||||
<li>GL_OES_viewport_array on nvc0, radeonsi</li>
|
||||
<li>GL_ANDROID_extension_pack_es31a on i965/gen9+</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=61907">Bug 61907</a> - Indirect rendering of multi-texture vertex arrays broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69622">Bug 69622</a> - eglTerminate then eglMakeCurrent crahes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71759">Bug 71759</a> - Intel driver fails with "intel_do_flush_locked failed: No such file or directory" if buffer imported with EGL_NATIVE_PIXMAP_KHR</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83036">Bug 83036</a> - [ILK]Piglit spec_ARB_copy_image_arb_copy_image-formats fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89599">Bug 89599</a> - symbol 'x86_64_entry_start' is already defined when building with LLVM/clang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90513">Bug 90513</a> - Odd gray and red flicker in The Talos Principle on GK104</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=91342">Bug 91342</a> - Very dark textures on some objects in indoors environments in Postal 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92306">Bug 92306</a> - GL Excess demo renders incorrectly on nv43</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94148">Bug 94148</a> - Framebuffer considered invalid when a draw call is done before glCheckFramebufferStatus</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94354">Bug 94354</a> - R9285 Unigine Valley perf regression since radeonsi: use re-Z</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94561">Bug 94561</a> - [llvmpipe] PIPE_CAP_VIDEO_MEMORY reports negative value on 32 bits (with 16GB ram)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94627">Bug 94627</a> - Game Risen on wine black grass</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94681">Bug 94681</a> - dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23 takes 25 minutes to compile</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95000">Bug 95000</a> - deqp: assert in dEQP-GLES3.functional.vertex_arrays.single_attribute.strides.fixed.user_ptr_stride17_components2_quads1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95130">Bug 95130</a> - Derivatives of gl_Color wrong when helper pixels used</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95246">Bug 95246</a> - Segfault in glBindFramebuffer()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95419">Bug 95419</a> - [HSW][regression][bisect] RPG Maker game gives "invalid floating point operation" at startup</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95462">Bug 95462</a> - [BXT,BSW] arb_gpu_shader_fp64 causes gpu hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95529">Bug 95529</a> - [regression, bisected] Image corruption in Chrome</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96235">Bug 96235</a> - st_nir.h:34: error: redefinition of typedef ‘nir_shader’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96274">Bug 96274</a> - [NVC0] Failure when compiling compute shader: Assertion `bb->getFirst()->serial <= bb->getExit()->serial' failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96285">Bug 96285</a> - Mesa build broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96299">Bug 96299</a> - [vulkan] 64 regressions due to mesa d5f2f32</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96343">Bug 96343</a> - oom since st/mesa: implement PBO downloads for ReadPixels</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96346">Bug 96346</a> - [SNB,CTS] es2-cts.gtf.gl.atan regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96349">Bug 96349</a> - [CTS,SKL,BSW,BDW,KBL,BXT] es31-cts.arrays_of_arrays.interactionuniformbuffers3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96351">Bug 96351</a> - [CTS,SKL,KBL,BXT] es2-cts.gtf.gl2extensiontests.egl_image.egl_image</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96358">Bug 96358</a> - SSO: wrong interface validation between GS and VS (regresion due to latest gles 3.1)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96425">Bug 96425</a> - [bisected] occasional dark render in The Talos Principle</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96484">Bug 96484</a> - [vulkan] deqp-vk.glsl.builtin.precision.sin / cos regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96504">Bug 96504</a> - [vulkancts] compute tests crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96516">Bug 96516</a> - [bisected: 482526] "clover: Update OpenCL version string to match OpenGL": clover's build fails because of missing git_sha1.h</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96528">Bug 96528</a> - Location qualifier segfaults during shader compilation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96541">Bug 96541</a> - Tonga Unreal elemental bad rendering since radeonsi: Decompress DCC textures in a render feedback loop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96565">Bug 96565</a> - Clive Barker's Jericho displays strange,vivid colors when motion blur enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96607">Bug 96607</a> - [bisected] texture misrender / flicker in The Talos Principle on SKL</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96617">Bug 96617</a> - gl_SecondaryFragDataEXT doesn't work for extended blend func</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96629">Bug 96629</a> - dEQP-GLES2.functional.texture.completeness.cube.not_positive_level_0: Assertion `width >= 1' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96639">Bug 96639</a> - st/mesa: transfer_map with too-high level with dEQP-GLES2.functional.texture.completeness.cube.extra_level</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96674">Bug 96674</a> - [SNB, ILK] spec.ext_image_dma_buf_import.ext_image_dma_buf_import-sample_nv1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96729">Bug 96729</a> - Wrong shader compilation error message</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96762">Bug 96762</a> - [radeonsi,apitrace] Firewatch: nothing rendered in scrollable (text) areas</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96765">Bug 96765</a> - BindFragDataLocationIndexed on array fragment shader output.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96770">Bug 96770</a> - include/GL/mesa_glinterop.h:62: error: redefinition of typedef ‘GLXContext’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96782">Bug 96782</a> - [regression bisected] R600 fp64 and glsl-4.00 piglit failures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96791">Bug 96791</a> - Cannot use image from swapchains for sampling</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96825">Bug 96825</a> - anv_device.c:31:27: fatal error: anv_timestamp.h: No such file or directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96835">Bug 96835</a> - "gallium: Force blend color to 16-byte alignment" crash with "-march=native -O3" causes some 32bit games to crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96850">Bug 96850</a> - Crucible tests fail for 32bit mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96878">Bug 96878</a> - [Bisected: cc2d0e6][HSW] "GPU HANG" msg after autologin to gnome-session</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96908">Bug 96908</a> - [radeonsi] MSAA causes graphical artifacts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96911">Bug 96911</a> - webgl2 conformance2/textures/misc/tex-mipmap-levels.html crashes 12.1 Intel driver</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96949">Bug 96949</a> - [regression] Piglit numSamples assertion failures with 9a23a177b90</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96950">Bug 96950</a> - Another regression from bc4e0c486: vbo: Use a bitmask to track the active arrays in vbo_exec*.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96971">Bug 96971</a> - invariant qualifier is not valid for shader inputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97019">Bug 97019</a> - [clover] build failure in llvm/codegen/native.cpp:129:52</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97032">Bug 97032</a> - [BDW,SKL] piglit.spec.arb_gpu_shader5.arb_gpu_shader5-interpolateatcentroid-flat</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97033">Bug 97033</a> - [BDW,SKL] piglit.spec.arb_gpu_shader_fp64.varying-packing.simple regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97039">Bug 97039</a> - The Talos Principle and Serious Sam 3 GPU faults</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97083">Bug 97083</a> - [IVB,BYT] GPU hang on deqp-gles31.functional.separate.shader.random</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97140">Bug 97140</a> - dd_draw.c:949:11: error: implicit declaration of function 'fmemopen' is invalid in C99 [-Werror,-Wimplicit-function-declaration]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97207">Bug 97207</a> - [IVY BRIDGE] Fragment shader discard writing to depth</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97214">Bug 97214</a> - X not running with error "Failed to make EGL context current"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97225">Bug 97225</a> - [i965 on HD4600 Haswell] xcom switch to ingame cinematics cause segmentation fault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97231">Bug 97231</a> - GL_DEPTH_CLAMP doesn't clamp to the far plane</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97233">Bug 97233</a> - vkQuake VkSpecializationMapEntry related bug</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97260">Bug 97260</a> - R9 290 low performance in Linux 4.7</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97267">Bug 97267</a> - [BDW] GL45-CTS.texture_cube_map_array.sampling asserts inside brw_fs.cpp</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97278">Bug 97278</a> - [vulkancts,HSW] all vulkancts tests assert on HSW</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97285">Bug 97285</a> - Darkness in Dota 2 after Patch "Make Gallium's BlitFramebuffer follow the GL 4.4 sRGB rules"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97286">Bug 97286</a> - `make check` fails uniform-initializer-test</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97305">Bug 97305</a> - Gallium: TBOs and images set the offset in elements, not bytes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97307">Bug 97307</a> - glsl/glcpp/tests/glcpp-test regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97309">Bug 97309</a> - piglit.spec.glsl-1_30.compiler.switch-statement.switch-case-duplicated.vert regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97322">Bug 97322</a> - GenerateMipmap creates wrong mipmap for sRGB texture</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97331">Bug 97331</a> - glDrawElementsBaseVertex doesn't work in display list on i915</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97351">Bug 97351</a> - DrawElementsBaseVertex with VBO ignores base vertex on Intel GMA 9xx in some cases</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97413">Bug 97413</a> - BioShock Infinite crashes on startup with Mesa Git version, R7 370</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97426">Bug 97426</a> - glScissor gives vertically inverted result</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97448">Bug 97448</a> - [HSW] deqp-vk.api_.copy_and_blit.image_to_image_stencil regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97476">Bug 97476</a> - Shader binaries should not be stored in the PipelineCache</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97477">Bug 97477</a> - i915g: gl_FragCoord is always (0.0, max_y)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97513">Bug 97513</a> - clover reports wrong device pointer size</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97549">Bug 97549</a> - [SNB, BXT] up to 40% perf drop from "loader/dri3: Overhaul dri3_update_num_back" commit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97587">Bug 97587</a> - make check nir/tests/control_flow_tests regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97761">Bug 97761</a> - es2-cts.gtf.gl2extensiontests.egl_image_external.testsimpleunassociated crashes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97773">Bug 97773</a> - New Mesa master now results in warnings in glrender (and subsurfaces and simple-egl), black screen</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97779">Bug 97779</a> - [regression, bisected][BDW, GPU hang] stuck on render ring, always reproducible</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97790">Bug 97790</a> - Vulkan cts regressions due to 24be63066</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97804">Bug 97804</a> - Later precision statement isn't overriding earlier one</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97808">Bug 97808</a> - "tgsi/scan: don't set interp flags for inputs only used by INTERP instructions" causes glitches in wine with gallium nine</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97887">Bug 97887</a> - llvm segfault in janusvr -render vive</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97894">Bug 97894</a> - Crash in u_transfer_unmap_vtbl when unmapping a buffer mapped in different context</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97952">Bug 97952</a> - /usr/include/string.h:518:12: error: exception specification in declaration does not match previous declaration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97969">Bug 97969</a> - [radeonsi, bisected: fb827c0] Video decoding shows green artifacts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97976">Bug 97976</a> - VCE regression BO to small for addr since winsys/amdgpu: enable buffer allocation from slabs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98005">Bug 98005</a> - VCE dual instance encoding inconsistent since st/va: enable dual instances encode by sync surface</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98025">Bug 98025</a> - [radeonsi] incorrect primitive restart index used</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98128">Bug 98128</a> - nir/tests/control_flow_tests.cpp:79:73: error: ‘nir_loop_first_cf_node’ was not declared in this scope</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98131">Bug 98131</a> - Compiler should reject lowp/mediump qualifiers on atomic_uints</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98133">Bug 98133</a> - GetSynciv should raise an error if bufSize < 0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98134">Bug 98134</a> - dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.draw_buffers wants a different GL error code</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98135">Bug 98135</a> - dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.transform_feedback_varyings wants a different GL error code</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98167">Bug 98167</a> - [vulkan, radv] missing libgcrypt and openssl devel results in linker error in libvulkan_common</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98172">Bug 98172</a> - Concurrent call to glClientWaitSync results in segfault in one of the waiters.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98244">Bug 98244</a> - dEQP: textureOffset(sampler2DArrayShadow, ...) should not exist.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98264">Bug 98264</a> - Build broken for i965 due to multiple deifnitions of intelFenceExtension</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98307">Bug 98307</a> - "st/glsl_to_tgsi: explicitly track all input and output declaration" broke flightgear colors on rs780</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98326">Bug 98326</a> - [dEQP, EGL] pbuffer depth/stencil tests fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98415">Bug 98415</a> - Vulkan Driver JSON file contains incorrect field</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98431">Bug 98431</a> - UnrealEngine v4 demos startup fails to blorp blit assert</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
Mesa no longer depends on libudev.
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 13.0.1 Release Notes / November 14, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 13.0.1 is a bug fix release which fixes bugs found since the 13.0.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 13.0.1 implements the OpenGL 4.4 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.4. OpenGL
|
||||
4.4 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
7cbb91dead05cde279ee95f86e8321c8e1c8fc9deb88f12e0f587672a10d88c5 mesa-13.0.1.tar.gz
|
||||
71962fb2bf77d33b0ad4a565b490dbbeaf4619099c6d9722f04a73187957a731 mesa-13.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=97715">Bug 97715</a> - [ILK,G45,G965] piglit.spec.arb_separate_shader_objects.misc api error checks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98012">Bug 98012</a> - [IVB] Segfault when running Dolphin twice with Vulkan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98512">Bug 98512</a> - radeon r600 vdpau: Invalid command stream: texture bo too small</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adam Jackson (2):</p>
|
||||
<ul>
|
||||
<li>glx/glvnd: Don't modify the dummy slot in the dispatch table</li>
|
||||
<li>glx/glvnd: Fix dispatch function names and indices</li>
|
||||
</ul>
|
||||
|
||||
<p>Andreas Boll (1):</p>
|
||||
<ul>
|
||||
<li>glx/windows: Add wgl.h to the sources list</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix GPU hang related to multiple render targets and alpha testing</li>
|
||||
</ul>
|
||||
|
||||
<p>Chih-Wei Huang (1):</p>
|
||||
<ul>
|
||||
<li>android: avoid using libdrm with host modules</li>
|
||||
</ul>
|
||||
|
||||
<p>Darren Salt (1):</p>
|
||||
<ul>
|
||||
<li>radv/pipeline: Don't dereference NULL dynamic state pointers</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (8):</p>
|
||||
<ul>
|
||||
<li>radv: expose xlib platform extension</li>
|
||||
<li>radv: fix dual source blending</li>
|
||||
<li>Revert "st/vdpau: use linear layout for output surfaces"</li>
|
||||
<li>radv: emit correct last export when Z/stencil export is enabled</li>
|
||||
<li>ac/nir: add support for discard_if intrinsic (v2)</li>
|
||||
<li>nir: add conditional discard optimisation (v4)</li>
|
||||
<li>radv: enable conditional discard optimisation on radv.</li>
|
||||
<li>radv: fix GetFenceStatus for signaled fences</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (6):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 13.0.0</li>
|
||||
<li>amd/addrlib: limit fastcall/regparm to GCC i386</li>
|
||||
<li>anv: use correct .specVersion for extensions</li>
|
||||
<li>radv: use correct .specVersion for extensions</li>
|
||||
<li>radv: Suffix the radeon_icd file with the host CPU</li>
|
||||
<li>Update version to 13.0.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: Use Newton-Raphson on the 1/W write to fix glmark2 terrain.</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (1):</p>
|
||||
<ul>
|
||||
<li>nir: Flip gl_SamplePosition in nir_lower_wpos_ytransform().</li>
|
||||
</ul>
|
||||
|
||||
<p>Fredrik Höglund (1):</p>
|
||||
<ul>
|
||||
<li>radv: add support for anisotropic filtering on VI+</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (21):</p>
|
||||
<ul>
|
||||
<li>anv/device: Return DEVICE_LOST if execbuf2 fails</li>
|
||||
<li>vulkan/wsi/x11: Better handle wsi_x11_connection_create failure</li>
|
||||
<li>vulkan/wsi/x11: Clean up connections in finish_wsi</li>
|
||||
<li>anv: Better handle return codes from anv_physical_device_init</li>
|
||||
<li>intel/blorp: Use wm_prog_data instead of hand-rolling our own</li>
|
||||
<li>intel/blorp: Pass a brw_stage_prog_data to upload_shader</li>
|
||||
<li>anv/pipeline: Put actual pointers in anv_shader_bin</li>
|
||||
<li>anv/pipeline: Properly cache prog_data::param</li>
|
||||
<li>intel/blorp: Emit all the binding tables</li>
|
||||
<li>anv/device: Add an execbuf wrapper</li>
|
||||
<li>anv: Add a cmd_buffer_execbuf helper</li>
|
||||
<li>anv: Don't presume to know what address is in a surface relocation</li>
|
||||
<li>anv: Add a new bo_pool_init helper</li>
|
||||
<li>anv/allocator: Simplify anv_scratch_pool</li>
|
||||
<li>anv: Initialize anv_bo::offset to -1</li>
|
||||
<li>anv/batch_chain: Improve write_reloc</li>
|
||||
<li>anv: Add an anv_execbuf helper struct</li>
|
||||
<li>anv/batch: Move last_ss_pool_bo_offset to the command buffer</li>
|
||||
<li>anv: Move relocation handling from EndCommandBuffer to QueueSubmit</li>
|
||||
<li>anv/cmd_buffer: Take a command buffer instead of a batch in two helpers</li>
|
||||
<li>anv/cmd_buffer: Enable a CS stall workaround for Sky Lake gt4</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Update deref types when resizing implicitly sized arrays.</li>
|
||||
<li>mesa: Fix pixel shader scratch space allocation on Gen9+ platforms.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kristian Høgsberg (1):</p>
|
||||
<ul>
|
||||
<li>anv: Do relocations in userspace before execbuf ioctl</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>egl: use util/macros.h</li>
|
||||
<li>egl: make interop ABI visible again</li>
|
||||
<li>glx: make interop ABI visible again</li>
|
||||
<li>radeonsi: fix an assertion failure in si_decompress_sampler_color_textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix BFE/BFI lowering for GLSL semantics</li>
|
||||
<li>glsl: fix lowering of UBO references of named blocks</li>
|
||||
<li>st/glsl_to_tgsi: fix dvec[34] loads from SSBO</li>
|
||||
<li>st/mesa: fix the layer of VDPAU surface samplers</li>
|
||||
</ul>
|
||||
|
||||
<p>Steven Toth (3):</p>
|
||||
<ul>
|
||||
<li>gallium/hud: fix a problem where objects are free'd while in use.</li>
|
||||
<li>gallium/hud: close a previously opened handle</li>
|
||||
<li>gallium/hud: protect against and initialization race</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>mesa/glsl: delete previously linked shaders earlier when linking</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,189 +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 13.0.2 Release Notes / November 28, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 13.0.2 is a bug fix release which fixes bugs found since the 13.0.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 13.0.2 implements the OpenGL 4.4 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.4. OpenGL
|
||||
4.4 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
6014233a5db6032ab8de4881384871bbe029de684502707794ce7b3e6beec308 mesa-13.0.2.tar.gz
|
||||
a6ed622645f4ed61da418bf65adde5bcc4bb79023c36ba7d6b45b389da4416d5 mesa-13.0.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=97321">Bug 97321</a> - Query INFO_LOG_LENGTH for empty info log should return 0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97420">Bug 97420</a> - "#version 0" crashes glsl_compiler</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98632">Bug 98632</a> - Fix build on Hurd without PATH_MAX</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Ben Widawsky (3):</p>
|
||||
<ul>
|
||||
<li>i965: Add some APL and KBL SKU strings</li>
|
||||
<li>i965: Reorder PCI ID list to match release order</li>
|
||||
<li>i965/glk: Add basic Geminilake support</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (14):</p>
|
||||
<ul>
|
||||
<li>radv: fix texturesamples to handle single sample case</li>
|
||||
<li>wsi: fix VK_INCOMPLETE for vkGetSwapchainImagesKHR</li>
|
||||
<li>radv: don't crash on null swapchain destroy.</li>
|
||||
<li>ac/nir/llvm: fix channel in texture gather lowering code.</li>
|
||||
<li>radv: make sure to flush input attachments correctly.</li>
|
||||
<li>radv: fix image view creation for depth and stencil only</li>
|
||||
<li>radv: spir-v allows texture size query with and without lod.</li>
|
||||
<li>vulkan/wsi/x11: handle timeouts properly in next image acquire (v1.1)</li>
|
||||
<li>vulkan/wsi: store present mode in swapchain base class</li>
|
||||
<li>vulkan/wsi/x11: add support for IMMEDIATE present mode</li>
|
||||
<li>radv: fix texel fetch offset with 2d arrays.</li>
|
||||
<li>radv/si: fix optimal micro tile selection</li>
|
||||
<li>radv/ac/llvm: shadow samplers only return one value.</li>
|
||||
<li>radv: fix 3D clears with baseMiplevel</li>
|
||||
</ul>
|
||||
|
||||
<p>Eduardo Lima Mitev (2):</p>
|
||||
<ul>
|
||||
<li>vulkan/wsi/x11: Fix behavior of vkGetPhysicalDeviceSurfaceFormatsKHR</li>
|
||||
<li>vulkan/wsi/x11: Fix behavior of vkGetPhysicalDeviceSurfacePresentModesKHR</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 13.0.1</li>
|
||||
<li>cherry-ignore: add reverted LLVM_LIBDIR patch</li>
|
||||
<li>anv: fix enumeration of properties</li>
|
||||
<li>radv: honour the number of properties available</li>
|
||||
<li>Update version to 13.0.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (3):</p>
|
||||
<ul>
|
||||
<li>vc4: Don't abort when a shader compile fails.</li>
|
||||
<li>vc4: Clamp the shadow comparison value.</li>
|
||||
<li>vc4: Fix register class handling of DDX/DDY arguments.</li>
|
||||
</ul>
|
||||
|
||||
<p>Gwan-gyeong Mun (2):</p>
|
||||
<ul>
|
||||
<li>util/disk_cache: close a previously opened handle in disk_cache_put (v2)</li>
|
||||
<li>anv: Fix unintentional integer overflow in anv_CreateDmaBufImageINTEL</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>anv/format: handle unsupported formats properly</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>glcpp: Handle '#version 0' and other invalid values</li>
|
||||
<li>glsl: Parse 0 as a preprocessor INTCONSTANT</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (15):</p>
|
||||
<ul>
|
||||
<li>anv/gen8: Stall when needed in Cmd(Set|Reset)Event</li>
|
||||
<li>anv/wsi: Set the fence to signaled in AcquireNextImageKHR</li>
|
||||
<li>anv: Rework fences</li>
|
||||
<li>vulkan/wsi/wayland: Include pthread.h</li>
|
||||
<li>vulkan/wsi/wayland: Clean up some error handling paths</li>
|
||||
<li>vulkan/wsi: Report the correct min/maxImageCount</li>
|
||||
<li>i965/gs: Allow primitive id to be a system value</li>
|
||||
<li>anv: Handle null in all destructors</li>
|
||||
<li>anv/fence: Handle ANV_FENCE_CREATE_SIGNALED_BIT</li>
|
||||
<li>nir/spirv: Fix handling of gl_PrimitiveId</li>
|
||||
<li>anv/blorp: Ignore clears for attachments first used as resolve destinations</li>
|
||||
<li>anv: Implement a depth stall restriction on gen7</li>
|
||||
<li>anv/cmd_buffer: Handle running out of binding tables in compute shaders</li>
|
||||
<li>anv/cmd_buffer: Emit a CS stall before setting a CS pipeline</li>
|
||||
<li>vulkan/wsi/x11: Implement FIFO mode.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (2):</p>
|
||||
<ul>
|
||||
<li>isl: Fix height calculation in isl_msaa_interleaved_scale_px_to_sa</li>
|
||||
<li>i965/hsw: Set integer mode in sampling state for stencil texturing</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (4):</p>
|
||||
<ul>
|
||||
<li>intel: Set min_ds_entries on Broxton.</li>
|
||||
<li>i965: Fix compute shader crash.</li>
|
||||
<li>mesa: Drop PATH_MAX usage.</li>
|
||||
<li>i965: Fix GS push inputs with enhanced layouts.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kevin Strasser (1):</p>
|
||||
<ul>
|
||||
<li>vulkan/wsi: Add a thread-safe queue implementation</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix multi level clears with VK_REMAINING_MIP_LEVELS</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>gbm: request correct version of the DRI2_FENCE extension</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (2):</p>
|
||||
<ul>
|
||||
<li>radeonsi: store group_size_variable in struct si_compute</li>
|
||||
<li>glsl/lower_output_reads: fix geometry shader output handling with conditional emit</li>
|
||||
</ul>
|
||||
|
||||
<p>Steinar H. Gunderson (1):</p>
|
||||
<ul>
|
||||
<li>Fix races during _mesa_HashWalk().</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix empty program log length</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,177 +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 13.0.3 Release Notes / January 5, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 13.0.3 is a bug fix release which fixes bugs found since the 13.0.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 13.0.3 implements the OpenGL 4.4 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.4. OpenGL
|
||||
4.4 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
55b07d056f9b855ba9d7c8b2ddc7d3b220a61c6ab1bdc73cbfc2f607721094c2 mesa-13.0.3.tar.gz
|
||||
d9aa8be5c176d00d0cd503cb2f64a5a403ea471ec819c022581414860d7ba40e mesa-13.0.3.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77662">Bug 77662</a> - Fail to render to different faces of depth-stencil cube map</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92234">Bug 92234</a> - [BDW] GPU hang in Shogun2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98329">Bug 98329</a> - [dEQP, EGL, SKL, BDW, BSW] dEQP-EGL.functional.image.render_multiple_contexts.gles2_renderbuffer_depth16_depth_buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99038">Bug 99038</a> - [dEQP, EGL, SKL, BDW, BSW] dEQP-EGL.functional.negative_api.create_pixmap_surface crashes</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Chad Versace (2):</p>
|
||||
<ul>
|
||||
<li>i965/mt: Disable aux surfaces after making miptree shareable</li>
|
||||
<li>egl: Fix crashes in eglCreate*Surface()</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (4):</p>
|
||||
<ul>
|
||||
<li>anv: set maxFragmentDualSrcAttachments to 1</li>
|
||||
<li>radv: set maxFragmentDualSrcAttachments to 1</li>
|
||||
<li>radv: fix another regression since shadow fixes.</li>
|
||||
<li>radv: add missing license file to radv_meta_bufimage.</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 13.0.2</li>
|
||||
<li>anv: don't double-close the same fd</li>
|
||||
<li>anv: don't leak memory if anv_init_wsi() fails</li>
|
||||
<li>radv: don't leak the fd if radv_physical_device_init() succeeds</li>
|
||||
<li>Update version to 13.0.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: In a loop break/continue, jump if everyone has taken the path.</li>
|
||||
</ul>
|
||||
|
||||
<p>Gwan-gyeong Mun (3):</p>
|
||||
<ul>
|
||||
<li>anv: Add missing error-checking to anv_block_pool_init (v2)</li>
|
||||
<li>anv: Update the teardown in reverse order of the anv_CreateDevice</li>
|
||||
<li>vulkan/wsi: Fix resource leak in success path of wsi_queue_init()</li>
|
||||
</ul>
|
||||
|
||||
<p>Haixia Shi (1):</p>
|
||||
<ul>
|
||||
<li>compiler/glsl: fix precision problem of tanh</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>mesa: only verify that enabled arrays have backing buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (8):</p>
|
||||
<ul>
|
||||
<li>anv/cmd_buffer: Re-emit MEDIA_CURBE_LOAD when CS push constants are dirty</li>
|
||||
<li>anv/image: Rename hiz_surface to aux_surface</li>
|
||||
<li>anv/cmd_buffer: Remove the 1-D case from the HiZ QPitch calculation</li>
|
||||
<li>genxml/gen9: Change the default of MI_SEMAPHORE_WAIT::RegisterPoleMode</li>
|
||||
<li>anv/device: Return the right error for failed maps</li>
|
||||
<li>anv/device: Implicitly unmap memory objects in FreeMemory</li>
|
||||
<li>anv/descriptor_set: Write the state offset in the surface state free list.</li>
|
||||
<li>spirv: Use a simpler and more correct implementaiton of tanh()</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Allocate at least some URB space even when max_vertices = 0.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (17):</p>
|
||||
<ul>
|
||||
<li>radeonsi: always set all blend registers</li>
|
||||
<li>radeonsi: set CB_BLEND1_CONTROL.ENABLE for dual source blending</li>
|
||||
<li>radeonsi: disable RB+ blend optimizations for dual source blending</li>
|
||||
<li>radeonsi: consolidate max-work-group-size computation</li>
|
||||
<li>radeonsi: apply a multi-wave workgroup SPI bug workaround to affected CIK chips</li>
|
||||
<li>radeonsi: apply a TC L1 write corruption workaround for SI</li>
|
||||
<li>radeonsi: apply a tessellation bug workaround for SI</li>
|
||||
<li>radeonsi: add a tess+GS hang workaround for VI dGPUs</li>
|
||||
<li>radeonsi: apply the double EVENT_WRITE_EOP workaround to VI as well</li>
|
||||
<li>cso: don't release sampler states that are bound</li>
|
||||
<li>radeonsi: always restore sampler states when unbinding sampler views</li>
|
||||
<li>radeonsi: fix incorrect FMASK checking in bind_sampler_states</li>
|
||||
<li>radeonsi: allow specifying simm16 of emit_waitcnt at call sites</li>
|
||||
<li>radeonsi: wait for outstanding memory instructions in TCS barriers</li>
|
||||
<li>tgsi: fix the src type of TGSI_OPCODE_MEMBAR</li>
|
||||
<li>radeonsi: wait for outstanding LDS instructions in memory barriers if needed</li>
|
||||
<li>radeonsi: disable the constant engine (CE) on Carrizo and Stoney</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Rename opt_copy_propagate -> opt_copy_propagation.</li>
|
||||
<li>i965/fs: Add unit tests for copy propagation pass.</li>
|
||||
<li>i965/fs: Reject copy propagation into SEL if not min/max.</li>
|
||||
</ul>
|
||||
|
||||
<p>Nanley Chery (1):</p>
|
||||
<ul>
|
||||
<li>mesa/fbobject: Update CubeMapFace when reusing textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix isolines tess factor writes to control ring</li>
|
||||
<li>radeonsi: update all GSVS ring descriptors for new buffer allocations</li>
|
||||
<li>radeonsi: do not kill GS with memory writes</li>
|
||||
<li>radeonsi: fix an off-by-one error in the bounds check for max_vertices</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Kidd (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Add pthread libs to cache_test</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>mesa: fix active subroutine uniforms properly</li>
|
||||
<li>Revert "nir: Turn imov/fmov of undef into undef."</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,75 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 17.0.0 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.0.0 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 17.0.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.0.0 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_ARB_post_depth_coverage on i965/gen9+</li>
|
||||
<li>GL_KHR_blend_equation_advanced on nvc0</li>
|
||||
<li>GL_INTEL_conservative_rasterization on i965/gen9+</li>
|
||||
<li>GL_NV_image_formats on any driver supporting GL_ARB_shader_image_load_store (i965, nvc0, radeonsi, softpipe)</li>
|
||||
<li>GL_ARB_gpu_shader_fp64 in i965/haswell</li>
|
||||
<li>GL_ARB_vertex_attrib_64bit in i965/haswell</li>
|
||||
<li>GL_ARB_shader_precision in i965/haswell</li>
|
||||
<li>Intel Haswell now supports OpenGL 4.2</li>
|
||||
<li>GL_OES_geometry_shader on i965/haswell</li>
|
||||
<li>GL_OES_texture_cube_map_array on i965/haswell</li>
|
||||
<li>GL_OES_viewport_array on i965/haswell</li>
|
||||
<li>Vulkan Float64 capability support on Intel's ANV driver</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98480">Bug 98480</a> - Support R8 image texture in ES 3.1</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
TBD.
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -75,8 +75,7 @@ follow this procedure:
|
||||
<li>Subscribe to the
|
||||
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
|
||||
mailing list.
|
||||
<li>Start contributing to the project by
|
||||
<a href="submittingpatches.html" target="_parent">submitting patches</a> to
|
||||
<li>Start contributing to the project by posting patches / review requests to
|
||||
the mesa-dev list. Specifically,
|
||||
<ul>
|
||||
<li>Use <code>git send-mail</code> to post your patches to mesa-dev.
|
||||
|
@@ -172,7 +172,7 @@ This tool is useful for:
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
After building Mesa, the compiler can be found at src/compiler/glsl/glsl_compiler
|
||||
After building Mesa, the compiler can be found at src/glsl/glsl_compiler
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -180,7 +180,7 @@ Here's an example of using the compiler to compile a vertex shader and
|
||||
emit GL_ARB_vertex_program-style instructions:
|
||||
</p>
|
||||
<pre>
|
||||
src/compiler/glsl/glsl_compiler --version XXX --dump-ast myshader.vert
|
||||
src/glsl/glsl_compiler --dump-ast myshader.vert
|
||||
</pre>
|
||||
|
||||
Options include
|
||||
@@ -188,11 +188,7 @@ Options include
|
||||
<li><b>--dump-ast</b> - dump GPU code
|
||||
<li><b>--dump-hir</b> - dump high-level IR code
|
||||
<li><b>--dump-lir</b> - dump low-level IR code
|
||||
<li><b>--dump-builder</b> - dump GLSL IR code
|
||||
<li><b>--link</b> - link shaders
|
||||
<li><b>--just-log</b> - display only shader / linker info if exist,
|
||||
without any header or separator
|
||||
<li><b>--version</b> - [Mandatory] define the GLSL version to use
|
||||
<li><b>--link</b> - ???
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -200,7 +196,7 @@ without any header or separator
|
||||
|
||||
<p>
|
||||
The source code for Mesa's shading language compiler is in the
|
||||
<code>src/compiler/glsl/</code> directory.
|
||||
<code>src/glsl/</code> directory.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -27,18 +27,14 @@ each directory.
|
||||
<li><b>include</b> - Public OpenGL header files
|
||||
<li><b>src</b>
|
||||
<ul>
|
||||
<li><b>compiler</b> - Common utility sources for different compilers.
|
||||
<ul>
|
||||
<li><b>glsl</b> - the GLSL IR and compiler
|
||||
<li><b>nir</b> - the NIR IR and compiler
|
||||
<li><b>spriv</b> - the SPIR-V compiler
|
||||
</ul>
|
||||
<li><b>egl</b> - EGL library sources
|
||||
<ul>
|
||||
<li><b>docs</b> - EGL documentation
|
||||
<li><b>drivers</b> - EGL drivers
|
||||
<li><b>main</b> - main EGL library implementation. This is where all
|
||||
the EGL API functions are implemented, like eglCreateContext().
|
||||
</ul>
|
||||
<li><b>glsl</b> - the GLSL compiler
|
||||
<li><b>mapi</b> - Mesa APIs
|
||||
<li><b>glapi</b> - OpenGL API dispatch layer. This is where all the
|
||||
GL entrypoints like glClear, glBegin, etc. are generated, as well as
|
||||
@@ -98,8 +94,7 @@ each directory.
|
||||
<ul>
|
||||
<li><b>i915</b> - Driver for Intel i915/i945.
|
||||
<li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
|
||||
<li><b>nouveau</b> - Driver for NVIDIA GPUs.
|
||||
<li><b>radeon</b> - Shared module for the r600 and radeonsi drivers.
|
||||
<li><b>nv*</b> - Drivers for NVIDIA GPUs.
|
||||
<li><b>radeonsi</b> - Driver for AMD Southern Island.
|
||||
<li><b>r300</b> - Driver for ATI R300 - R500.
|
||||
<li><b>r600</b> - Driver for ATI/AMD R600 - Northern Island.
|
||||
@@ -133,19 +128,16 @@ each directory.
|
||||
to another.
|
||||
<li><b>util</b> - assorted utilities for arithmetic, hashing, surface
|
||||
creation, memory management, 2D blitting, simple rendering, etc.
|
||||
<li>XXX more
|
||||
</ul>
|
||||
<li><b>state_trackers</b> -
|
||||
<ul>
|
||||
<li><b>clover</b> - OpenCL state tracker
|
||||
<li><b>dri</b> - Meta state tracker for DRI drivers
|
||||
<li><b>glx</b> - Meta state tracker for GLX
|
||||
<li><b>wgl</b> - Windows WGL state tracker
|
||||
<li><b>xa</b> - XA state tracker
|
||||
<li><b>xvmc</b> - XvMC state tracker
|
||||
<li><b>vdpau</b> - VDPAU state tracker
|
||||
<li><b>va</b> - VA-API state tracker
|
||||
<li><b>omx</b> - OpenMAX state tracker
|
||||
<li><b>wgl</b> -
|
||||
<li><b>xorg</b> - Meta state tracker for Xorg video drivers
|
||||
<li><b>xvmc</b> - XvMC state tracker
|
||||
</ul>
|
||||
<li><b>winsys</b> -
|
||||
<ul>
|
||||
@@ -156,11 +148,11 @@ each directory.
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>glx</b> - The GLX library code for building libGL using DRI drivers.
|
||||
<li><b>glx</b> - The GLX library code for building libGL. This is used for
|
||||
direct rendering drivers. It will dynamically load one of the
|
||||
xxx_dri.so drivers.
|
||||
</ul>
|
||||
<li><b>lib</b> - hardlinks to most binaries as produced by <strong>make</strong>.
|
||||
These (shortcuts) are used for development purposes in conjunction with
|
||||
LD_LIBRARY_PATH and/or LIBGL_DRIVERS_PATH.
|
||||
<li><b>lib</b> - where the GL libraries are placed
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@@ -1,120 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_platform_surfaceless
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_platform_surfaceless
|
||||
|
||||
Contributors
|
||||
|
||||
Chad Versace <chadversary@google.com>
|
||||
Haixia Shi <hshi@google.com>
|
||||
Stéphane Marchesin <marcheu@google.com>
|
||||
Zach Reizner <zachr@chromium.org>
|
||||
Gurchetan Singh <gurchetansingh@google.com>
|
||||
|
||||
Contacts
|
||||
|
||||
Chad Versace <chadversary@google.com>
|
||||
|
||||
Status
|
||||
|
||||
DRAFT
|
||||
|
||||
Version
|
||||
|
||||
Version 2, 2016-10-13
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension #TODO
|
||||
|
||||
Extension Type
|
||||
|
||||
EGL client extension
|
||||
|
||||
Dependencies
|
||||
|
||||
Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.
|
||||
|
||||
This extension is written against the EGL 1.5 Specification (draft
|
||||
20140122).
|
||||
|
||||
This extension interacts with EGL_EXT_platform_base as follows. If the
|
||||
implementation supports EGL_EXT_platform_base, then text regarding
|
||||
eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;
|
||||
eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and
|
||||
eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.
|
||||
|
||||
Overview
|
||||
|
||||
This extension defines a new EGL platform, the "surfaceless" platform. This
|
||||
platfom's defining property is that it has no native surfaces, and hence
|
||||
neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface
|
||||
can be used. The platform is independent of any native window system.
|
||||
|
||||
The platform's intended use case is for enabling OpenGL and OpenGL ES
|
||||
applications on systems where no window system exists. However, the
|
||||
platform's permitted usage is not restricted to this case. Since the
|
||||
platform is independent of any native window system, it may also be used on
|
||||
systems where a window system is present.
|
||||
|
||||
New Types
|
||||
|
||||
None
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None
|
||||
|
||||
New Tokens
|
||||
|
||||
Accepted as the <platform> argument of eglGetPlatformDisplay:
|
||||
|
||||
EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||
|
||||
Additions to the EGL Specification
|
||||
|
||||
None.
|
||||
|
||||
New Behavior
|
||||
|
||||
To determine if the EGL implementation supports this extension, clients
|
||||
should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
|
||||
|
||||
To obtain an EGLDisplay on the surfaceless platform, call
|
||||
eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.
|
||||
The <native_display> parameter must be EGL_DEFAULT_DISPLAY.
|
||||
|
||||
eglCreatePlatformWindowSurface fails when called with a <display> that
|
||||
belongs to the surfaceless platform. It returns EGL_NO_SURFACE and
|
||||
generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional
|
||||
failure is that the surfaceless platform has no native windows, and
|
||||
therefore the <native_window> parameter is always invalid.
|
||||
|
||||
Likewise, eglCreatePlatformPixmapSurface also fails when called with a
|
||||
<display> that belongs to the surfaceless platform. It returns
|
||||
EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.
|
||||
|
||||
The surfaceless platform imposes no platform-specific restrictions on the
|
||||
creation of pbuffers, as eglCreatePbufferSurface has no native surface
|
||||
parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose
|
||||
EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay
|
||||
permits the creation of pbuffers with that config.
|
||||
|
||||
Issues
|
||||
|
||||
None.
|
||||
|
||||
Revision History
|
||||
|
||||
Version 2, 2016-10-13 (Chad Versace)
|
||||
- Assign enum values
|
||||
- Define interfactions with EGL 1.4 and EGL_EXT_platform_base.
|
||||
- Add Gurchetan as contributor, as he implemented the pbuffer support.
|
||||
|
||||
Version 1, 2016-09-23 (Chad Versace)
|
||||
- Initial version
|
||||
- Posted for review at
|
||||
https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html
|
@@ -12,12 +12,11 @@ Contact
|
||||
|
||||
Status
|
||||
|
||||
Superseded by the functionally identical EGL_KHR_no_config_context
|
||||
extension.
|
||||
Proposal
|
||||
|
||||
Version
|
||||
|
||||
Version 2, September 9, 2016
|
||||
Version 1, February 28, 2014
|
||||
|
||||
Number
|
||||
|
||||
@@ -122,8 +121,5 @@ Issues
|
||||
|
||||
Revision History
|
||||
|
||||
Version 2, September 9, 2016
|
||||
Defer to EGL_KHR_no_config_context (Adam Jackson)
|
||||
|
||||
Version 1, February 28, 2014
|
||||
Initial draft (Neil Roberts)
|
||||
|
@@ -1,520 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_shader_integer_functions
|
||||
|
||||
Name Strings
|
||||
|
||||
GL_MESA_shader_integer_functions
|
||||
|
||||
Contact
|
||||
|
||||
Ian Romanick <ian.d.romanick@intel.com>
|
||||
|
||||
Contributors
|
||||
|
||||
All the contributors of GL_ARB_gpu_shader5
|
||||
|
||||
Status
|
||||
|
||||
Supported by all GLSL 1.30 capable drivers in Mesa 12.1 and later
|
||||
|
||||
Version
|
||||
|
||||
Version 2, July 7, 2016
|
||||
|
||||
Number
|
||||
|
||||
TBD
|
||||
|
||||
Dependencies
|
||||
|
||||
This extension is written against the OpenGL 3.2 (Compatibility Profile)
|
||||
Specification.
|
||||
|
||||
This extension is written against Version 1.50 (Revision 09) of the OpenGL
|
||||
Shading Language Specification.
|
||||
|
||||
GLSL 1.30 is required.
|
||||
|
||||
This extension interacts with ARB_gpu_shader5.
|
||||
|
||||
This extension interacts with ARB_gpu_shader_fp64.
|
||||
|
||||
This extension interacts with NV_gpu_shader5.
|
||||
|
||||
Overview
|
||||
|
||||
GL_ARB_gpu_shader5 extends GLSL in a number of useful ways. Much of this
|
||||
added functionality requires significant hardware support. There are many
|
||||
aspects, however, that can be easily implmented on any GPU with "real"
|
||||
integer support (as opposed to simulating integers using floating point
|
||||
calculations).
|
||||
|
||||
This extension provides a set of new features to the OpenGL Shading
|
||||
Language to support capabilities of these GPUs, extending the capabilities
|
||||
of version 1.30 of the OpenGL Shading Language. Shaders
|
||||
using the new functionality provided by this extension should enable this
|
||||
functionality via the construct
|
||||
|
||||
#extension GL_MESA_shader_integer_functions : require (or enable)
|
||||
|
||||
This extension provides a variety of new features for all shader types,
|
||||
including:
|
||||
|
||||
* support for implicitly converting signed integer types to unsigned
|
||||
types, as well as more general implicit conversion and function
|
||||
overloading infrastructure to support new data types introduced by
|
||||
other extensions;
|
||||
|
||||
* new built-in functions supporting:
|
||||
|
||||
* splitting a floating-point number into a significand and exponent
|
||||
(frexp), or building a floating-point number from a significand and
|
||||
exponent (ldexp);
|
||||
|
||||
* integer bitfield manipulation, including functions to find the
|
||||
position of the most or least significant set bit, count the number
|
||||
of one bits, and bitfield insertion, extraction, and reversal;
|
||||
|
||||
* extended integer precision math, including add with carry, subtract
|
||||
with borrow, and extenended multiplication;
|
||||
|
||||
The resulting extension is a strict subset of GL_ARB_gpu_shader5.
|
||||
|
||||
IP Status
|
||||
|
||||
No known IP claims.
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None
|
||||
|
||||
New Tokens
|
||||
|
||||
None
|
||||
|
||||
Additions to Chapter 2 of the OpenGL 3.2 (Compatibility Profile) Specification
|
||||
(OpenGL Operation)
|
||||
|
||||
None.
|
||||
|
||||
Additions to Chapter 3 of the OpenGL 3.2 (Compatibility Profile) Specification
|
||||
(Rasterization)
|
||||
|
||||
None.
|
||||
|
||||
Additions to Chapter 4 of the OpenGL 3.2 (Compatibility Profile) Specification
|
||||
(Per-Fragment Operations and the Frame Buffer)
|
||||
|
||||
None.
|
||||
|
||||
Additions to Chapter 5 of the OpenGL 3.2 (Compatibility Profile) Specification
|
||||
(Special Functions)
|
||||
|
||||
None.
|
||||
|
||||
Additions to Chapter 6 of the OpenGL 3.2 (Compatibility Profile) Specification
|
||||
(State and State Requests)
|
||||
|
||||
None.
|
||||
|
||||
Additions to Appendix A of the OpenGL 3.2 (Compatibility Profile)
|
||||
Specification (Invariance)
|
||||
|
||||
None.
|
||||
|
||||
Additions to the AGL/GLX/WGL Specifications
|
||||
|
||||
None.
|
||||
|
||||
Modifications to The OpenGL Shading Language Specification, Version 1.50
|
||||
(Revision 09)
|
||||
|
||||
Including the following line in a shader can be used to control the
|
||||
language features described in this extension:
|
||||
|
||||
#extension GL_MESA_shader_integer_functions : <behavior>
|
||||
|
||||
where <behavior> is as specified in section 3.3.
|
||||
|
||||
New preprocessor #defines are added to the OpenGL Shading Language:
|
||||
|
||||
#define GL_MESA_shader_integer_functions 1
|
||||
|
||||
|
||||
Modify Section 4.1.10, Implicit Conversions, p. 27
|
||||
|
||||
(modify table of implicit conversions)
|
||||
|
||||
Can be implicitly
|
||||
Type of expression converted to
|
||||
--------------------- -----------------
|
||||
int uint, float
|
||||
ivec2 uvec2, vec2
|
||||
ivec3 uvec3, vec3
|
||||
ivec4 uvec4, vec4
|
||||
|
||||
uint float
|
||||
uvec2 vec2
|
||||
uvec3 vec3
|
||||
uvec4 vec4
|
||||
|
||||
(modify second paragraph of the section) No implicit conversions are
|
||||
provided to convert from unsigned to signed integer types or from
|
||||
floating-point to integer types. There are no implicit array or structure
|
||||
conversions.
|
||||
|
||||
(insert before the final paragraph of the section) When performing
|
||||
implicit conversion for binary operators, there may be multiple data types
|
||||
to which the two operands can be converted. For example, when adding an
|
||||
int value to a uint value, both values can be implicitly converted to uint
|
||||
and float. In such cases, a floating-point type is chosen if either
|
||||
operand has a floating-point type. Otherwise, an unsigned integer type is
|
||||
chosen if either operand has an unsigned integer type. Otherwise, a
|
||||
signed integer type is chosen.
|
||||
|
||||
|
||||
Modify Section 5.9, Expressions, p. 57
|
||||
|
||||
(modify bulleted list as follows, adding support for implicit conversion
|
||||
between signed and unsigned types)
|
||||
|
||||
Expressions in the shading language are built from the following:
|
||||
|
||||
* Constants of type bool, int, int64_t, uint, uint64_t, float, all vector
|
||||
types, and all matrix types.
|
||||
|
||||
...
|
||||
|
||||
* The operator modulus (%) operates on signed or unsigned integer scalars
|
||||
or vectors. If the fundamental types of the operands do not match, the
|
||||
conversions from Section 4.1.10 "Implicit Conversions" are applied to
|
||||
produce matching types. ...
|
||||
|
||||
|
||||
Modify Section 6.1, Function Definitions, p. 63
|
||||
|
||||
(modify description of overloading, beginning at the top of p. 64)
|
||||
|
||||
Function names can be overloaded. The same function name can be used for
|
||||
multiple functions, as long as the parameter types differ. If a function
|
||||
name is declared twice with the same parameter types, then the return
|
||||
types and all qualifiers must also match, and it is the same function
|
||||
being declared. For example,
|
||||
|
||||
vec4 f(in vec4 x, out vec4 y); // (A)
|
||||
vec4 f(in vec4 x, out uvec4 y); // (B) okay, different argument type
|
||||
vec4 f(in ivec4 x, out uvec4 y); // (C) okay, different argument type
|
||||
|
||||
int f(in vec4 x, out ivec4 y); // error, only return type differs
|
||||
vec4 f(in vec4 x, in vec4 y); // error, only qualifier differs
|
||||
vec4 f(const in vec4 x, out vec4 y); // error, only qualifier differs
|
||||
|
||||
When function calls are resolved, an exact type match for all the
|
||||
arguments is sought. If an exact match is found, all other functions are
|
||||
ignored, and the exact match is used. If no exact match is found, then
|
||||
the implicit conversions in Section 4.1.10 (Implicit Conversions) will be
|
||||
applied to find a match. Mismatched types on input parameters (in or
|
||||
inout or default) must have a conversion from the calling argument type
|
||||
to the formal parameter type. Mismatched types on output parameters (out
|
||||
or inout) must have a conversion from the formal parameter type to the
|
||||
calling argument type.
|
||||
|
||||
If implicit conversions can be used to find more than one matching
|
||||
function, a single best-matching function is sought. To determine a best
|
||||
match, the conversions between calling argument and formal parameter
|
||||
types are compared for each function argument and pair of matching
|
||||
functions. After these comparisons are performed, each pair of matching
|
||||
functions are compared. A function definition A is considered a better
|
||||
match than function definition B if:
|
||||
|
||||
* for at least one function argument, the conversion for that argument
|
||||
in A is better than the corresponding conversion in B; and
|
||||
|
||||
* there is no function argument for which the conversion in B is better
|
||||
than the corresponding conversion in A.
|
||||
|
||||
If a single function definition is considered a better match than every
|
||||
other matching function definition, it will be used. Otherwise, a
|
||||
semantic error occurs and the shader will fail to compile.
|
||||
|
||||
To determine whether the conversion for a single argument in one match is
|
||||
better than that for another match, the following rules are applied, in
|
||||
order:
|
||||
|
||||
1. An exact match is better than a match involving any implicit
|
||||
conversion.
|
||||
|
||||
2. A match involving an implicit conversion from float to double is
|
||||
better than a match involving any other implicit conversion.
|
||||
|
||||
3. A match involving an implicit conversion from either int or uint to
|
||||
float is better than a match involving an implicit conversion from
|
||||
either int or uint to double.
|
||||
|
||||
If none of the rules above apply to a particular pair of conversions,
|
||||
neither conversion is considered better than the other.
|
||||
|
||||
For the function prototypes (A), (B), and (C) above, the following
|
||||
examples show how the rules apply to different sets of calling argument
|
||||
types:
|
||||
|
||||
f(vec4, vec4); // exact match of vec4 f(in vec4 x, out vec4 y)
|
||||
f(vec4, uvec4); // exact match of vec4 f(in vec4 x, out ivec4 y)
|
||||
f(vec4, ivec4); // matched to vec4 f(in vec4 x, out vec4 y)
|
||||
// (C) not relevant, can't convert vec4 to
|
||||
// ivec4. (A) better than (B) for 2nd
|
||||
// argument (rule 2), same on first argument.
|
||||
f(ivec4, vec4); // NOT matched. All three match by implicit
|
||||
// conversion. (C) is better than (A) and (B)
|
||||
// on the first argument. (A) is better than
|
||||
// (B) and (C).
|
||||
|
||||
|
||||
Modify Section 8.3, Common Functions, p. 84
|
||||
|
||||
(add support for single-precision frexp and ldexp functions)
|
||||
|
||||
Syntax:
|
||||
|
||||
genType frexp(genType x, out genIType exp);
|
||||
genType ldexp(genType x, in genIType exp);
|
||||
|
||||
The function frexp() splits each single-precision floating-point number in
|
||||
<x> into a binary significand, a floating-point number in the range [0.5,
|
||||
1.0), and an integral exponent of two, such that:
|
||||
|
||||
x = significand * 2 ^ exponent
|
||||
|
||||
The significand is returned by the function; the exponent is returned in
|
||||
the parameter <exp>. For a floating-point value of zero, the significant
|
||||
and exponent are both zero. For a floating-point value that is an
|
||||
infinity or is not a number, the results of frexp() are undefined.
|
||||
|
||||
If the input <x> is a vector, this operation is performed in a
|
||||
component-wise manner; the value returned by the function and the value
|
||||
written to <exp> are vectors with the same number of components as <x>.
|
||||
|
||||
The function ldexp() builds a single-precision floating-point number from
|
||||
each significand component in <x> and the corresponding integral exponent
|
||||
of two in <exp>, returning:
|
||||
|
||||
significand * 2 ^ exponent
|
||||
|
||||
If this product is too large to be represented as a single-precision
|
||||
floating-point value, the result is considered undefined.
|
||||
|
||||
If the input <x> is a vector, this operation is performed in a
|
||||
component-wise manner; the value passed in <exp> and returned by the
|
||||
function are vectors with the same number of components as <x>.
|
||||
|
||||
|
||||
(add support for new integer built-in functions)
|
||||
|
||||
Syntax:
|
||||
|
||||
genIType bitfieldExtract(genIType value, int offset, int bits);
|
||||
genUType bitfieldExtract(genUType value, int offset, int bits);
|
||||
|
||||
genIType bitfieldInsert(genIType base, genIType insert, int offset,
|
||||
int bits);
|
||||
genUType bitfieldInsert(genUType base, genUType insert, int offset,
|
||||
int bits);
|
||||
|
||||
genIType bitfieldReverse(genIType value);
|
||||
genUType bitfieldReverse(genUType value);
|
||||
|
||||
genIType bitCount(genIType value);
|
||||
genIType bitCount(genUType value);
|
||||
|
||||
genIType findLSB(genIType value);
|
||||
genIType findLSB(genUType value);
|
||||
|
||||
genIType findMSB(genIType value);
|
||||
genIType findMSB(genUType value);
|
||||
|
||||
The function bitfieldExtract() extracts bits <offset> through
|
||||
<offset>+<bits>-1 from each component in <value>, returning them in the
|
||||
least significant bits of corresponding component of the result. For
|
||||
unsigned data types, the most significant bits of the result will be set
|
||||
to zero. For signed data types, the most significant bits will be set to
|
||||
the value of bit <offset>+<base>-1. If <bits> is zero, the result will be
|
||||
zero. The result will be undefined if <offset> or <bits> is negative, or
|
||||
if the sum of <offset> and <bits> is greater than the number of bits used
|
||||
to store the operand. Note that for vector versions of bitfieldExtract(),
|
||||
a single pair of <offset> and <bits> values is shared for all components.
|
||||
|
||||
The function bitfieldInsert() inserts the <bits> least significant bits of
|
||||
each component of <insert> into the corresponding component of <base>.
|
||||
The result will have bits numbered <offset> through <offset>+<bits>-1
|
||||
taken from bits 0 through <bits>-1 of <insert>, and all other bits taken
|
||||
directly from the corresponding bits of <base>. If <bits> is zero, the
|
||||
result will simply be <base>. The result will be undefined if <offset> or
|
||||
<bits> is negative, or if the sum of <offset> and <bits> is greater than
|
||||
the number of bits used to store the operand. Note that for vector
|
||||
versions of bitfieldInsert(), a single pair of <offset> and <bits> values
|
||||
is shared for all components.
|
||||
|
||||
The function bitfieldReverse() reverses the bits of <value>. The bit
|
||||
numbered <n> of the result will be taken from bit (<bits>-1)-<n> of
|
||||
<value>, where <bits> is the total number of bits used to represent
|
||||
<value>.
|
||||
|
||||
The function bitCount() returns the number of one bits in the binary
|
||||
representation of <value>.
|
||||
|
||||
The function findLSB() returns the bit number of the least significant one
|
||||
bit in the binary representation of <value>. If <value> is zero, -1 will
|
||||
be returned.
|
||||
|
||||
The function findMSB() returns the bit number of the most significant bit
|
||||
in the binary representation of <value>. For positive integers, the
|
||||
result will be the bit number of the most significant one bit. For
|
||||
negative integers, the result will be the bit number of the most
|
||||
significant zero bit. For a <value> of zero or negative one, -1 will be
|
||||
returned.
|
||||
|
||||
|
||||
(support for unsigned integer add/subtract with carry-out)
|
||||
|
||||
Syntax:
|
||||
|
||||
genUType uaddCarry(genUType x, genUType y, out genUType carry);
|
||||
genUType usubBorrow(genUType x, genUType y, out genUType borrow);
|
||||
|
||||
The function uaddCarry() adds 32-bit unsigned integers or vectors <x> and
|
||||
<y>, returning the sum modulo 2^32. The value <carry> is set to zero if
|
||||
the sum was less than 2^32, or one otherwise.
|
||||
|
||||
The function usubBorrow() subtracts the 32-bit unsigned integer or vector
|
||||
<y> from <x>, returning the difference if non-negative or 2^32 plus the
|
||||
difference, otherwise. The value <borrow> is set to zero if x >= y, or
|
||||
one otherwise.
|
||||
|
||||
|
||||
(support for signed and unsigned multiplies, with 32-bit inputs and a
|
||||
64-bit result spanning two 32-bit outputs)
|
||||
|
||||
Syntax:
|
||||
|
||||
void umulExtended(genUType x, genUType y, out genUType msb,
|
||||
out genUType lsb);
|
||||
void imulExtended(genIType x, genIType y, out genIType msb,
|
||||
out genIType lsb);
|
||||
|
||||
The functions umulExtended() and imulExtended() multiply 32-bit unsigned
|
||||
or signed integers or vectors <x> and <y>, producing a 64-bit result. The
|
||||
32 least significant bits are returned in <lsb>; the 32 most significant
|
||||
bits are returned in <msb>.
|
||||
|
||||
|
||||
GLX Protocol
|
||||
|
||||
None.
|
||||
|
||||
Dependencies on ARB_gpu_shader_fp64
|
||||
|
||||
This extension, ARB_gpu_shader_fp64, and NV_gpu_shader5 all modify the set
|
||||
of implicit conversions supported in the OpenGL Shading Language. If more
|
||||
than one of these extensions is supported, an expression of one type may
|
||||
be converted to another type if that conversion is allowed by any of these
|
||||
specifications.
|
||||
|
||||
If ARB_gpu_shader_fp64 or a similar extension introducing new data types
|
||||
is not supported, the function overloading rule in the GLSL specification
|
||||
preferring promotion an input parameters to smaller type to a larger type
|
||||
is never applicable, as all data types are of the same size. That rule
|
||||
and the example referring to "double" should be removed.
|
||||
|
||||
|
||||
Dependencies on NV_gpu_shader5
|
||||
|
||||
This extension, ARB_gpu_shader_fp64, and NV_gpu_shader5 all modify the set
|
||||
of implicit conversions supported in the OpenGL Shading Language. If more
|
||||
than one of these extensions is supported, an expression of one type may
|
||||
be converted to another type if that conversion is allowed by any of these
|
||||
specifications.
|
||||
|
||||
If NV_gpu_shader5 is supported, integer data types are supported with four
|
||||
different precisions (8-, 16, 32-, and 64-bit) and floating-point data
|
||||
types are supported with three different precisions (16-, 32-, and
|
||||
64-bit). The extension adds the following rule for output parameters,
|
||||
which is similar to the one present in this extension for input
|
||||
parameters:
|
||||
|
||||
5. If the formal parameters in both matches are output parameters, a
|
||||
conversion from a type with a larger number of bits per component is
|
||||
better than a conversion from a type with a smaller number of bits
|
||||
per component. For example, a conversion from an "int16_t" formal
|
||||
parameter type to "int" is better than one from an "int8_t" formal
|
||||
parameter type to "int".
|
||||
|
||||
Such a rule is not provided in this extension because there is no
|
||||
combination of types in this extension and ARB_gpu_shader_fp64 where this
|
||||
rule has any effect.
|
||||
|
||||
|
||||
Errors
|
||||
|
||||
None
|
||||
|
||||
|
||||
New State
|
||||
|
||||
None
|
||||
|
||||
New Implementation Dependent State
|
||||
|
||||
None
|
||||
|
||||
Issues
|
||||
|
||||
(1) What should this extension be called?
|
||||
|
||||
UNRESOLVED. This extension borrows from GL_ARB_gpu_shader5, so creating
|
||||
some sort of a play on that name would be viable. However, nothing in
|
||||
this extension should require SM5 hardware, so such a name would be a
|
||||
little misleading and weird.
|
||||
|
||||
Since the primary purpose is to add integer related functions from
|
||||
GL_ARB_gpu_shader5, call this extension GL_MESA_shader_integer_functions
|
||||
for now.
|
||||
|
||||
(2) Why is some of the formatting in this extension weird?
|
||||
|
||||
RESOLVED: This extension is formatted to minimize the differences (as
|
||||
reported by 'diff --side-by-side -W180') with the GL_ARB_gpu_shader5
|
||||
specification.
|
||||
|
||||
(3) Should ldexp and frexp be included?
|
||||
|
||||
RESOLVED: Yes. Few GPUs have native instructions to implement these
|
||||
functions. These are generally implemented using existing GLSL built-in
|
||||
functions and the other functions provided by this extension.
|
||||
|
||||
(4) Should umulExtended and imulExtended be included?
|
||||
|
||||
RESOLVED: Yes. These functions should be implementable on any GPU that
|
||||
can support the rest of this extension, but the implementation may be
|
||||
complex. The implementation on a GPU that only supports 32bit x 32bit =
|
||||
32bit multiplication would be quite expensive. However, many GPUs
|
||||
(including OpenGL 4.0 GPUs that already support this function) have a
|
||||
32bit x 16bit = 48bit multiplier. The implementation there is only
|
||||
trivially more expensive than regular 32bit multiplication.
|
||||
|
||||
(5) Should the pack and unpack functions be included?
|
||||
|
||||
RESOLVED: No. These functions are already available via
|
||||
GL_ARB_shading_language_packing.
|
||||
|
||||
(6) Should the "BitsTo" functions be included?
|
||||
|
||||
RESOLVED: No. These functions are already available via
|
||||
GL_ARB_shader_bit_encoding.
|
||||
|
||||
Revision History
|
||||
|
||||
Rev. Date Author Changes
|
||||
---- ----------- -------- -----------------------------------------
|
||||
2 7-Jul-2016 idr Fix typo in #extension line
|
||||
1 20-Jun-2016 idr Initial version based on GL_ARB_gpu_shader5.
|
@@ -75,7 +75,6 @@ New Tokens
|
||||
EGL_TEXTURE_Y_U_V_WL 0x31D7
|
||||
EGL_TEXTURE_Y_UV_WL 0x31D8
|
||||
EGL_TEXTURE_Y_XUXV_WL 0x31D9
|
||||
EGL_TEXTURE_EXTERNAL_WL 0x31DA
|
||||
|
||||
Accepted in the <attribute> parameter of eglQueryWaylandBufferWL:
|
||||
|
||||
@@ -149,10 +148,6 @@ Additions to the EGL 1.4 Specification:
|
||||
Two planes, samples Y from the first plane to r in
|
||||
the shader, U and V from the second plane to g and a.
|
||||
|
||||
EGL_TEXTURE_EXTERNAL_WL
|
||||
Treated as a single plane texture, but sampled with
|
||||
samplerExternalOES according to OES_EGL_image_external
|
||||
|
||||
After querying the wl_buffer layout, create EGLImages for the
|
||||
planes by calling eglCreateImageKHR with wl_buffer as
|
||||
EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL
|
||||
|
@@ -1,18 +1,10 @@
|
||||
The definitive source for enum values and reserved ranges are the XML files in
|
||||
the Khronos registry:
|
||||
|
||||
https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/egl.xml
|
||||
https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/gl.xml
|
||||
https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/glx.xml
|
||||
https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/wgl.xml
|
||||
See the OpenGL ARB enum registry at http://www.opengl.org/registry/api/enum.spec
|
||||
|
||||
GL blocks allocated to Mesa:
|
||||
Blocks allocated to Mesa:
|
||||
0x8750-0x875F
|
||||
0x8BB0-0x8BBF
|
||||
|
||||
EGL blocks allocated to Mesa:
|
||||
0x31D0-0x31DF
|
||||
0x3290-0x329F
|
||||
|
||||
GL_MESA_packed_depth_stencil
|
||||
GL_DEPTH_STENCIL_MESA 0x8750
|
||||
@@ -21,7 +13,7 @@ GL_MESA_packed_depth_stencil
|
||||
GL_UNSIGNED_SHORT_15_1_MESA 0x8753
|
||||
GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754
|
||||
|
||||
GL_MESA_trace:
|
||||
GL_MESA_trace.spec:
|
||||
GL_TRACE_ALL_BITS_MESA 0xFFFF
|
||||
GL_TRACE_OPERATIONS_BIT_MESA 0x0001
|
||||
GL_TRACE_PRIMITIVES_BIT_MESA 0x0002
|
||||
@@ -32,12 +24,12 @@ GL_MESA_trace:
|
||||
GL_TRACE_MASK_MESA 0x8755
|
||||
GL_TRACE_NAME_MESA 0x8756
|
||||
|
||||
GL_MESA_ycbcr_texture:
|
||||
MESA_ycbcr_texture.spec:
|
||||
GL_YCBCR_MESA 0x8757
|
||||
GL_UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple's */
|
||||
GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple's */
|
||||
|
||||
GL_MESA_pack_invert:
|
||||
GL_MESA_pack_invert.spec
|
||||
GL_PACK_INVERT_MESA 0x8758
|
||||
|
||||
GL_MESA_shader_debug.spec: (obsolete)
|
||||
@@ -45,7 +37,7 @@ GL_MESA_shader_debug.spec: (obsolete)
|
||||
GL_DEBUG_PRINT_MESA 0x875A
|
||||
GL_DEBUG_ASSERT_MESA 0x875B
|
||||
|
||||
GL_MESA_program_debug: (obsolete)
|
||||
GL_MESA_program_debug.spec: (obsolete)
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_CALLBACK_MESA 0x????
|
||||
GL_FRAGMENT_PROGRAM_POSITION_MESA 0x????
|
||||
@@ -63,24 +55,3 @@ GL_MESAX_texture_stack:
|
||||
GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
|
||||
GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
|
||||
|
||||
EGL_MESA_drm_image
|
||||
EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
|
||||
EGL_DRM_BUFFER_USE_MESA 0x31D1
|
||||
EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
|
||||
EGL_DRM_BUFFER_MESA 0x31D3
|
||||
EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
|
||||
|
||||
EGL_MESA_platform_gbm
|
||||
EGL_PLATFORM_GBM_MESA 0x31D7
|
||||
|
||||
EGL_MESA_platform_surfaceless
|
||||
EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||
|
||||
EGL_WL_bind_wayland_display
|
||||
EGL_TEXTURE_FORMAT 0x3080
|
||||
EGL_WAYLAND_BUFFER_WL 0x31D5
|
||||
EGL_WAYLAND_PLANE_WL 0x31D6
|
||||
EGL_TEXTURE_Y_U_V_WL 0x31D7
|
||||
EGL_TEXTURE_Y_UV_WL 0x31D8
|
||||
EGL_TEXTURE_Y_XUXV_WL 0x31D9
|
||||
EGL_WAYLAND_Y_INVERTED_WL 0x31DB
|
||||
|
@@ -1,378 +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>Submitting patches</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>Submitting patches</h1>
|
||||
|
||||
|
||||
<ul>
|
||||
<li><a href="#guidelines">Basic guidelines</a>
|
||||
<li><a href="#formatting">Patch formatting</a>
|
||||
<li><a href="#testing">Testing 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>
|
||||
<li><a href="#gittips">Git tips</a>
|
||||
</ul>
|
||||
|
||||
<h2 id="guidelines">Basic guidelines</h2>
|
||||
|
||||
<ul>
|
||||
<li>Patches should not mix code changes with code formatting changes (except,
|
||||
perhaps, in very trivial cases.)
|
||||
<li>Code patches should follow Mesa
|
||||
<a href="codingstyle.html" target="_parent">coding conventions</a>.
|
||||
<li>Whenever possible, patches should only effect individual Mesa/Gallium
|
||||
components.
|
||||
<li>Patches should never introduce build breaks and should be bisectable (see
|
||||
<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 submitted to <a href="#mailing">mesa-dev</a>
|
||||
for <a href="#reviewing">review</a> using <code>git send-email</code>.
|
||||
|
||||
</ul>
|
||||
|
||||
<h2 id="formatting">Patch formatting</h2>
|
||||
|
||||
<ul>
|
||||
<li>Lines should be limited to 75 characters or less so that git logs
|
||||
displayed in 80-column terminals avoid line wrapping. Note that git
|
||||
log uses 4 spaces of indentation (4 + 75 < 80).
|
||||
<li>The first line should be a short, concise summary of the change prefixed
|
||||
with a module name. Examples:
|
||||
<pre>
|
||||
mesa: Add support for querying GL_VERTEX_ATTRIB_ARRAY_LONG
|
||||
|
||||
gallium: add PIPE_CAP_DEVICE_RESET_STATUS_QUERY
|
||||
|
||||
i965: Fix missing type in local variable declaration.
|
||||
</pre>
|
||||
<li>Subsequent patch comments should describe the change in more detail,
|
||||
if needed. For example:
|
||||
<pre>
|
||||
i965: Remove end-of-thread SEND alignment code.
|
||||
|
||||
This was present in Eric's initial implementation of the compaction code
|
||||
for Sandybridge (commit 077d01b6). There is no documentation saying this
|
||||
is necessary, and removing it causes no regressions in piglit on any
|
||||
platform.
|
||||
</pre>
|
||||
<li>A "Signed-off-by:" line is not required, but not discouraged either.
|
||||
<li>If a patch address a bugzilla issue, that should be noted in the
|
||||
patch comment. For example:
|
||||
<pre>
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
|
||||
</pre>
|
||||
<li>If there have been several revisions to a patch during the review
|
||||
process, they should be noted such as in this example:
|
||||
<pre>
|
||||
st/mesa: add ARB_texture_stencil8 support (v4)
|
||||
|
||||
if we support stencil texturing, enable texture_stencil8
|
||||
there is no requirement to support native S8 for this,
|
||||
the texture can be converted to x24s8 fine.
|
||||
|
||||
v2: fold fixes from Marek in:
|
||||
a) put S8 last in the list
|
||||
b) fix renderable to always test for d/s renderable
|
||||
fixup the texture case to use a stencil only format
|
||||
for picking the format for the texture view.
|
||||
v3: hit fallback for getteximage
|
||||
v4: put s8 back in front, it shouldn't get picked now (Ilia)
|
||||
</pre>
|
||||
<li>If someone tested your patch, document it with a line like this:
|
||||
<pre>
|
||||
Tested-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
<li>If the patch was reviewed (usually the case) or acked by someone,
|
||||
that should be documented with:
|
||||
<pre>
|
||||
Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
Acked-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
<li>If sending later revision of a patch, add all the tags - ack, r-b,
|
||||
Cc: mesa-stable and/or other. This provides reviewers with quick feedback if the
|
||||
patch has already been reviewed.
|
||||
<li>In order for your patch to reach the prospective reviewer easier/faster,
|
||||
use the script scripts/get_reviewer.pl to get a list of individuals and include
|
||||
them in the CC list.
|
||||
<br>
|
||||
Please use common sense and do <strong>not</strong> blindly add everyone.
|
||||
<br>
|
||||
<pre>
|
||||
$ scripts/get_reviewer.pl --help # to get the the help screen
|
||||
$ scripts/get_reviewer.pl -f src/egl/drivers/dri2/platform_android.c
|
||||
Rob Herring <robh@kernel.org> (reviewer:ANDROID EGL SUPPORT,added_lines:188/700=27%,removed_lines:58/283=20%)
|
||||
Tomasz Figa <tfiga@chromium.org> (reviewer:ANDROID EGL SUPPORT,authored:12/41=29%,added_lines:308/700=44%,removed_lines:115/283=41%)
|
||||
Emil Velikov <emil.l.velikov@gmail.com> (authored:13/41=32%,removed_lines:76/283=27%)
|
||||
</pre>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="testing">Testing Patches</h2>
|
||||
|
||||
<p>
|
||||
It should go without saying that patches must be tested. In general,
|
||||
do whatever testing is prudent.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You should always run the Mesa test suite before submitting patches.
|
||||
The test suite can be run using the 'make check' command. All tests
|
||||
must pass before patches will be accepted, this may mean you have
|
||||
to update the tests themselves.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Whenever possible and applicable, test the patch with
|
||||
<a href="http://piglit.freedesktop.org">Piglit</a> and/or
|
||||
<a href="https://android.googlesource.com/platform/external/deqp/">dEQP</a>
|
||||
to check for regressions.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="mailing">Mailing Patches</h2>
|
||||
|
||||
<p>
|
||||
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
|
||||
<a href="https://git-scm.com/docs/git-send-email">git send-email</a>
|
||||
rather than attaching patches to emails. Sending patches as
|
||||
attachments prevents people from being able to provide in-line review
|
||||
comments.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When submitting follow-up patches you can use --in-reply-to to make v2, v3,
|
||||
etc patches show up as replies to the originals. This usually works well
|
||||
when you're sending out updates to individual patches (as opposed to
|
||||
re-sending the whole series). Using --in-reply-to makes
|
||||
it harder for reviewers to accidentally review old patches.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When submitting follow-up patches you should also login to
|
||||
<a href="https://patchwork.freedesktop.org">patchwork</a> and change the
|
||||
state of your old patches to Superseded.
|
||||
</p>
|
||||
|
||||
<h2 id="reviewing">Reviewing Patches</h2>
|
||||
|
||||
<p>
|
||||
When you've reviewed a patch on the mailing list, please be unambiguous
|
||||
about your review. That is, state either
|
||||
</p>
|
||||
<pre>
|
||||
Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
or
|
||||
<pre>
|
||||
Acked-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
<p>
|
||||
Rather than saying just "LGTM" or "Seems OK".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If small changes are suggested, it's OK to say something like:
|
||||
</p>
|
||||
<pre>
|
||||
With the above fixes, Reviewed-by: Joe Hacker <jhacker@foo.com>
|
||||
</pre>
|
||||
<p>
|
||||
which tells the patch author that the patch can be committed, as long
|
||||
as the issues are resolved first.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="nominations">Nominating a commit for a stable branch</h2>
|
||||
|
||||
<p>
|
||||
There are three ways to nominate patch for inclusion of the stable branch and
|
||||
release.
|
||||
</p>
|
||||
<ul>
|
||||
<li> By adding the Cc: mesa-stable@ tag as described below.
|
||||
<li> Sending the commit ID (as seen in master branch) to the mesa-stable@ mailing list.
|
||||
<li> Forwarding the patch from the mesa-dev@ mailing list.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Note: resending patch identical to one on mesa-dev@ or one that differs only
|
||||
by the extra mesa-stable@ tag is <strong>not</strong> recommended.
|
||||
</p>
|
||||
|
||||
|
||||
<h3 id="thetag">The stable tag</h3>
|
||||
|
||||
<p>
|
||||
If you want a commit to be applied to a stable branch,
|
||||
you should add an appropriate note to the commit message.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here are some examples of such a note:
|
||||
</p>
|
||||
<ul>
|
||||
<li>CC: <mesa-stable@lists.freedesktop.org></li>
|
||||
<li>CC: "9.2 10.0" <mesa-stable@lists.freedesktop.org></li>
|
||||
<li>CC: "10.0" <mesa-stable@lists.freedesktop.org></li>
|
||||
</ul>
|
||||
|
||||
Simply adding the CC to the mesa-stable list address is adequate to nominate
|
||||
the commit for the most-recently-created stable branch. It is only necessary
|
||||
to specify a specific branch name, (such as "9.2 10.0" or "10.0" in the
|
||||
examples above), if you want to nominate the commit for an older stable
|
||||
branch. And, as in these examples, you can nominate the commit for the older
|
||||
branch in addition to the more recent branch, or nominate the commit
|
||||
exclusively for the older branch.
|
||||
|
||||
This "CC" syntax for patch nomination will cause patches to automatically be
|
||||
copied to the mesa-stable@ mailing list when you use "git send-email" to send
|
||||
patches to the mesa-dev@ mailing list. If you prefer using --suppress-cc that
|
||||
won't have any effect negative effect on the patch nomination.
|
||||
|
||||
<p>
|
||||
Note: by removing the tag [as the commit is pushed] the patch is
|
||||
<strong>explicitly</strong> rejected from inclusion in the stable branch(es).
|
||||
<br>
|
||||
Thus, drop the line <strong>only</strong> if you want to cancel the nomination.
|
||||
</p>
|
||||
|
||||
<h2 id="criteria">Criteria for accepting patches to the stable branch</h2>
|
||||
|
||||
Mesa has a designated release manager for each stable branch, and the release
|
||||
manager is the only developer that should be pushing changes to these
|
||||
branches. Everyone else should simply nominate patches using the mechanism
|
||||
described above.
|
||||
|
||||
The stable-release manager will work with the list of nominated patches, and
|
||||
for each patch that meets the criteria below will cherry-pick the patch with:
|
||||
<code>git cherry-pick -x <commit></code>. The <code>-x</code> option is
|
||||
important so that the picked patch references the commit ID of the original
|
||||
patch.
|
||||
|
||||
The stable-release manager may at times need to force-push changes to the
|
||||
stable branches, for example, to drop a previously-picked patch that was later
|
||||
identified as causing a regression). These force-pushes may cause changes to
|
||||
be lost from the stable branch if developers push things directly. Consider
|
||||
yourself warned.
|
||||
|
||||
The stable-release manager is also given broad discretion in rejecting patches
|
||||
that have been nominated for the stable branch. The most basic rule is that
|
||||
the stable branch is for bug fixes only, (no new features, no
|
||||
regressions). Here is a non-exhaustive list of some reasons that a patch may
|
||||
be rejected:
|
||||
|
||||
<ul>
|
||||
<li>Patch introduces a regression. Any reported build breakage or other
|
||||
regression caused by a particular patch, (game no longer work, piglit test
|
||||
changes from PASS to FAIL), is justification for rejecting a patch.</li>
|
||||
|
||||
<li>Patch is too large, (say, larger than 100 lines)</li>
|
||||
|
||||
<li>Patch is not a fix. For example, a commit that moves code around with no
|
||||
functional change should be rejected.</li>
|
||||
|
||||
<li>Patch fix is not clearly described. For example, a commit message
|
||||
of only a single line, no description of the bug, no mention of bugzilla,
|
||||
etc.</li>
|
||||
|
||||
<li>Patch has not obviously been reviewed, For example, the commit message
|
||||
has no Reviewed-by, Signed-off-by, nor Tested-by tags from anyone but the
|
||||
author.</li>
|
||||
|
||||
<li>Patch has not already been merged to the master branch. As a rule, bug
|
||||
fixes should never be applied first to a stable branch. Patches should land
|
||||
first on the master branch and then be cherry-picked to a stable
|
||||
branch. (This is to avoid future releases causing regressions if the patch
|
||||
is not also applied to master.) The only things that might look like
|
||||
exceptions would be backports of patches from master that happen to look
|
||||
significantly different.</li>
|
||||
|
||||
<li>Patch depends on too many other patches. Ideally, all stable-branch
|
||||
patches should be self-contained. It sometimes occurs that a single, logical
|
||||
bug-fix occurs as two separate patches on master, (such as an original
|
||||
patch, then a subsequent fix-up to that patch). In such a case, these two
|
||||
patches should be squashed into a single, self-contained patch for the
|
||||
stable branch. (Of course, if the squashing makes the patch too large, then
|
||||
that could be a reason to reject the patch.)</li>
|
||||
|
||||
<li>Patch includes new feature development, not bug fixes. New OpenGL
|
||||
features, extensions, etc. should be applied to Mesa master and included in
|
||||
the next major release. Stable releases are intended only for bug fixes.
|
||||
|
||||
Note: As an exception to this rule, the stable-release manager may accept
|
||||
hardware-enabling "features". For example, backports of new code to support
|
||||
a newly-developed hardware product can be accepted if they can be reasonably
|
||||
determined to not have effects on other hardware.</li>
|
||||
|
||||
<li>Patch is a performance optimization. As a rule, performance patches are
|
||||
not candidates for the stable branch. The only exception might be a case
|
||||
where an application's performance was recently severely impacted so as to
|
||||
become unusable. The fix for this performance regression could then be
|
||||
considered for a stable branch. The optimization must also be
|
||||
non-controversial and the patches still need to meet the other criteria of
|
||||
being simple and self-contained</li>
|
||||
|
||||
<li>Patch introduces a new failure mode (such as an assert). While the new
|
||||
assert might technically be correct, for example to make Mesa more
|
||||
conformant, this is not the kind of "bug fix" we want in a stable
|
||||
release. The potential problem here is that an OpenGL program that was
|
||||
previously working, (even if technically non-compliant with the
|
||||
specification), could stop working after this patch. So that would be a
|
||||
regression that is unacceptable for the stable branch.</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="gittips">Git tips</h2>
|
||||
|
||||
<ul>
|
||||
<li><code>git rebase -i ...</code> is your friend. Don't be afraid to use it.
|
||||
<li>Apply a fixup to commit FOO.
|
||||
<pre>
|
||||
git add ...
|
||||
git commit --fixup=FOO
|
||||
git rebase -i --autosquash ...
|
||||
</pre>
|
||||
<li>Test for build breakage between patches e.g last 8 commits.
|
||||
<pre>
|
||||
git rebase -i --exec="make -j4" HEAD~8
|
||||
</pre>
|
||||
<li>Sets the default mailing address for your repo.
|
||||
<pre>
|
||||
git config --local sendemail.to mesa-dev@lists.freedesktop.org
|
||||
</pre>
|
||||
<li> Add version to subject line of patch series in this case for the last 8
|
||||
commits before sending.
|
||||
<pre>
|
||||
git send-email --subject-prefix="PATCH v4" HEAD~8
|
||||
git send-email -v4 @~8 # shorter version, inherited from git format-patch
|
||||
</pre>
|
||||
<li> Configure git to use the get_reviewer.pl script interactively. Thus you
|
||||
can avoid adding the world to the CC list.
|
||||
<pre>
|
||||
git config sendemail.cccmd "./scripts/get_reviewer.pl -i"
|
||||
</pre>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -199,7 +199,7 @@ This incurs a small performance penalty.
|
||||
|
||||
<h2>Extensions</h2>
|
||||
<p>
|
||||
The following Mesa-specific extensions are implemented in the Xlib driver.
|
||||
The following MESA-specific extensions are implemented in the Xlib driver.
|
||||
</p>
|
||||
|
||||
<h3>GLX_MESA_pixmap_colormap</h3>
|
||||
|
@@ -1,2 +0,0 @@
|
||||
[*.h]
|
||||
indent_style = tab
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -38,7 +38,7 @@ extern "C" {
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20160809
|
||||
#define EGL_EGLEXT_VERSION 20150508
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@@ -99,33 +99,6 @@ EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type,
|
||||
#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
|
||||
#endif /* EGL_KHR_create_context_no_error */
|
||||
|
||||
#ifndef EGL_KHR_debug
|
||||
#define EGL_KHR_debug 1
|
||||
typedef void *EGLLabelKHR;
|
||||
typedef void *EGLObjectKHR;
|
||||
typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
|
||||
#define EGL_OBJECT_THREAD_KHR 0x33B0
|
||||
#define EGL_OBJECT_DISPLAY_KHR 0x33B1
|
||||
#define EGL_OBJECT_CONTEXT_KHR 0x33B2
|
||||
#define EGL_OBJECT_SURFACE_KHR 0x33B3
|
||||
#define EGL_OBJECT_IMAGE_KHR 0x33B4
|
||||
#define EGL_OBJECT_SYNC_KHR 0x33B5
|
||||
#define EGL_OBJECT_STREAM_KHR 0x33B6
|
||||
#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
|
||||
#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
|
||||
#define EGL_DEBUG_MSG_WARN_KHR 0x33BB
|
||||
#define EGL_DEBUG_MSG_INFO_KHR 0x33BC
|
||||
#define EGL_DEBUG_CALLBACK_KHR 0x33B8
|
||||
typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value);
|
||||
typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value);
|
||||
EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
|
||||
#endif
|
||||
#endif /* EGL_KHR_debug */
|
||||
|
||||
#ifndef EGL_KHR_fence_sync
|
||||
#define EGL_KHR_fence_sync 1
|
||||
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
|
||||
@@ -250,16 +223,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface s
|
||||
#endif
|
||||
#endif /* EGL_KHR_lock_surface3 */
|
||||
|
||||
#ifndef EGL_KHR_mutable_render_buffer
|
||||
#define EGL_KHR_mutable_render_buffer 1
|
||||
#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
|
||||
#endif /* EGL_KHR_mutable_render_buffer */
|
||||
|
||||
#ifndef EGL_KHR_no_config_context
|
||||
#define EGL_KHR_no_config_context 1
|
||||
#define EGL_NO_CONFIG_KHR ((EGLConfig)0)
|
||||
#endif /* EGL_KHR_no_config_context */
|
||||
|
||||
#ifndef EGL_KHR_partial_update
|
||||
#define EGL_KHR_partial_update 1
|
||||
#define EGL_BUFFER_AGE_KHR 0x313D
|
||||
@@ -439,28 +402,11 @@ EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobF
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_blob_cache */
|
||||
|
||||
#ifndef EGL_ANDROID_create_native_client_buffer
|
||||
#define EGL_ANDROID_create_native_client_buffer 1
|
||||
#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
|
||||
#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
|
||||
#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
|
||||
#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
|
||||
typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list);
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_create_native_client_buffer */
|
||||
|
||||
#ifndef EGL_ANDROID_framebuffer_target
|
||||
#define EGL_ANDROID_framebuffer_target 1
|
||||
#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
|
||||
#endif /* EGL_ANDROID_framebuffer_target */
|
||||
|
||||
#ifndef EGL_ANDROID_front_buffer_auto_refresh
|
||||
#define EGL_ANDROID_front_buffer_auto_refresh 1
|
||||
#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
|
||||
#endif /* EGL_ANDROID_front_buffer_auto_refresh */
|
||||
|
||||
#ifndef EGL_ANDROID_image_native_buffer
|
||||
#define EGL_ANDROID_image_native_buffer 1
|
||||
#define EGL_NATIVE_BUFFER_ANDROID 0x3140
|
||||
@@ -478,15 +424,6 @@ EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_native_fence_sync */
|
||||
|
||||
#ifndef EGL_ANDROID_presentation_time
|
||||
#define EGL_ANDROID_presentation_time 1
|
||||
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_presentation_time */
|
||||
|
||||
#ifndef EGL_ANDROID_recordable
|
||||
#define EGL_ANDROID_recordable 1
|
||||
#define EGL_RECORDABLE_ANDROID 0x3142
|
||||
@@ -679,13 +616,9 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
|
||||
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
|
||||
#endif /* EGL_EXT_platform_x11 */
|
||||
|
||||
#ifndef EGL_EXT_protected_content
|
||||
#define EGL_EXT_protected_content 1
|
||||
#define EGL_PROTECTED_CONTENT_EXT 0x32C0
|
||||
#endif /* EGL_EXT_protected_content */
|
||||
|
||||
#ifndef EGL_EXT_protected_surface
|
||||
#define EGL_EXT_protected_surface 1
|
||||
#define EGL_PROTECTED_CONTENT_EXT 0x32C0
|
||||
#endif /* EGL_EXT_protected_surface */
|
||||
|
||||
#ifndef EGL_EXT_stream_consumer_egloutput
|
||||
@@ -764,12 +697,6 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfi
|
||||
#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
|
||||
#endif /* EGL_IMG_context_priority */
|
||||
|
||||
#ifndef EGL_IMG_image_plane_attribs
|
||||
#define EGL_IMG_image_plane_attribs 1
|
||||
#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
|
||||
#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
|
||||
#endif /* EGL_IMG_image_plane_attribs */
|
||||
|
||||
#ifndef EGL_MESA_drm_image
|
||||
#define EGL_MESA_drm_image 1
|
||||
#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
|
||||
@@ -885,48 +812,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface sur
|
||||
#endif
|
||||
#endif /* EGL_NV_post_sub_buffer */
|
||||
|
||||
#ifndef EGL_NV_robustness_video_memory_purge
|
||||
#define EGL_NV_robustness_video_memory_purge 1
|
||||
#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
|
||||
#endif /* EGL_NV_robustness_video_memory_purge */
|
||||
|
||||
#ifndef EGL_NV_stream_consumer_gltexture_yuv
|
||||
#define EGL_NV_stream_consumer_gltexture_yuv 1
|
||||
#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
|
||||
#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
|
||||
#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
|
||||
#endif
|
||||
#endif /* EGL_NV_stream_consumer_gltexture_yuv */
|
||||
|
||||
#ifndef EGL_NV_stream_metadata
|
||||
#define EGL_NV_stream_metadata 1
|
||||
#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
|
||||
#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
|
||||
#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
|
||||
#define EGL_PRODUCER_METADATA_NV 0x3253
|
||||
#define EGL_CONSUMER_METADATA_NV 0x3254
|
||||
#define EGL_PENDING_METADATA_NV 0x3328
|
||||
#define EGL_METADATA0_SIZE_NV 0x3255
|
||||
#define EGL_METADATA1_SIZE_NV 0x3256
|
||||
#define EGL_METADATA2_SIZE_NV 0x3257
|
||||
#define EGL_METADATA3_SIZE_NV 0x3258
|
||||
#define EGL_METADATA0_TYPE_NV 0x3259
|
||||
#define EGL_METADATA1_TYPE_NV 0x325A
|
||||
#define EGL_METADATA2_TYPE_NV 0x325B
|
||||
#define EGL_METADATA3_TYPE_NV 0x325C
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
|
||||
#endif
|
||||
#endif /* EGL_NV_stream_metadata */
|
||||
|
||||
#ifndef EGL_NV_stream_sync
|
||||
#define EGL_NV_stream_sync 1
|
||||
#define EGL_SYNC_NEW_FRAME_NV 0x321F
|
||||
|
@@ -52,7 +52,6 @@ extern "C" {
|
||||
#define EGL_TEXTURE_Y_U_V_WL 0x31D7
|
||||
#define EGL_TEXTURE_Y_UV_WL 0x31D8
|
||||
#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
|
||||
#define EGL_TEXTURE_EXTERNAL_WL 0x31DA
|
||||
|
||||
struct wl_display;
|
||||
struct wl_resource;
|
||||
@@ -85,11 +84,6 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EG
|
||||
#define EGL_NO_CONFIG_MESA ((EGLConfig)0)
|
||||
#endif
|
||||
|
||||
#ifndef EGL_MESA_platform_surfaceless
|
||||
#define EGL_MESA_platform_surfaceless 1
|
||||
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||
#endif /* EGL_MESA_platform_surfaceless */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -33,7 +33,7 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 33061 $ on $Date: 2016-07-14 20:14:13 -0400 (Thu, 14 Jul 2016) $
|
||||
** Khronos $Revision: 32957 $ on $Date: 2016-06-09 17:03:08 -0400 (Thu, 09 Jun 2016) $
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -53,7 +53,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20160714
|
||||
#define GL_GLEXT_VERSION 20160609
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -8836,11 +8836,6 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG
|
||||
#define GL_INTERLACE_READ_INGR 0x8568
|
||||
#endif /* GL_INGR_interlace_read */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
#endif /* GL_INTEL_conservative_rasterization */
|
||||
|
||||
#ifndef GL_INTEL_fragment_shader_ordering
|
||||
#define GL_INTEL_fragment_shader_ordering 1
|
||||
#endif /* GL_INTEL_fragment_shader_ordering */
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,10 +33,10 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 32889 $ on $Date: 2016-05-31 07:09:51 -0400 (Tue, 31 May 2016) $
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 2014) $
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_VERSION 20160531
|
||||
#define GLX_GLXEXT_VERSION 20140810
|
||||
|
||||
/* Generated C header for:
|
||||
* API: glx
|
||||
@@ -250,26 +250,6 @@ __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName);
|
||||
#define GLX_GPU_NUM_SIMD_AMD 0x21A6
|
||||
#define GLX_GPU_NUM_RB_AMD 0x21A7
|
||||
#define GLX_GPU_NUM_SPI_AMD 0x21A8
|
||||
typedef unsigned int ( *PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int *ids);
|
||||
typedef int ( *PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void *data);
|
||||
typedef unsigned int ( *PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx);
|
||||
typedef GLXContext ( *PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list);
|
||||
typedef GLXContext ( *PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int *attribList);
|
||||
typedef Bool ( *PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx);
|
||||
typedef Bool ( *PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx);
|
||||
typedef GLXContext ( *PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
|
||||
typedef void ( *PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
unsigned int glXGetGPUIDsAMD (unsigned int maxCount, unsigned int *ids);
|
||||
int glXGetGPUInfoAMD (unsigned int id, int property, GLenum dataType, unsigned int size, void *data);
|
||||
unsigned int glXGetContextGPUIDAMD (GLXContext ctx);
|
||||
GLXContext glXCreateAssociatedContextAMD (unsigned int id, GLXContext share_list);
|
||||
GLXContext glXCreateAssociatedContextAttribsAMD (unsigned int id, GLXContext share_context, const int *attribList);
|
||||
Bool glXDeleteAssociatedContextAMD (GLXContext ctx);
|
||||
Bool glXMakeAssociatedContextCurrentAMD (GLXContext ctx);
|
||||
GLXContext glXGetCurrentAssociatedContextAMD (void);
|
||||
void glXBlitContextFramebufferAMD (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
#endif
|
||||
#endif /* GLX_AMD_gpu_association */
|
||||
|
||||
#ifndef GLX_EXT_buffer_age
|
||||
@@ -317,11 +297,6 @@ void glXFreeContextEXT (Display *dpy, GLXContext context);
|
||||
#endif
|
||||
#endif /* GLX_EXT_import_context */
|
||||
|
||||
#ifndef GLX_EXT_libglvnd
|
||||
#define GLX_EXT_libglvnd 1
|
||||
#define GLX_VENDOR_NAMES_EXT 0x20F6
|
||||
#endif /* GLX_EXT_libglvnd */
|
||||
|
||||
#ifndef GLX_EXT_stereo_tree
|
||||
#define GLX_EXT_stereo_tree 1
|
||||
typedef struct {
|
||||
@@ -548,11 +523,6 @@ int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int vi
|
||||
#endif
|
||||
#endif /* GLX_NV_present_video */
|
||||
|
||||
#ifndef GLX_NV_robustness_video_memory_purge
|
||||
#define GLX_NV_robustness_video_memory_purge 1
|
||||
#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
|
||||
#endif /* GLX_NV_robustness_video_memory_purge */
|
||||
|
||||
#ifndef GLX_NV_swap_group
|
||||
#define GLX_NV_swap_group 1
|
||||
typedef Bool ( *PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group);
|
||||
|
@@ -340,19 +340,12 @@ struct __DRI2throttleExtensionRec {
|
||||
*/
|
||||
|
||||
#define __DRI2_FENCE "DRI2_Fence"
|
||||
#define __DRI2_FENCE_VERSION 2
|
||||
#define __DRI2_FENCE_VERSION 1
|
||||
|
||||
#define __DRI2_FENCE_TIMEOUT_INFINITE 0xffffffffffffffffllu
|
||||
|
||||
#define __DRI2_FENCE_FLAG_FLUSH_COMMANDS (1 << 0)
|
||||
|
||||
/**
|
||||
* \name Capabilities that might be returned by __DRI2fenceExtensionRec::get_capabilities
|
||||
*/
|
||||
/*@{*/
|
||||
#define __DRI_FENCE_CAP_NATIVE_FD 1
|
||||
/*@}*/
|
||||
|
||||
struct __DRI2fenceExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -397,41 +390,6 @@ struct __DRI2fenceExtensionRec {
|
||||
* sense with this function (right now there are none)
|
||||
*/
|
||||
void (*server_wait_sync)(__DRIcontext *ctx, void *fence, unsigned flags);
|
||||
|
||||
/**
|
||||
* Query for general capabilities of the driver that concern fences.
|
||||
* Returns a bitmask of __DRI_FENCE_CAP_x
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
unsigned (*get_capabilities)(__DRIscreen *screen);
|
||||
|
||||
/**
|
||||
* Create an fd (file descriptor) associated fence. If the fence fd
|
||||
* is -1, this behaves similarly to create_fence() except that when
|
||||
* rendering is flushed the driver creates a fence fd. Otherwise,
|
||||
* the driver wraps an existing fence fd.
|
||||
*
|
||||
* This is used to implement the EGL_ANDROID_native_fence_sync extension.
|
||||
*
|
||||
* \since 2
|
||||
*
|
||||
* \param ctx the context associated with the fence
|
||||
* \param fd the fence fd or -1
|
||||
*/
|
||||
void *(*create_fence_fd)(__DRIcontext *ctx, int fd);
|
||||
|
||||
/**
|
||||
* For fences created with create_fence_fd(), after rendering is flushed,
|
||||
* this retrieves the native fence fd. Caller takes ownership of the
|
||||
* fd and will close() it when it is no longer needed.
|
||||
*
|
||||
* \since 2
|
||||
*
|
||||
* \param screen the screen associated with the fence
|
||||
* \param fence the fence
|
||||
*/
|
||||
int (*get_fence_fd)(__DRIscreen *screen, void *fence);
|
||||
};
|
||||
|
||||
|
||||
@@ -1136,7 +1094,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 13
|
||||
#define __DRI_IMAGE_VERSION 12
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
@@ -1163,9 +1121,6 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_FORMAT_XRGB2101010 0x1009
|
||||
#define __DRI_IMAGE_FORMAT_ARGB2101010 0x100a
|
||||
#define __DRI_IMAGE_FORMAT_SARGB8 0x100b
|
||||
#define __DRI_IMAGE_FORMAT_ARGB1555 0x100c
|
||||
#define __DRI_IMAGE_FORMAT_R16 0x100d
|
||||
#define __DRI_IMAGE_FORMAT_GR1616 0x100e
|
||||
|
||||
#define __DRI_IMAGE_USE_SHARE 0x0001
|
||||
#define __DRI_IMAGE_USE_SCANOUT 0x0002
|
||||
@@ -1193,9 +1148,6 @@ struct __DRIdri2ExtensionRec {
|
||||
|
||||
#define __DRI_IMAGE_FOURCC_R8 0x20203852
|
||||
#define __DRI_IMAGE_FOURCC_GR88 0x38385247
|
||||
#define __DRI_IMAGE_FOURCC_ARGB1555 0x35315241
|
||||
#define __DRI_IMAGE_FOURCC_R16 0x20363152
|
||||
#define __DRI_IMAGE_FOURCC_GR1616 0x32335247
|
||||
#define __DRI_IMAGE_FOURCC_RGB565 0x36314752
|
||||
#define __DRI_IMAGE_FOURCC_ARGB8888 0x34325241
|
||||
#define __DRI_IMAGE_FOURCC_XRGB8888 0x34325258
|
||||
@@ -1256,8 +1208,6 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_ATTRIB_FOURCC 0x2008 /* available in versions 11 */
|
||||
#define __DRI_IMAGE_ATTRIB_NUM_PLANES 0x2009 /* available in versions 11 */
|
||||
|
||||
#define __DRI_IMAGE_ATTRIB_OFFSET 0x200A /* available in versions 13 */
|
||||
|
||||
enum __DRIYUVColorSpace {
|
||||
__DRI_YUV_COLOR_SPACE_UNDEFINED = 0,
|
||||
__DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F,
|
||||
|
@@ -58,8 +58,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Forward declarations to avoid inclusion of GL/glx.h */
|
||||
struct _XDisplay;
|
||||
struct __GLXcontextRec;
|
||||
typedef struct _XDisplay Display;
|
||||
typedef struct __GLXcontextRec *GLXContext;
|
||||
|
||||
/* Forward declarations to avoid inclusion of EGL/egl.h */
|
||||
typedef void *EGLDisplay;
|
||||
@@ -97,7 +97,7 @@ struct mesa_glinterop_device_info {
|
||||
/* The callee will overwrite it if it supports a lower version.
|
||||
*
|
||||
* The caller should check the value and access up-to the version supported
|
||||
* by the callee.
|
||||
* by the the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_DEVICE_INFO_VERSION macro */
|
||||
uint32_t version;
|
||||
@@ -125,7 +125,7 @@ struct mesa_glinterop_export_in {
|
||||
/* The callee will overwrite it if it supports a lower version.
|
||||
*
|
||||
* The caller should check the value and access up-to the version supported
|
||||
* by the callee.
|
||||
* by the the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_IN_VERSION macro */
|
||||
uint32_t version;
|
||||
@@ -190,7 +190,7 @@ struct mesa_glinterop_export_out {
|
||||
/* The callee will overwrite it if it supports a lower version.
|
||||
*
|
||||
* The caller should check the value and access up-to the version supported
|
||||
* by the callee.
|
||||
* by the the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_OUT_VERSION macro */
|
||||
uint32_t version;
|
||||
@@ -246,7 +246,7 @@ struct mesa_glinterop_export_out {
|
||||
* \return MESA_GLINTEROP_SUCCESS or MESA_GLINTEROP_* != 0 on error
|
||||
*/
|
||||
int
|
||||
MesaGLInteropGLXQueryDeviceInfo(struct _XDisplay *dpy, struct __GLXcontextRec *context,
|
||||
MesaGLInteropGLXQueryDeviceInfo(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ MesaGLInteropEGLQueryDeviceInfo(EGLDisplay dpy, EGLContext context,
|
||||
* \return MESA_GLINTEROP_SUCCESS or MESA_GLINTEROP_* != 0 on error
|
||||
*/
|
||||
int
|
||||
MesaGLInteropGLXExportObject(struct _XDisplay *dpy, struct __GLXcontextRec *context,
|
||||
MesaGLInteropGLXExportObject(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
|
||||
@@ -286,11 +286,11 @@ MesaGLInteropEGLExportObject(EGLDisplay dpy, EGLContext context,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
|
||||
|
||||
typedef int (PFNMESAGLINTEROPGLXQUERYDEVICEINFOPROC)(struct _XDisplay *dpy, struct __GLXcontextRec *context,
|
||||
typedef int (PFNMESAGLINTEROPGLXQUERYDEVICEINFOPROC)(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
typedef int (PFNMESAGLINTEROPEGLQUERYDEVICEINFOPROC)(EGLDisplay dpy, EGLContext context,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
typedef int (PFNMESAGLINTEROPGLXEXPORTOBJECTPROC)(struct _XDisplay *dpy, struct __GLXcontextRec *context,
|
||||
typedef int (PFNMESAGLINTEROPGLXEXPORTOBJECTPROC)(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
typedef int (PFNMESAGLINTEROPEGLEXPORTOBJECTPROC)(EGLDisplay dpy, EGLContext context,
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,7 +33,7 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 32686 $ on $Date: 2016-04-19 21:08:44 -0400 (Tue, 19 Apr 2016) $
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 2014) $
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -41,7 +41,7 @@ extern "C" {
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#define WGL_WGLEXT_VERSION 20160419
|
||||
#define WGL_WGLEXT_VERSION 20140810
|
||||
|
||||
/* Generated C header for:
|
||||
* API: wgl
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,16 +33,12 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 32749 $ on $Date: 2016-04-28 09:03:03 -0700 (Thu, 28 Apr 2016) $
|
||||
** Khronos $Revision: 24614 $ on $Date: 2013-12-30 04:44:46 -0800 (Mon, 30 Dec 2013) $
|
||||
*/
|
||||
|
||||
#include <GLES2/gl2platform.h>
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20160428 */
|
||||
/* Generated on date 20131230 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
@@ -378,148 +374,6 @@ typedef khronos_uint8_t GLubyte;
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
|
||||
typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
|
||||
typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
|
||||
typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
|
||||
typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
|
||||
typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2015 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,14 +33,14 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 33080 $ on $Date: 2016-08-05 04:09:22 -0700 (Fri, 05 Aug 2016) $
|
||||
** Khronos $Revision: 32120 $ on $Date: 2015-10-15 04:27:13 -0700 (Thu, 15 Oct 2015) $
|
||||
*/
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20160805 */
|
||||
/* Generated on date 20151015 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
@@ -52,10 +52,6 @@ extern "C" {
|
||||
* Extensions removed: _nomatch_^
|
||||
*/
|
||||
|
||||
#ifndef GL_ARB_sparse_texture2
|
||||
#define GL_ARB_sparse_texture2 1
|
||||
#endif /* GL_ARB_sparse_texture2 */
|
||||
|
||||
#ifndef GL_KHR_blend_equation_advanced
|
||||
#define GL_KHR_blend_equation_advanced 1
|
||||
#define GL_MULTIPLY_KHR 0x9294
|
||||
@@ -756,34 +752,6 @@ GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
|
||||
#define GL_INT_10_10_10_2_OES 0x8DF7
|
||||
#endif /* GL_OES_vertex_type_10_10_10_2 */
|
||||
|
||||
#ifndef GL_OES_viewport_array
|
||||
#define GL_OES_viewport_array 1
|
||||
#define GL_MAX_VIEWPORTS_OES 0x825B
|
||||
#define GL_VIEWPORT_SUBPIXEL_BITS_OES 0x825C
|
||||
#define GL_VIEWPORT_BOUNDS_RANGE_OES 0x825D
|
||||
#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES 0x825F
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVOESPROC) (GLuint first, GLsizei count, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFOESPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVOESPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVOESPROC) (GLuint first, GLsizei count, const GLint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDOESPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVOESPROC) (GLuint index, const GLint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVOESPROC) (GLuint first, GLsizei count, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFOESPROC) (GLuint index, GLfloat n, GLfloat f);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATI_VOESPROC) (GLenum target, GLuint index, GLfloat *data);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glViewportArrayvOES (GLuint first, GLsizei count, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glViewportIndexedfOES (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
|
||||
GL_APICALL void GL_APIENTRY glViewportIndexedfvOES (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glScissorArrayvOES (GLuint first, GLsizei count, const GLint *v);
|
||||
GL_APICALL void GL_APIENTRY glScissorIndexedOES (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glScissorIndexedvOES (GLuint index, const GLint *v);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangeArrayfvOES (GLuint first, GLsizei count, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangeIndexedfOES (GLuint index, GLfloat n, GLfloat f);
|
||||
GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLfloat *data);
|
||||
#endif
|
||||
#endif /* GL_OES_viewport_array */
|
||||
|
||||
#ifndef GL_AMD_compressed_3DC_texture
|
||||
#define GL_AMD_compressed_3DC_texture 1
|
||||
#define GL_3DC_X_AMD 0x87F9
|
||||
@@ -1118,21 +1086,6 @@ GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size,
|
||||
#endif
|
||||
#endif /* GL_EXT_buffer_storage */
|
||||
|
||||
#ifndef GL_EXT_clip_cull_distance
|
||||
#define GL_EXT_clip_cull_distance 1
|
||||
#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32
|
||||
#define GL_MAX_CULL_DISTANCES_EXT 0x82F9
|
||||
#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA
|
||||
#define GL_CLIP_DISTANCE0_EXT 0x3000
|
||||
#define GL_CLIP_DISTANCE1_EXT 0x3001
|
||||
#define GL_CLIP_DISTANCE2_EXT 0x3002
|
||||
#define GL_CLIP_DISTANCE3_EXT 0x3003
|
||||
#define GL_CLIP_DISTANCE4_EXT 0x3004
|
||||
#define GL_CLIP_DISTANCE5_EXT 0x3005
|
||||
#define GL_CLIP_DISTANCE6_EXT 0x3006
|
||||
#define GL_CLIP_DISTANCE7_EXT 0x3007
|
||||
#endif /* GL_EXT_clip_cull_distance */
|
||||
|
||||
#ifndef GL_EXT_color_buffer_float
|
||||
#define GL_EXT_color_buffer_float 1
|
||||
#endif /* GL_EXT_color_buffer_float */
|
||||
@@ -1459,15 +1412,6 @@ GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLi
|
||||
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
|
||||
#endif /* GL_EXT_occlusion_query_boolean */
|
||||
|
||||
#ifndef GL_EXT_polygon_offset_clamp
|
||||
#define GL_EXT_polygon_offset_clamp 1
|
||||
#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
|
||||
typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#endif
|
||||
#endif /* GL_EXT_polygon_offset_clamp */
|
||||
|
||||
#ifndef GL_EXT_post_depth_coverage
|
||||
#define GL_EXT_post_depth_coverage 1
|
||||
#endif /* GL_EXT_post_depth_coverage */
|
||||
@@ -1481,12 +1425,6 @@ GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat min
|
||||
#endif
|
||||
#endif /* GL_EXT_primitive_bounding_box */
|
||||
|
||||
#ifndef GL_EXT_protected_textures
|
||||
#define GL_EXT_protected_textures 1
|
||||
#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010
|
||||
#define GL_TEXTURE_PROTECTED_EXT 0x8BFA
|
||||
#endif /* GL_EXT_protected_textures */
|
||||
|
||||
#ifndef GL_EXT_pvrtc_sRGB
|
||||
#define GL_EXT_pvrtc_sRGB 1
|
||||
#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54
|
||||
@@ -1666,10 +1604,6 @@ GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLin
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_group_vote
|
||||
#define GL_EXT_shader_group_vote 1
|
||||
#endif /* GL_EXT_shader_group_vote */
|
||||
|
||||
#ifndef GL_EXT_shader_implicit_conversions
|
||||
#define GL_EXT_shader_implicit_conversions 1
|
||||
#endif /* GL_EXT_shader_implicit_conversions */
|
||||
@@ -1682,10 +1616,6 @@ GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLin
|
||||
#define GL_EXT_shader_io_blocks 1
|
||||
#endif /* GL_EXT_shader_io_blocks */
|
||||
|
||||
#ifndef GL_EXT_shader_non_constant_global_initializers
|
||||
#define GL_EXT_shader_non_constant_global_initializers 1
|
||||
#endif /* GL_EXT_shader_non_constant_global_initializers */
|
||||
|
||||
#ifndef GL_EXT_shader_pixel_local_storage
|
||||
#define GL_EXT_shader_pixel_local_storage 1
|
||||
#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
|
||||
@@ -1693,21 +1623,6 @@ GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLin
|
||||
#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
|
||||
#endif /* GL_EXT_shader_pixel_local_storage */
|
||||
|
||||
#ifndef GL_EXT_shader_pixel_local_storage2
|
||||
#define GL_EXT_shader_pixel_local_storage2 1
|
||||
#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650
|
||||
#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size);
|
||||
typedef GLsizei (GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint *values);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size);
|
||||
GL_APICALL GLsizei GL_APIENTRY glGetFramebufferPixelLocalStorageSizeEXT (GLuint target);
|
||||
GL_APICALL void GL_APIENTRY glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint *values);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_pixel_local_storage2 */
|
||||
|
||||
#ifndef GL_EXT_shader_texture_lod
|
||||
#define GL_EXT_shader_texture_lod 1
|
||||
#endif /* GL_EXT_shader_texture_lod */
|
||||
@@ -1973,39 +1888,11 @@ GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLu
|
||||
#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
|
||||
#endif /* GL_EXT_unpack_subimage */
|
||||
|
||||
#ifndef GL_EXT_window_rectangles
|
||||
#define GL_EXT_window_rectangles 1
|
||||
#define GL_INCLUSIVE_EXT 0x8F10
|
||||
#define GL_EXCLUSIVE_EXT 0x8F11
|
||||
#define GL_WINDOW_RECTANGLE_EXT 0x8F12
|
||||
#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
|
||||
#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
|
||||
#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
|
||||
typedef void (GL_APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box);
|
||||
#endif
|
||||
#endif /* GL_EXT_window_rectangles */
|
||||
|
||||
#ifndef GL_FJ_shader_binary_GCCSO
|
||||
#define GL_FJ_shader_binary_GCCSO 1
|
||||
#define GL_GCCSO_SHADER_BINARY_FJ 0x9260
|
||||
#endif /* GL_FJ_shader_binary_GCCSO */
|
||||
|
||||
#ifndef GL_IMG_framebuffer_downsample
|
||||
#define GL_IMG_framebuffer_downsample 1
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C
|
||||
#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D
|
||||
#define GL_DOWNSAMPLE_SCALES_IMG 0x913E
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
|
||||
#endif
|
||||
#endif /* GL_IMG_framebuffer_downsample */
|
||||
|
||||
#ifndef GL_IMG_multisampled_render_to_texture
|
||||
#define GL_IMG_multisampled_render_to_texture 1
|
||||
#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
|
||||
@@ -2057,11 +1944,6 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target,
|
||||
#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B
|
||||
#endif /* GL_IMG_texture_filter_cubic */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
#endif /* GL_INTEL_conservative_rasterization */
|
||||
|
||||
#ifndef GL_INTEL_framebuffer_CMAA
|
||||
#define GL_INTEL_framebuffer_CMAA 1
|
||||
typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void);
|
||||
@@ -2238,17 +2120,6 @@ GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybit
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap_triangles
|
||||
#define GL_NV_conservative_raster_pre_snap_triangles 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
|
||||
typedef void (GL_APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param);
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_pre_snap_triangles */
|
||||
|
||||
#ifndef GL_NV_copy_buffer
|
||||
#define GL_NV_copy_buffer 1
|
||||
#define GL_COPY_READ_BUFFER_NV 0x8F36
|
||||
@@ -2436,109 +2307,6 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, G
|
||||
#define GL_NV_geometry_shader_passthrough 1
|
||||
#endif /* GL_NV_geometry_shader_passthrough */
|
||||
|
||||
#ifndef GL_NV_gpu_shader5
|
||||
#define GL_NV_gpu_shader5 1
|
||||
typedef khronos_int64_t GLint64EXT;
|
||||
typedef khronos_uint64_t GLuint64EXT;
|
||||
#define GL_INT64_NV 0x140E
|
||||
#define GL_UNSIGNED_INT64_NV 0x140F
|
||||
#define GL_INT8_NV 0x8FE0
|
||||
#define GL_INT8_VEC2_NV 0x8FE1
|
||||
#define GL_INT8_VEC3_NV 0x8FE2
|
||||
#define GL_INT8_VEC4_NV 0x8FE3
|
||||
#define GL_INT16_NV 0x8FE4
|
||||
#define GL_INT16_VEC2_NV 0x8FE5
|
||||
#define GL_INT16_VEC3_NV 0x8FE6
|
||||
#define GL_INT16_VEC4_NV 0x8FE7
|
||||
#define GL_INT64_VEC2_NV 0x8FE9
|
||||
#define GL_INT64_VEC3_NV 0x8FEA
|
||||
#define GL_INT64_VEC4_NV 0x8FEB
|
||||
#define GL_UNSIGNED_INT8_NV 0x8FEC
|
||||
#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
|
||||
#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
|
||||
#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
|
||||
#define GL_UNSIGNED_INT16_NV 0x8FF0
|
||||
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
|
||||
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
|
||||
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
|
||||
#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
|
||||
#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
|
||||
#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
|
||||
#define GL_FLOAT16_NV 0x8FF8
|
||||
#define GL_FLOAT16_VEC2_NV 0x8FF9
|
||||
#define GL_FLOAT16_VEC3_NV 0x8FFA
|
||||
#define GL_FLOAT16_VEC4_NV 0x8FFB
|
||||
#define GL_PATCHES 0x000E
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glUniform1i64NV (GLint location, GLint64EXT x);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GL_APICALL void GL_APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x);
|
||||
GL_APICALL void GL_APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GL_APICALL void GL_APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GL_APICALL void GL_APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GL_APICALL void GL_APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GL_APICALL void GL_APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#endif
|
||||
#endif /* GL_NV_gpu_shader5 */
|
||||
|
||||
#ifndef GL_NV_image_formats
|
||||
#define GL_NV_image_formats 1
|
||||
#endif /* GL_NV_image_formats */
|
||||
@@ -2945,10 +2713,6 @@ GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void);
|
||||
#define GL_NV_sample_mask_override_coverage 1
|
||||
#endif /* GL_NV_sample_mask_override_coverage */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_fp16_vector
|
||||
#define GL_NV_shader_atomic_fp16_vector 1
|
||||
#endif /* GL_NV_shader_atomic_fp16_vector */
|
||||
|
||||
#ifndef GL_NV_shader_noperspective_interpolation
|
||||
#define GL_NV_shader_noperspective_interpolation 1
|
||||
#endif /* GL_NV_shader_noperspective_interpolation */
|
||||
@@ -3015,26 +2779,6 @@ GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index);
|
||||
#define GL_NV_viewport_array2 1
|
||||
#endif /* GL_NV_viewport_array2 */
|
||||
|
||||
#ifndef GL_NV_viewport_swizzle
|
||||
#define GL_NV_viewport_swizzle 1
|
||||
#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
|
||||
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
|
||||
#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
|
||||
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
|
||||
#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
|
||||
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
|
||||
#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
|
||||
#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
|
||||
#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
|
||||
#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
|
||||
#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
|
||||
#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
|
||||
#endif
|
||||
#endif /* GL_NV_viewport_swizzle */
|
||||
|
||||
#ifndef GL_OVR_multiview
|
||||
#define GL_OVR_multiview 1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#ifndef __gl2platform_h_
|
||||
#define __gl2platform_h_
|
||||
|
||||
/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */
|
||||
/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,21 +33,17 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 32749 $ on $Date: 2016-04-28 09:03:03 -0700 (Thu, 28 Apr 2016) $
|
||||
** Khronos $Revision: 24614 $ on $Date: 2013-12-30 04:44:46 -0800 (Mon, 30 Dec 2013) $
|
||||
*/
|
||||
|
||||
#include <GLES3/gl3platform.h>
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20160428 */
|
||||
/* Generated on date 20131230 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
* Profile: common
|
||||
* Versions considered: 2\.[0-9]|3\.0
|
||||
* Versions considered: [23]\.[0-9]
|
||||
* Versions emitted: .*
|
||||
* Default extensions included: None
|
||||
* Additional extensions included: _nomatch_^
|
||||
@@ -378,148 +374,6 @@ typedef khronos_uint8_t GLubyte;
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
|
||||
typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
|
||||
typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
|
||||
typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
|
||||
typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
|
||||
typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
@@ -851,22 +705,6 @@ typedef unsigned short GLhalf;
|
||||
#define GL_COLOR_ATTACHMENT13 0x8CED
|
||||
#define GL_COLOR_ATTACHMENT14 0x8CEE
|
||||
#define GL_COLOR_ATTACHMENT15 0x8CEF
|
||||
#define GL_COLOR_ATTACHMENT16 0x8CF0
|
||||
#define GL_COLOR_ATTACHMENT17 0x8CF1
|
||||
#define GL_COLOR_ATTACHMENT18 0x8CF2
|
||||
#define GL_COLOR_ATTACHMENT19 0x8CF3
|
||||
#define GL_COLOR_ATTACHMENT20 0x8CF4
|
||||
#define GL_COLOR_ATTACHMENT21 0x8CF5
|
||||
#define GL_COLOR_ATTACHMENT22 0x8CF6
|
||||
#define GL_COLOR_ATTACHMENT23 0x8CF7
|
||||
#define GL_COLOR_ATTACHMENT24 0x8CF8
|
||||
#define GL_COLOR_ATTACHMENT25 0x8CF9
|
||||
#define GL_COLOR_ATTACHMENT26 0x8CFA
|
||||
#define GL_COLOR_ATTACHMENT27 0x8CFB
|
||||
#define GL_COLOR_ATTACHMENT28 0x8CFC
|
||||
#define GL_COLOR_ATTACHMENT29 0x8CFD
|
||||
#define GL_COLOR_ATTACHMENT30 0x8CFE
|
||||
#define GL_COLOR_ATTACHMENT31 0x8CFF
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
|
||||
#define GL_MAX_SAMPLES 0x8D57
|
||||
#define GL_HALF_FLOAT 0x140B
|
||||
@@ -988,111 +826,7 @@ typedef unsigned short GLhalf;
|
||||
#define GL_MAX_ELEMENT_INDEX 0x8D6B
|
||||
#define GL_NUM_SAMPLE_COUNTS 0x9380
|
||||
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
|
||||
typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
|
||||
typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
|
||||
typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
|
||||
typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
|
||||
typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
|
||||
typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src);
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2016 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -38,16 +38,12 @@ extern "C" {
|
||||
|
||||
#include <GLES3/gl3platform.h>
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20160428 */
|
||||
/* Generated on date 20140317 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
* Profile: common
|
||||
* Versions considered: 2\.[0-9]|3\.[01]
|
||||
* Versions considered: 2.[0-9]|3.[01]
|
||||
* Versions emitted: .*
|
||||
* Default extensions included: None
|
||||
* Additional extensions included: _nomatch_^
|
||||
@@ -378,148 +374,6 @@ typedef khronos_uint8_t GLubyte;
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
|
||||
typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
|
||||
typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
|
||||
typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
|
||||
typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
|
||||
typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
@@ -851,22 +705,6 @@ typedef unsigned short GLhalf;
|
||||
#define GL_COLOR_ATTACHMENT13 0x8CED
|
||||
#define GL_COLOR_ATTACHMENT14 0x8CEE
|
||||
#define GL_COLOR_ATTACHMENT15 0x8CEF
|
||||
#define GL_COLOR_ATTACHMENT16 0x8CF0
|
||||
#define GL_COLOR_ATTACHMENT17 0x8CF1
|
||||
#define GL_COLOR_ATTACHMENT18 0x8CF2
|
||||
#define GL_COLOR_ATTACHMENT19 0x8CF3
|
||||
#define GL_COLOR_ATTACHMENT20 0x8CF4
|
||||
#define GL_COLOR_ATTACHMENT21 0x8CF5
|
||||
#define GL_COLOR_ATTACHMENT22 0x8CF6
|
||||
#define GL_COLOR_ATTACHMENT23 0x8CF7
|
||||
#define GL_COLOR_ATTACHMENT24 0x8CF8
|
||||
#define GL_COLOR_ATTACHMENT25 0x8CF9
|
||||
#define GL_COLOR_ATTACHMENT26 0x8CFA
|
||||
#define GL_COLOR_ATTACHMENT27 0x8CFB
|
||||
#define GL_COLOR_ATTACHMENT28 0x8CFC
|
||||
#define GL_COLOR_ATTACHMENT29 0x8CFD
|
||||
#define GL_COLOR_ATTACHMENT30 0x8CFE
|
||||
#define GL_COLOR_ATTACHMENT31 0x8CFF
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
|
||||
#define GL_MAX_SAMPLES 0x8D57
|
||||
#define GL_HALF_FLOAT 0x140B
|
||||
@@ -988,111 +826,7 @@ typedef unsigned short GLhalf;
|
||||
#define GL_MAX_ELEMENT_INDEX 0x8D6B
|
||||
#define GL_NUM_SAMPLE_COUNTS 0x9380
|
||||
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
|
||||
typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
|
||||
typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
|
||||
typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
|
||||
typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
|
||||
typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
|
||||
typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
|
||||
typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src);
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
@@ -1373,74 +1107,6 @@ GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum interna
|
||||
#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
|
||||
#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
|
||||
#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
|
||||
typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
|
||||
typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
|
||||
typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
|
||||
typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
|
||||
typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
|
||||
GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
|
||||
GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect);
|
||||
|
1817
include/GLES3/gl32.h
1817
include/GLES3/gl32.h
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
[*.h]
|
||||
indent_style = space
|
||||
indent_size = 4
|
@@ -184,7 +184,7 @@ mtx_destroy(mtx_t *mtx)
|
||||
* Thus the linker will be happy and things don't clash when building
|
||||
* with -O1 or greater.
|
||||
*/
|
||||
#if defined(HAVE_FUNC_ATTRIBUTE_WEAK) && !defined(__CYGWIN__)
|
||||
#ifdef HAVE_FUNC_ATTRIBUTE_WEAK
|
||||
__attribute__((weak))
|
||||
int pthread_mutexattr_init(pthread_mutexattr_t *attr);
|
||||
|
||||
|
@@ -163,7 +163,6 @@ test_c99_compat_h(const void * restrict a,
|
||||
# define HAVE_FUNC_ATTRIBUTE_UNUSED 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_FORMAT 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_PACKED 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_ALIAS 1
|
||||
|
||||
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||
/* https://gcc.gnu.org/onlinedocs/gcc-4.3.6/gcc/Other-Builtins.html */
|
||||
|
@@ -1,3 +0,0 @@
|
||||
[*.h]
|
||||
indent_style = space
|
||||
indent_size = 4
|
@@ -35,22 +35,6 @@ typedef struct ID3DPresentGroup ID3DPresentGroup;
|
||||
typedef struct ID3DAdapter9 ID3DAdapter9;
|
||||
typedef struct D3DWindowBuffer D3DWindowBuffer;
|
||||
|
||||
/* Available since version 1.3 */
|
||||
typedef struct _D3DPRESENT_PARAMETERS2_ {
|
||||
/* Whether D3DSWAPEFFECT_DISCARD is allowed to release the
|
||||
* D3DWindowBuffers in any order, and eventually with a delay.
|
||||
* FALSE (Default): buffers should be released as soon as possible.
|
||||
* TRUE: it is allowed to release some buffers with a delay, and in
|
||||
* a random order. */
|
||||
BOOL AllowDISCARDDelayedRelease;
|
||||
/* User preference for D3DSWAPEFFECT_DISCARD with D3DPRESENT_INTERVAL_IMMEDIATE.
|
||||
* FALSE (Default): User prefers presentation to occur as soon as possible,
|
||||
* with potential tearings.
|
||||
* TRUE: User prefers presentation to be tear free. Requires
|
||||
* AllowDISCARDDelayedRelease to have any effect. */
|
||||
BOOL TearFreeDISCARD;
|
||||
} D3DPRESENT_PARAMETERS2, *PD3DPRESENT_PARAMETERS2, *LPD3DPRESENT_PARAMETERS2;
|
||||
|
||||
/* Presentation backend for drivers to display their brilliant work */
|
||||
typedef struct ID3DPresentVtbl
|
||||
{
|
||||
@@ -70,10 +54,7 @@ typedef struct ID3DPresentVtbl
|
||||
HRESULT (WINAPI *DestroyD3DWindowBuffer)(ID3DPresent *This, D3DWindowBuffer *buffer);
|
||||
/* After presenting a buffer to the window system, the buffer
|
||||
* may be used as is (no copy of the content) by the window system.
|
||||
* You must not use a non-released buffer, else the user may see undefined content.
|
||||
* Note: This function waits as well that the buffer content was displayed (this
|
||||
* can be after the release of the buffer if the window system decided to make
|
||||
* an internal copy and release early. */
|
||||
* You must not use a non-released buffer, else the user may see undefined content. */
|
||||
HRESULT (WINAPI *WaitBufferReleased)(ID3DPresent *This, D3DWindowBuffer *buffer);
|
||||
HRESULT (WINAPI *FrontBufferCopy)(ID3DPresent *This, D3DWindowBuffer *buffer);
|
||||
/* It is possible to do partial copy, but impossible to do resizing, which must
|
||||
@@ -94,11 +75,6 @@ typedef struct ID3DPresentVtbl
|
||||
BOOL (WINAPI *ResolutionMismatch)(ID3DPresent *This);
|
||||
HANDLE (WINAPI *CreateThread)(ID3DPresent *This, void *pThreadfunc, void *pParam);
|
||||
BOOL (WINAPI *WaitForThread)(ID3DPresent *This, HANDLE thread);
|
||||
/* Available since version 1.3 */
|
||||
HRESULT (WINAPI *SetPresentParameters2)(ID3DPresent *This, D3DPRESENT_PARAMETERS2 *pParameters);
|
||||
BOOL (WINAPI *IsBufferReleased)(ID3DPresent *This, D3DWindowBuffer *buffer);
|
||||
/* Wait a buffer gets released. */
|
||||
HRESULT (WINAPI *WaitBufferReleaseEvent)(ID3DPresent *This);
|
||||
} ID3DPresentVtbl;
|
||||
|
||||
struct ID3DPresent
|
||||
@@ -130,9 +106,6 @@ struct ID3DPresent
|
||||
#define ID3DPresent_ResolutionMismatch(p) (p)->lpVtbl->ResolutionMismatch(p)
|
||||
#define ID3DPresent_CreateThread(p,a,b) (p)->lpVtbl->CreateThread(p,a,b)
|
||||
#define ID3DPresent_WaitForThread(p,a) (p)->lpVtbl->WaitForThread(p,a)
|
||||
#define ID3DPresent_SetPresentParameters2(p,a) (p)->lpVtbl->SetPresentParameters2(p,a)
|
||||
#define ID3DPresent_IsBufferReleased(p,a) (p)->lpVtbl->IsBufferReleased(p,a)
|
||||
#define ID3DPresent_WaitBufferReleaseEvent(p) (p)->lpVtbl->WaitBufferReleaseEvent(p)
|
||||
|
||||
typedef struct ID3DPresentGroupVtbl
|
||||
{
|
||||
|
@@ -109,10 +109,6 @@ CHIPSET(0x162A, bdw_gt3, "Intel(R) Iris Pro P6300 (Broadwell GT3e)")
|
||||
CHIPSET(0x162B, bdw_gt3, "Intel(R) Iris 6100 (Broadwell GT3)")
|
||||
CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherrytrail)")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) HD Graphics XXX (Braswell)") /* Overridden in brw_get_renderer_string */
|
||||
CHIPSET(0x22B2, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
CHIPSET(0x22B3, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
CHIPSET(0x1902, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)")
|
||||
CHIPSET(0x1906, skl_gt1, "Intel(R) HD Graphics 510 (Skylake GT1)")
|
||||
CHIPSET(0x190A, skl_gt1, "Intel(R) Skylake GT1")
|
||||
@@ -138,30 +134,34 @@ CHIPSET(0x1932, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)")
|
||||
CHIPSET(0x193A, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)")
|
||||
CHIPSET(0x193B, skl_gt4, "Intel(R) Iris Pro Graphics 580 (Skylake GT4e)")
|
||||
CHIPSET(0x193D, skl_gt4, "Intel(R) Iris Pro Graphics P580 (Skylake GT4e)")
|
||||
CHIPSET(0x0A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
CHIPSET(0x1A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
CHIPSET(0x1A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)")
|
||||
CHIPSET(0x5A84, bxt, "Intel(R) HD Graphics 505 (Broxton)")
|
||||
CHIPSET(0x5A85, bxt_2x6, "Intel(R) HD Graphics 500 (Broxton 2x6)")
|
||||
CHIPSET(0x5902, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x5906, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590A, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x5908, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590B, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590E, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x5913, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5915, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5917, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5912, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x5916, kbl_gt2, "Intel(R) HD Graphics 620 (Kabylake GT2)")
|
||||
CHIPSET(0x5916, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x591A, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x591B, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x591D, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x591E, kbl_gt2, "Intel(R) HD Graphics 615 (Kabylake GT2)")
|
||||
CHIPSET(0x591E, kbl_gt2, "Intel(R) Kabylake GT2")
|
||||
CHIPSET(0x5921, kbl_gt2, "Intel(R) Kabylake GT2F")
|
||||
CHIPSET(0x5923, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x5926, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x5927, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x592A, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x592B, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x5932, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x593A, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x593B, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x3184, glk, "Intel(R) HD Graphics (Geminilake)")
|
||||
CHIPSET(0x3185, glk_2x6, "Intel(R) HD Graphics (Geminilake 2x6)")
|
||||
CHIPSET(0x593D, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x22B0, chv, "Intel(R) HD Graphics (Cherrytrail)")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) HD Graphics XXX (Braswell)") /* Overridden in brw_get_renderer_string */
|
||||
CHIPSET(0x22B2, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
CHIPSET(0x22B3, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
CHIPSET(0x0A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
CHIPSET(0x1A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
CHIPSET(0x1A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)")
|
||||
CHIPSET(0x5A84, bxt, "Intel(R) HD Graphics (Broxton)")
|
||||
CHIPSET(0x5A85, bxt_2x6, "Intel(R) HD Graphics (Broxton 2x6)")
|
||||
|
@@ -205,10 +205,3 @@ CHIPSET(0x67CF, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67DF, POLARIS10_, POLARIS10)
|
||||
|
||||
CHIPSET(0x98E4, STONEY_, STONEY)
|
||||
|
||||
CHIPSET(0x6980, POLARIS12_, POLARIS12)
|
||||
CHIPSET(0x6981, POLARIS12_, POLARIS12)
|
||||
CHIPSET(0x6985, POLARIS12_, POLARIS12)
|
||||
CHIPSET(0x6986, POLARIS12_, POLARIS12)
|
||||
CHIPSET(0x6987, POLARIS12_, POLARIS12)
|
||||
CHIPSET(0x699F, POLARIS12_, POLARIS12)
|
||||
|
@@ -1,3 +0,0 @@
|
||||
[*.h]
|
||||
indent_style = space
|
||||
indent_size = 4
|
@@ -1,56 +1,28 @@
|
||||
//
|
||||
// File: vk_icd.h
|
||||
//
|
||||
/*
|
||||
* Copyright (c) 2015-2016 The Khronos Group Inc.
|
||||
* Copyright (c) 2015-2016 Valve Corporation
|
||||
* Copyright (c) 2015-2016 LunarG, 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef VKICD_H
|
||||
#define VKICD_H
|
||||
|
||||
#include "vulkan.h"
|
||||
#include "vk_platform.h"
|
||||
|
||||
/*
|
||||
* Loader-ICD version negotiation API
|
||||
*/
|
||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 3
|
||||
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
||||
/*
|
||||
* The ICD must reserve space for a pointer for the loader's dispatch
|
||||
* table, at the start of <each object>.
|
||||
* The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro.
|
||||
*/
|
||||
|
||||
#define ICD_LOADER_MAGIC 0x01CDC0DE
|
||||
#define ICD_LOADER_MAGIC 0x01CDC0DE
|
||||
|
||||
typedef union {
|
||||
uintptr_t loaderMagic;
|
||||
void *loaderData;
|
||||
typedef union _VK_LOADER_DATA {
|
||||
uintptr_t loaderMagic;
|
||||
void *loaderData;
|
||||
} VK_LOADER_DATA;
|
||||
|
||||
static inline void set_loader_magic_value(void *pNewObject) {
|
||||
VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
|
||||
static inline void set_loader_magic_value(void* pNewObject) {
|
||||
VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
|
||||
loader_info->loaderMagic = ICD_LOADER_MAGIC;
|
||||
}
|
||||
|
||||
static inline bool valid_loader_magic_value(void *pNewObject) {
|
||||
const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
|
||||
static inline bool valid_loader_magic_value(void* pNewObject) {
|
||||
const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
|
||||
return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC;
|
||||
}
|
||||
|
||||
@@ -58,74 +30,56 @@ static inline bool valid_loader_magic_value(void *pNewObject) {
|
||||
* Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that
|
||||
* contains the platform-specific connection and surface information.
|
||||
*/
|
||||
typedef enum {
|
||||
typedef enum _VkIcdWsiPlatform {
|
||||
VK_ICD_WSI_PLATFORM_MIR,
|
||||
VK_ICD_WSI_PLATFORM_WAYLAND,
|
||||
VK_ICD_WSI_PLATFORM_WIN32,
|
||||
VK_ICD_WSI_PLATFORM_XCB,
|
||||
VK_ICD_WSI_PLATFORM_XLIB,
|
||||
VK_ICD_WSI_PLATFORM_DISPLAY
|
||||
} VkIcdWsiPlatform;
|
||||
|
||||
typedef struct {
|
||||
VkIcdWsiPlatform platform;
|
||||
typedef struct _VkIcdSurfaceBase {
|
||||
VkIcdWsiPlatform platform;
|
||||
} VkIcdSurfaceBase;
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
MirConnection *connection;
|
||||
MirSurface *mirSurface;
|
||||
typedef struct _VkIcdSurfaceMir {
|
||||
VkIcdSurfaceBase base;
|
||||
MirConnection* connection;
|
||||
MirSurface* mirSurface;
|
||||
} VkIcdSurfaceMir;
|
||||
#endif // VK_USE_PLATFORM_MIR_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
struct wl_display *display;
|
||||
struct wl_surface *surface;
|
||||
typedef struct _VkIcdSurfaceWayland {
|
||||
VkIcdSurfaceBase base;
|
||||
struct wl_display* display;
|
||||
struct wl_surface* surface;
|
||||
} VkIcdSurfaceWayland;
|
||||
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
HINSTANCE hinstance;
|
||||
HWND hwnd;
|
||||
typedef struct _VkIcdSurfaceWin32 {
|
||||
VkIcdSurfaceBase base;
|
||||
HINSTANCE hinstance;
|
||||
HWND hwnd;
|
||||
} VkIcdSurfaceWin32;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
xcb_connection_t *connection;
|
||||
xcb_window_t window;
|
||||
typedef struct _VkIcdSurfaceXcb {
|
||||
VkIcdSurfaceBase base;
|
||||
xcb_connection_t* connection;
|
||||
xcb_window_t window;
|
||||
} VkIcdSurfaceXcb;
|
||||
#endif // VK_USE_PLATFORM_XCB_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
Display *dpy;
|
||||
Window window;
|
||||
typedef struct _VkIcdSurfaceXlib {
|
||||
VkIcdSurfaceBase base;
|
||||
Display* dpy;
|
||||
Window window;
|
||||
} VkIcdSurfaceXlib;
|
||||
#endif // VK_USE_PLATFORM_XLIB_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
typedef struct {
|
||||
ANativeWindow* window;
|
||||
} VkIcdSurfaceAndroid;
|
||||
#endif //VK_USE_PLATFORM_ANDROID_KHR
|
||||
|
||||
typedef struct {
|
||||
VkIcdSurfaceBase base;
|
||||
VkDisplayModeKHR displayMode;
|
||||
uint32_t planeIndex;
|
||||
uint32_t planeStackIndex;
|
||||
VkSurfaceTransformFlagBitsKHR transform;
|
||||
float globalAlpha;
|
||||
VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
|
||||
VkExtent2D imageExtent;
|
||||
} VkIcdSurfaceDisplay;
|
||||
|
||||
#endif // VKICD_H
|
||||
|
@@ -2,19 +2,26 @@
|
||||
// File: vk_platform.h
|
||||
//
|
||||
/*
|
||||
** Copyright (c) 2014-2017 The Khronos Group Inc.
|
||||
** Copyright (c) 2014-2015 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
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** 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.
|
||||
** THE MATERIALS ARE 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
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
|
||||
@@ -51,13 +58,13 @@ extern "C"
|
||||
#define VKAPI_ATTR
|
||||
#define VKAPI_CALL __stdcall
|
||||
#define VKAPI_PTR VKAPI_CALL
|
||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
|
||||
#error "Vulkan isn't supported for the 'armeabi' NDK ABI"
|
||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
|
||||
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
||||
// calling convention, i.e. float parameters are passed in registers. This
|
||||
// is true even if the rest of the application passes floats on the stack,
|
||||
// as it does by default when compiling for the armeabi-v7a NDK ABI.
|
||||
#elif defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
|
||||
// Android does not support Vulkan in native code using the "armeabi" ABI.
|
||||
#error "Vulkan requires the 'armeabi-v7a' or 'armeabi-v7a-hard' ABI on 32-bit ARM CPUs"
|
||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH_7A__)
|
||||
// On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling
|
||||
// convention, even if the application's native code is compiled with the
|
||||
// armeabi-v7a calling convention.
|
||||
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
|
||||
#define VKAPI_CALL
|
||||
#define VKAPI_PTR VKAPI_ATTR
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -13,8 +13,8 @@ all-local : .install-gallium-links
|
||||
fi; \
|
||||
$(MKDIR_P) $$link_dir; \
|
||||
file_list="$(dri_LTLIBRARIES:%.la=.libs/%.so)"; \
|
||||
file_list="$$file_list$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
file_list="$$file_list$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
file_list+="$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
file_list+="$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
for f in $$file_list; do \
|
||||
if test -h .libs/$$f; then \
|
||||
cp -d $$f $$link_dir; \
|
||||
|
72
m4/ax_check_compile_flag.m4
Normal file
72
m4/ax_check_compile_flag.m4
Normal file
@@ -0,0 +1,72 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the current language's compiler
|
||||
# or gives an error. (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||
# force the compiler to issue an error when a bad flag is given.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_COMPILE_FLAGS
|
@@ -103,14 +103,8 @@ def python_scan(node, env, path):
|
||||
# http://www.scons.org/doc/0.98.5/HTML/scons-user/c2781.html#AEN2789
|
||||
# https://docs.python.org/2/library/modulefinder.html
|
||||
contents = node.get_contents()
|
||||
|
||||
# Tell ModuleFinder to search dependencies in the script dir, and the glapi
|
||||
# dirs
|
||||
source_dir = node.get_dir().abspath
|
||||
GLAPI = env.Dir('#src/mapi/glapi/gen').abspath
|
||||
path = [source_dir, GLAPI] + sys.path
|
||||
|
||||
finder = modulefinder.ModuleFinder(path=path)
|
||||
source_dir = node.get_dir()
|
||||
finder = modulefinder.ModuleFinder()
|
||||
finder.run_script(node.abspath)
|
||||
results = []
|
||||
for name, mod in finder.modules.iteritems():
|
||||
@@ -281,7 +275,7 @@ def parse_source_list(env, filename, names=None):
|
||||
# cause duplicate actions.
|
||||
f = f[len(cur_srcdir + '/'):]
|
||||
# do not include any headers
|
||||
if f.endswith(tuple(['.h','.hpp'])):
|
||||
if f.endswith('.h'):
|
||||
continue
|
||||
srcs.append(f)
|
||||
|
||||
|
@@ -256,7 +256,7 @@ def generate(env):
|
||||
if env['build'] == 'profile':
|
||||
env['debug'] = False
|
||||
env['profile'] = True
|
||||
if env['build'] in ('release', 'opt'):
|
||||
if env['build'] == 'release':
|
||||
env['debug'] = False
|
||||
env['profile'] = False
|
||||
|
||||
@@ -301,8 +301,6 @@ def generate(env):
|
||||
cppdefines += ['NDEBUG']
|
||||
if env['build'] == 'profile':
|
||||
cppdefines += ['PROFILE']
|
||||
if env['build'] in ('opt', 'profile'):
|
||||
cppdefines += ['VMX86_STATS']
|
||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
cppdefines += [
|
||||
'_POSIX_SOURCE',
|
||||
@@ -323,6 +321,10 @@ def generate(env):
|
||||
'GLX_DIRECT_RENDERING',
|
||||
'GLX_INDIRECT_RENDERING',
|
||||
]
|
||||
if env['platform'] in ('linux', 'freebsd'):
|
||||
cppdefines += ['HAVE_ALIAS']
|
||||
else:
|
||||
cppdefines += ['GLX_ALIAS_UNSUPPORTED']
|
||||
|
||||
if env['platform'] in ('linux', 'darwin'):
|
||||
cppdefines += ['HAVE_XLOCALE_H']
|
||||
@@ -448,7 +450,7 @@ def generate(env):
|
||||
ccflags += [
|
||||
'/O2', # optimize for speed
|
||||
]
|
||||
if env['build'] in ('release', 'opt'):
|
||||
if env['build'] == 'release':
|
||||
if not env['clang']:
|
||||
ccflags += [
|
||||
'/GL', # enable whole program optimization
|
||||
@@ -559,7 +561,7 @@ def generate(env):
|
||||
shlinkflags += ['-Wl,--enable-stdcall-fixup']
|
||||
#shlinkflags += ['-Wl,--kill-at']
|
||||
if msvc:
|
||||
if env['build'] in ('release', 'opt') and not env['clang']:
|
||||
if env['build'] == 'release' and not env['clang']:
|
||||
# enable Link-time Code Generation
|
||||
linkflags += ['/LTCG']
|
||||
env.Append(ARFLAGS = ['/LTCG'])
|
||||
@@ -647,7 +649,8 @@ def generate(env):
|
||||
env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto >= 1.4.13'])
|
||||
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
|
||||
env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.66'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.38'])
|
||||
env.PkgCheckModules('UDEV', ['libudev >= 151'])
|
||||
|
||||
if env['x11']:
|
||||
env.Append(CPPPATH = env['X11_CPPPATH'])
|
||||
|
@@ -106,24 +106,7 @@ def generate(env):
|
||||
])
|
||||
env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
|
||||
# LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter`
|
||||
if llvm_version >= distutils.version.LooseVersion('3.9'):
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
||||
'LLVMDebugInfoCodeView', 'LLVMCodeGen',
|
||||
'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMInstrumentation', 'LLVMTransformUtils',
|
||||
'LLVMBitWriter', 'LLVMX86Desc',
|
||||
'LLVMMCDisassembler', 'LLVMX86Info',
|
||||
'LLVMX86AsmPrinter', 'LLVMX86Utils',
|
||||
'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
|
||||
'LLVMAnalysis', 'LLVMProfileData',
|
||||
'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
|
||||
'LLVMBitReader', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport',
|
||||
'LLVMIRReader', 'LLVMASMParser'
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('3.7'):
|
||||
if llvm_version >= distutils.version.LooseVersion('3.7'):
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
||||
@@ -194,12 +177,11 @@ def generate(env):
|
||||
# that.
|
||||
env.Append(LINKFLAGS = ['/nodefaultlib:LIBCMT'])
|
||||
else:
|
||||
llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
|
||||
if not env.Detect(llvm_config):
|
||||
print 'scons: %s script not found' % llvm_config
|
||||
if not env.Detect('llvm-config'):
|
||||
print 'scons: llvm-config script not found'
|
||||
return
|
||||
|
||||
llvm_version = env.backtick('%s --version' % llvm_config).rstrip()
|
||||
llvm_version = env.backtick('llvm-config --version').rstrip()
|
||||
llvm_version = distutils.version.LooseVersion(llvm_version)
|
||||
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
@@ -209,7 +191,7 @@ def generate(env):
|
||||
try:
|
||||
# Treat --cppflags specially to prevent NDEBUG from disabling
|
||||
# assertion failures in debug builds.
|
||||
cppflags = env.ParseFlags('!%s --cppflags' % llvm_config)
|
||||
cppflags = env.ParseFlags('!llvm-config --cppflags')
|
||||
try:
|
||||
cppflags['CPPDEFINES'].remove('NDEBUG')
|
||||
except ValueError:
|
||||
@@ -217,16 +199,16 @@ def generate(env):
|
||||
env.MergeFlags(cppflags)
|
||||
|
||||
# Match llvm --fno-rtti flag
|
||||
cxxflags = env.backtick('%s --cxxflags' % llvm_config).split()
|
||||
cxxflags = env.backtick('llvm-config --cxxflags').split()
|
||||
if '-fno-rtti' in cxxflags:
|
||||
env.Append(CXXFLAGS = ['-fno-rtti'])
|
||||
|
||||
components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler', 'irreader']
|
||||
components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler']
|
||||
|
||||
env.ParseConfig('%s --libs ' % llvm_config + ' '.join(components))
|
||||
env.ParseConfig('%s --ldflags' % llvm_config)
|
||||
env.ParseConfig('llvm-config --libs ' + ' '.join(components))
|
||||
env.ParseConfig('llvm-config --ldflags')
|
||||
if llvm_version >= distutils.version.LooseVersion('3.5'):
|
||||
env.ParseConfig('%s --system-libs' % llvm_config)
|
||||
env.ParseConfig('llvm-config --system-libs')
|
||||
env.Append(CXXFLAGS = ['-std=c++11'])
|
||||
except OSError:
|
||||
print 'scons: llvm-config version %s failed' % llvm_version
|
||||
|
@@ -865,7 +865,7 @@ sub top_of_mesa_tree {
|
||||
$lk_path .= "/";
|
||||
}
|
||||
if ( (-f "${lk_path}docs/mesa.css")
|
||||
&& (-f "${lk_path}docs/features.txt")
|
||||
&& (-f "${lk_path}docs/GL3.txt")
|
||||
&& (-f "${lk_path}src/mesa/main/version.c")
|
||||
&& (-f "${lk_path}REVIEWERS")
|
||||
&& (-d "${lk_path}scripts")) {
|
||||
|
@@ -44,41 +44,12 @@ git_sha1.h: git_sha1.h.tmp
|
||||
|
||||
BUILT_SOURCES = git_sha1.h
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
EXTRA_DIST =
|
||||
|
||||
SUBDIRS = . gtest util mapi/glapi/gen mapi
|
||||
|
||||
if HAVE_OPENGL
|
||||
gldir = $(includedir)/GL
|
||||
gl_HEADERS = \
|
||||
$(top_srcdir)/include/GL/gl.h \
|
||||
$(top_srcdir)/include/GL/glext.h \
|
||||
$(top_srcdir)/include/GL/glcorearb.h \
|
||||
$(top_srcdir)/include/GL/gl_mangle.h
|
||||
endif
|
||||
|
||||
if HAVE_GLX
|
||||
glxdir = $(includedir)/GL
|
||||
glx_HEADERS = \
|
||||
$(top_srcdir)/include/GL/glx.h \
|
||||
$(top_srcdir)/include/GL/glxext.h \
|
||||
$(top_srcdir)/include/GL/glx_mangle.h
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = mesa/gl.pc
|
||||
endif
|
||||
|
||||
if HAVE_COMMON_OSMESA
|
||||
osmesadir = $(includedir)/GL
|
||||
osmesa_HEADERS = $(top_srcdir)/include/GL/osmesa.h
|
||||
endif
|
||||
|
||||
# include only conditionally ?
|
||||
SUBDIRS += compiler
|
||||
|
||||
if HAVE_AMD_DRIVERS
|
||||
SUBDIRS += amd
|
||||
endif
|
||||
|
||||
if HAVE_INTEL_DRIVERS
|
||||
SUBDIRS += intel
|
||||
endif
|
||||
@@ -112,32 +83,17 @@ if HAVE_EGL
|
||||
SUBDIRS += egl
|
||||
endif
|
||||
|
||||
if HAVE_INTEL_DRIVERS
|
||||
SUBDIRS += intel/tools
|
||||
endif
|
||||
|
||||
if HAVE_VULKAN_COMMON
|
||||
SUBDIRS += vulkan/wsi
|
||||
endif
|
||||
EXTRA_DIST += vulkan/registry/vk.xml
|
||||
|
||||
## Requires the i965 compiler (part of mesa) and wayland-drm
|
||||
if HAVE_INTEL_VULKAN
|
||||
SUBDIRS += intel/vulkan
|
||||
endif
|
||||
|
||||
# Requires wayland-drm
|
||||
if HAVE_RADEON_VULKAN
|
||||
SUBDIRS += amd/vulkan
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM
|
||||
SUBDIRS += gallium
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
getopt hgl SConscript \
|
||||
$(top_srcdir)/include/GL/mesa_glinterop.h
|
||||
EXTRA_DIST = \
|
||||
getopt hgl SConscript
|
||||
|
||||
AM_CFLAGS = $(VISIBILITY_CFLAGS)
|
||||
AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS)
|
||||
@@ -146,15 +102,12 @@ AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/include/ \
|
||||
-I$(top_srcdir)/src/mapi/ \
|
||||
-I$(top_srcdir)/src/mesa/ \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
$(DEFINES)
|
||||
|
||||
noinst_LTLIBRARIES = libglsl_util.la
|
||||
|
||||
libglsl_util_la_SOURCES = \
|
||||
mesa/main/extensions_table.c \
|
||||
mesa/main/imports.c \
|
||||
mesa/program/prog_parameter.c \
|
||||
mesa/program/prog_hash_table.c \
|
||||
mesa/program/symbol_table.c \
|
||||
mesa/program/dummy_errors.c
|
||||
|
@@ -1,9 +1,6 @@
|
||||
import filecmp
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
Import('*')
|
||||
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('getopt/SConscript')
|
||||
|
||||
@@ -15,50 +12,6 @@ if env['hostonly']:
|
||||
# compilation
|
||||
Return()
|
||||
|
||||
|
||||
def write_git_sha1_h_file(filename):
|
||||
"""Mesa looks for a git_sha1.h file at compile time in order to display
|
||||
the current git hash id in the GL_VERSION string. This function tries
|
||||
to retrieve the git hashid and write the header file. An empty file
|
||||
will be created if anything goes wrong."""
|
||||
|
||||
args = [ 'git', 'rev-parse', '--short=10', 'HEAD' ]
|
||||
try:
|
||||
(commit, foo) = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()
|
||||
except:
|
||||
print "Warning: exception in write_git_sha1_h_file()"
|
||||
# git log command didn't work
|
||||
if not os.path.exists(filename):
|
||||
dirname = os.path.dirname(filename)
|
||||
if dirname and not os.path.exists(dirname):
|
||||
os.makedirs(dirname)
|
||||
# create an empty file if none already exists
|
||||
f = open(filename, "w")
|
||||
f.close()
|
||||
return
|
||||
|
||||
# note that commit[:-1] removes the trailing newline character
|
||||
commit = '#define MESA_GIT_SHA1 "git-%s"\n' % commit[:-1]
|
||||
tempfile = "git_sha1.h.tmp"
|
||||
f = open(tempfile, "w")
|
||||
f.write(commit)
|
||||
f.close()
|
||||
if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename):
|
||||
# The filename does not exist or it's different from the new file,
|
||||
# so replace old file with new.
|
||||
if os.path.exists(filename):
|
||||
os.remove(filename)
|
||||
os.rename(tempfile, filename)
|
||||
return
|
||||
|
||||
|
||||
# Create the git_sha1.h header file
|
||||
write_git_sha1_h_file("git_sha1.h")
|
||||
# and update CPPPATH so the git_sha1.h header can be found
|
||||
env.Append(CPPPATH = ["#" + env['build_dir']])
|
||||
|
||||
|
||||
|
||||
if env['platform'] != 'windows':
|
||||
SConscript('loader/SConscript')
|
||||
|
||||
|
@@ -1,44 +0,0 @@
|
||||
# Copyright © 2016 Red Hat.
|
||||
# Copyright © 2016 Mauro Rossi <issor.oruam@gmail.com>
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
# ---------------------------------------
|
||||
# Build libmesa_amdgpu_addrlib
|
||||
# ---------------------------------------
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := libmesa_amdgpu_addrlib
|
||||
|
||||
LOCAL_SRC_FILES := $(ADDRLIB_FILES)
|
||||
|
||||
LOCAL_CFLAGS := -DBRAHMA_BUILD=1
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src \
|
||||
$(MESA_TOP)/src/amd/common \
|
||||
$(MESA_TOP)/src/amd/addrlib \
|
||||
$(MESA_TOP)/src/amd/addrlib/core \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc/chip/r800 \
|
||||
$(MESA_TOP)/src/amd/addrlib/r800/chip
|
||||
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
@@ -1,63 +0,0 @@
|
||||
# Copyright © 2016 Red Hat.
|
||||
# Copyright © 2016 Mauro Rossi <issor.oruam@gmail.com>
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
# ---------------------------------------
|
||||
# Build libmesa_amd_common
|
||||
# ---------------------------------------
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := libmesa_amd_common
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(AMD_COMPILER_FILES) \
|
||||
$(AMD_DEBUG_FILES)
|
||||
|
||||
LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
|
||||
|
||||
# generate sources
|
||||
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
||||
intermediates := $(call local-generated-sources-dir)
|
||||
LOCAL_GENERATED_SOURCES := $(addprefix $(intermediates)/, $(AMD_GENERATED_FILES))
|
||||
|
||||
$(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2)
|
||||
$(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ > $@
|
||||
|
||||
$(intermediates)/common/sid_tables.h: $(LOCAL_PATH)/common/sid_tables.py $(MESA_TOP)/src/amd/common/sid.h
|
||||
$(transform-generated-source)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/include \
|
||||
$(MESA_TOP)/src \
|
||||
$(MESA_TOP)/src/amd/common \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary \
|
||||
$(intermediates)/common \
|
||||
external/llvm/include \
|
||||
external/llvm/device/include \
|
||||
external/libcxx/include \
|
||||
external/elfutils/$(if $(filter 5,$(MESA_ANDROID_MAJOR_VERSION)),0.153/,$(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)),src/))libelf
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libLLVMCore
|
||||
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
@@ -1,29 +0,0 @@
|
||||
# Copyright © 2016 Red Hat.
|
||||
# Copyright © 2016 Mauro Rossi <issor.oruam@gmail.com>
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# Import variables
|
||||
include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
include $(LOCAL_PATH)/Android.addrlib.mk
|
||||
include $(LOCAL_PATH)/Android.common.mk
|
@@ -1,38 +0,0 @@
|
||||
# Copyright 2016 Red Hat Inc.
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
ADDRLIB_LIBS = addrlib/libamdgpu_addrlib.la
|
||||
|
||||
addrlib_libamdgpu_addrlib_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src/ \
|
||||
-I$(srcdir)/common \
|
||||
-I$(srcdir)/addrlib \
|
||||
-I$(srcdir)/addrlib/core \
|
||||
-I$(srcdir)/addrlib/inc/chip/r800 \
|
||||
-I$(srcdir)/addrlib/r800/chip \
|
||||
-DBRAHMA_BUILD=1
|
||||
|
||||
addrlib_libamdgpu_addrlib_la_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS)
|
||||
|
||||
noinst_LTLIBRARIES += $(ADDRLIB_LIBS)
|
||||
|
||||
addrlib_libamdgpu_addrlib_la_SOURCES = $(ADDRLIB_FILES)
|
@@ -1,28 +0,0 @@
|
||||
# Copyright © 2016 Red Hat.
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
include Makefile.sources
|
||||
|
||||
noinst_LTLIBRARIES =
|
||||
|
||||
EXTRA_DIST = $(COMMON_HEADER_FILES) common/sid_tables.py
|
||||
include Makefile.addrlib.am
|
||||
include Makefile.common.am
|
@@ -1,72 +0,0 @@
|
||||
# Copyright © 2016 Bas Nieuwenhuizen
|
||||
#
|
||||
# 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 (including the next
|
||||
# paragraph) 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.
|
||||
|
||||
if NEED_RADEON_LLVM
|
||||
|
||||
COMMON_LIBS = common/libamd_common.la
|
||||
|
||||
# TODO cleanup these
|
||||
common_libamd_common_la_CPPFLAGS = \
|
||||
$(VALGRIND_CFLAGS) \
|
||||
$(DEFINES) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_builddir)/src \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_builddir)/src/amd/common \
|
||||
-I$(top_srcdir)/src/amd/common \
|
||||
-I$(top_builddir)/src/compiler \
|
||||
-I$(top_builddir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/compiler \
|
||||
-I$(top_srcdir)/src/mapi \
|
||||
-I$(top_srcdir)/src/mesa \
|
||||
-I$(top_srcdir)/src/mesa/drivers/dri/common \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gallium/include
|
||||
|
||||
common_libamd_common_la_CFLAGS = \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(PTHREAD_CFLAGS) \
|
||||
$(LLVM_CFLAGS) \
|
||||
$(LIBELF_CFLAGS)
|
||||
|
||||
common_libamd_common_la_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS) \
|
||||
$(LLVM_CXXFLAGS)
|
||||
|
||||
noinst_LTLIBRARIES += $(COMMON_LIBS)
|
||||
|
||||
common_libamd_common_la_SOURCES = \
|
||||
$(AMD_COMPILER_FILES) \
|
||||
$(AMD_DEBUG_FILES) \
|
||||
$(AMD_GENERATED_FILES)
|
||||
|
||||
# nir_to_llvm requires LLVM 3.9, which is only required as a minimum when
|
||||
# radv is built.
|
||||
if HAVE_RADEON_VULKAN
|
||||
common_libamd_common_la_SOURCES += $(AMD_NIR_FILES)
|
||||
endif
|
||||
endif
|
||||
|
||||
common/sid_tables.h: $(srcdir)/common/sid_tables.py $(srcdir)/common/sid.h
|
||||
$(AM_V_at)$(MKDIR_P) $(@D)
|
||||
$(AM_V_GEN) $(PYTHON2) $(srcdir)/common/sid_tables.py $(srcdir)/common/sid.h > $@
|
||||
|
||||
BUILT_SOURCES = $(AMD_GENERATED_FILES)
|
@@ -1,45 +0,0 @@
|
||||
COMMON_HEADER_FILES = \
|
||||
common/sid.h \
|
||||
common/r600d_common.h \
|
||||
common/amd_family.h \
|
||||
common/amd_kernel_code_t.h \
|
||||
common/amdgpu_id.h
|
||||
|
||||
ADDRLIB_FILES = \
|
||||
addrlib/addrinterface.cpp \
|
||||
addrlib/addrinterface.h \
|
||||
addrlib/addrtypes.h \
|
||||
addrlib/core/addrcommon.h \
|
||||
addrlib/core/addrelemlib.cpp \
|
||||
addrlib/core/addrelemlib.h \
|
||||
addrlib/core/addrlib.cpp \
|
||||
addrlib/core/addrlib.h \
|
||||
addrlib/core/addrobject.cpp \
|
||||
addrlib/core/addrobject.h \
|
||||
addrlib/inc/chip/r800/si_gb_reg.h \
|
||||
addrlib/inc/lnx_common_defs.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 \
|
||||
common/ac_binary.h \
|
||||
common/ac_llvm_helper.cpp \
|
||||
common/ac_llvm_util.c \
|
||||
common/ac_llvm_util.h
|
||||
|
||||
AMD_NIR_FILES = \
|
||||
common/ac_nir_to_llvm.c \
|
||||
common/ac_nir_to_llvm.h
|
||||
|
||||
AMD_DEBUG_FILES = \
|
||||
common/ac_debug.c \
|
||||
common/ac_debug.h
|
||||
|
||||
AMD_GENERATED_FILES = \
|
||||
common/sid_tables.h
|
@@ -1,288 +0,0 @@
|
||||
/*
|
||||
* Copyright 2014 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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 (including the next
|
||||
* paragraph) 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.
|
||||
*
|
||||
* Authors: Tom Stellard <thomas.stellard@amd.com>
|
||||
*
|
||||
* Based on radeon_elf_util.c.
|
||||
*/
|
||||
|
||||
#include "ac_binary.h"
|
||||
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_memory.h"
|
||||
|
||||
#include <gelf.h>
|
||||
#include <libelf.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <sid.h>
|
||||
|
||||
#define SPILLED_SGPRS 0x4
|
||||
#define SPILLED_VGPRS 0x8
|
||||
|
||||
static void parse_symbol_table(Elf_Data *symbol_table_data,
|
||||
const GElf_Shdr *symbol_table_header,
|
||||
struct ac_shader_binary *binary)
|
||||
{
|
||||
GElf_Sym symbol;
|
||||
unsigned i = 0;
|
||||
unsigned symbol_count =
|
||||
symbol_table_header->sh_size / symbol_table_header->sh_entsize;
|
||||
|
||||
/* We are over allocating this list, because symbol_count gives the
|
||||
* total number of symbols, and we will only be filling the list
|
||||
* with offsets of global symbols. The memory savings from
|
||||
* allocating the correct size of this list will be small, and
|
||||
* I don't think it is worth the cost of pre-computing the number
|
||||
* of global symbols.
|
||||
*/
|
||||
binary->global_symbol_offsets = CALLOC(symbol_count, sizeof(uint64_t));
|
||||
|
||||
while (gelf_getsym(symbol_table_data, i++, &symbol)) {
|
||||
unsigned i;
|
||||
if (GELF_ST_BIND(symbol.st_info) != STB_GLOBAL ||
|
||||
symbol.st_shndx == 0 /* Undefined symbol */) {
|
||||
continue;
|
||||
}
|
||||
|
||||
binary->global_symbol_offsets[binary->global_symbol_count] =
|
||||
symbol.st_value;
|
||||
|
||||
/* Sort the list using bubble sort. This list will usually
|
||||
* be small. */
|
||||
for (i = binary->global_symbol_count; i > 0; --i) {
|
||||
uint64_t lhs = binary->global_symbol_offsets[i - 1];
|
||||
uint64_t rhs = binary->global_symbol_offsets[i];
|
||||
if (lhs < rhs) {
|
||||
break;
|
||||
}
|
||||
binary->global_symbol_offsets[i] = lhs;
|
||||
binary->global_symbol_offsets[i - 1] = rhs;
|
||||
}
|
||||
++binary->global_symbol_count;
|
||||
}
|
||||
}
|
||||
|
||||
static void parse_relocs(Elf *elf, Elf_Data *relocs, Elf_Data *symbols,
|
||||
unsigned symbol_sh_link,
|
||||
struct ac_shader_binary *binary)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
if (!relocs || !symbols || !binary->reloc_count) {
|
||||
return;
|
||||
}
|
||||
binary->relocs = CALLOC(binary->reloc_count,
|
||||
sizeof(struct ac_shader_reloc));
|
||||
for (i = 0; i < binary->reloc_count; i++) {
|
||||
GElf_Sym symbol;
|
||||
GElf_Rel rel;
|
||||
char *symbol_name;
|
||||
struct ac_shader_reloc *reloc = &binary->relocs[i];
|
||||
|
||||
gelf_getrel(relocs, i, &rel);
|
||||
gelf_getsym(symbols, GELF_R_SYM(rel.r_info), &symbol);
|
||||
symbol_name = elf_strptr(elf, symbol_sh_link, symbol.st_name);
|
||||
|
||||
reloc->offset = rel.r_offset;
|
||||
strncpy(reloc->name, symbol_name, sizeof(reloc->name)-1);
|
||||
reloc->name[sizeof(reloc->name)-1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void ac_elf_read(const char *elf_data, unsigned elf_size,
|
||||
struct ac_shader_binary *binary)
|
||||
{
|
||||
char *elf_buffer;
|
||||
Elf *elf;
|
||||
Elf_Scn *section = NULL;
|
||||
Elf_Data *symbols = NULL, *relocs = NULL;
|
||||
size_t section_str_index;
|
||||
unsigned symbol_sh_link = 0;
|
||||
|
||||
/* One of the libelf implementations
|
||||
* (http://www.mr511.de/software/english.htm) requires calling
|
||||
* elf_version() before elf_memory().
|
||||
*/
|
||||
elf_version(EV_CURRENT);
|
||||
elf_buffer = MALLOC(elf_size);
|
||||
memcpy(elf_buffer, elf_data, elf_size);
|
||||
|
||||
elf = elf_memory(elf_buffer, elf_size);
|
||||
|
||||
elf_getshdrstrndx(elf, §ion_str_index);
|
||||
|
||||
while ((section = elf_nextscn(elf, section))) {
|
||||
const char *name;
|
||||
Elf_Data *section_data = NULL;
|
||||
GElf_Shdr section_header;
|
||||
if (gelf_getshdr(section, §ion_header) != §ion_header) {
|
||||
fprintf(stderr, "Failed to read ELF section header\n");
|
||||
return;
|
||||
}
|
||||
name = elf_strptr(elf, section_str_index, section_header.sh_name);
|
||||
if (!strcmp(name, ".text")) {
|
||||
section_data = elf_getdata(section, section_data);
|
||||
binary->code_size = section_data->d_size;
|
||||
binary->code = MALLOC(binary->code_size * sizeof(unsigned char));
|
||||
memcpy(binary->code, section_data->d_buf, binary->code_size);
|
||||
} else if (!strcmp(name, ".AMDGPU.config")) {
|
||||
section_data = elf_getdata(section, section_data);
|
||||
binary->config_size = section_data->d_size;
|
||||
binary->config = MALLOC(binary->config_size * sizeof(unsigned char));
|
||||
memcpy(binary->config, section_data->d_buf, binary->config_size);
|
||||
} else if (!strcmp(name, ".AMDGPU.disasm")) {
|
||||
/* Always read disassembly if it's available. */
|
||||
section_data = elf_getdata(section, section_data);
|
||||
binary->disasm_string = strndup(section_data->d_buf,
|
||||
section_data->d_size);
|
||||
} else if (!strncmp(name, ".rodata", 7)) {
|
||||
section_data = elf_getdata(section, section_data);
|
||||
binary->rodata_size = section_data->d_size;
|
||||
binary->rodata = MALLOC(binary->rodata_size * sizeof(unsigned char));
|
||||
memcpy(binary->rodata, section_data->d_buf, binary->rodata_size);
|
||||
} else if (!strncmp(name, ".symtab", 7)) {
|
||||
symbols = elf_getdata(section, section_data);
|
||||
symbol_sh_link = section_header.sh_link;
|
||||
parse_symbol_table(symbols, §ion_header, binary);
|
||||
} else if (!strcmp(name, ".rel.text")) {
|
||||
relocs = elf_getdata(section, section_data);
|
||||
binary->reloc_count = section_header.sh_size /
|
||||
section_header.sh_entsize;
|
||||
}
|
||||
}
|
||||
|
||||
parse_relocs(elf, relocs, symbols, symbol_sh_link, binary);
|
||||
|
||||
if (elf){
|
||||
elf_end(elf);
|
||||
}
|
||||
FREE(elf_buffer);
|
||||
|
||||
/* Cache the config size per symbol */
|
||||
if (binary->global_symbol_count) {
|
||||
binary->config_size_per_symbol =
|
||||
binary->config_size / binary->global_symbol_count;
|
||||
} else {
|
||||
binary->global_symbol_count = 1;
|
||||
binary->config_size_per_symbol = binary->config_size;
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
const unsigned char *ac_shader_binary_config_start(
|
||||
const struct ac_shader_binary *binary,
|
||||
uint64_t symbol_offset)
|
||||
{
|
||||
unsigned i;
|
||||
for (i = 0; i < binary->global_symbol_count; ++i) {
|
||||
if (binary->global_symbol_offsets[i] == symbol_offset) {
|
||||
unsigned offset = i * binary->config_size_per_symbol;
|
||||
return binary->config + offset;
|
||||
}
|
||||
}
|
||||
return binary->config;
|
||||
}
|
||||
|
||||
|
||||
static const char *scratch_rsrc_dword0_symbol =
|
||||
"SCRATCH_RSRC_DWORD0";
|
||||
|
||||
static const char *scratch_rsrc_dword1_symbol =
|
||||
"SCRATCH_RSRC_DWORD1";
|
||||
|
||||
void ac_shader_binary_read_config(struct ac_shader_binary *binary,
|
||||
struct ac_shader_config *conf,
|
||||
unsigned symbol_offset)
|
||||
{
|
||||
unsigned i;
|
||||
const unsigned char *config =
|
||||
ac_shader_binary_config_start(binary, symbol_offset);
|
||||
bool really_needs_scratch = false;
|
||||
|
||||
/* LLVM adds SGPR spills to the scratch size.
|
||||
* Find out if we really need the scratch buffer.
|
||||
*/
|
||||
for (i = 0; i < binary->reloc_count; i++) {
|
||||
const struct ac_shader_reloc *reloc = &binary->relocs[i];
|
||||
|
||||
if (!strcmp(scratch_rsrc_dword0_symbol, reloc->name) ||
|
||||
!strcmp(scratch_rsrc_dword1_symbol, reloc->name)) {
|
||||
really_needs_scratch = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < binary->config_size_per_symbol; i+= 8) {
|
||||
unsigned reg = util_le32_to_cpu(*(uint32_t*)(config + i));
|
||||
unsigned value = util_le32_to_cpu(*(uint32_t*)(config + i + 4));
|
||||
switch (reg) {
|
||||
case R_00B028_SPI_SHADER_PGM_RSRC1_PS:
|
||||
case R_00B128_SPI_SHADER_PGM_RSRC1_VS:
|
||||
case R_00B228_SPI_SHADER_PGM_RSRC1_GS:
|
||||
case R_00B848_COMPUTE_PGM_RSRC1:
|
||||
conf->num_sgprs = MAX2(conf->num_sgprs, (G_00B028_SGPRS(value) + 1) * 8);
|
||||
conf->num_vgprs = MAX2(conf->num_vgprs, (G_00B028_VGPRS(value) + 1) * 4);
|
||||
conf->float_mode = G_00B028_FLOAT_MODE(value);
|
||||
break;
|
||||
case R_00B02C_SPI_SHADER_PGM_RSRC2_PS:
|
||||
conf->lds_size = MAX2(conf->lds_size, G_00B02C_EXTRA_LDS_SIZE(value));
|
||||
break;
|
||||
case R_00B84C_COMPUTE_PGM_RSRC2:
|
||||
conf->lds_size = MAX2(conf->lds_size, G_00B84C_LDS_SIZE(value));
|
||||
break;
|
||||
case R_0286CC_SPI_PS_INPUT_ENA:
|
||||
conf->spi_ps_input_ena = value;
|
||||
break;
|
||||
case R_0286D0_SPI_PS_INPUT_ADDR:
|
||||
conf->spi_ps_input_addr = value;
|
||||
break;
|
||||
case R_0286E8_SPI_TMPRING_SIZE:
|
||||
case R_00B860_COMPUTE_TMPRING_SIZE:
|
||||
/* WAVESIZE is in units of 256 dwords. */
|
||||
if (really_needs_scratch)
|
||||
conf->scratch_bytes_per_wave =
|
||||
G_00B860_WAVESIZE(value) * 256 * 4;
|
||||
break;
|
||||
case SPILLED_SGPRS:
|
||||
conf->spilled_sgprs = value;
|
||||
break;
|
||||
case SPILLED_VGPRS:
|
||||
conf->spilled_vgprs = value;
|
||||
break;
|
||||
default:
|
||||
{
|
||||
static bool printed;
|
||||
|
||||
if (!printed) {
|
||||
fprintf(stderr, "Warning: LLVM emitted unknown "
|
||||
"config register: 0x%x\n", reg);
|
||||
printed = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!conf->spi_ps_input_addr)
|
||||
conf->spi_ps_input_addr = conf->spi_ps_input_ena;
|
||||
}
|
||||
}
|
@@ -1,88 +0,0 @@
|
||||
/*
|
||||
* Copyright 2014 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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 (including the next
|
||||
* paragraph) 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.
|
||||
*
|
||||
* Authors: Tom Stellard <thomas.stellard@amd.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
struct ac_shader_reloc {
|
||||
char name[32];
|
||||
uint64_t offset;
|
||||
};
|
||||
|
||||
struct ac_shader_binary {
|
||||
/** Shader code */
|
||||
unsigned char *code;
|
||||
unsigned code_size;
|
||||
|
||||
/** Config/Context register state that accompanies this shader.
|
||||
* This is a stream of dword pairs. First dword contains the
|
||||
* register address, the second dword contains the value.*/
|
||||
unsigned char *config;
|
||||
unsigned config_size;
|
||||
|
||||
/** The number of bytes of config information for each global symbol.
|
||||
*/
|
||||
unsigned config_size_per_symbol;
|
||||
|
||||
/** Constant data accessed by the shader. This will be uploaded
|
||||
* into a constant buffer. */
|
||||
unsigned char *rodata;
|
||||
unsigned rodata_size;
|
||||
|
||||
/** List of symbol offsets for the shader */
|
||||
uint64_t *global_symbol_offsets;
|
||||
unsigned global_symbol_count;
|
||||
|
||||
struct ac_shader_reloc *relocs;
|
||||
unsigned reloc_count;
|
||||
|
||||
/** Disassembled shader in a string. */
|
||||
char *disasm_string;
|
||||
};
|
||||
|
||||
struct ac_shader_config {
|
||||
unsigned num_sgprs;
|
||||
unsigned num_vgprs;
|
||||
unsigned spilled_sgprs;
|
||||
unsigned spilled_vgprs;
|
||||
unsigned lds_size;
|
||||
unsigned spi_ps_input_ena;
|
||||
unsigned spi_ps_input_addr;
|
||||
unsigned float_mode;
|
||||
unsigned scratch_bytes_per_wave;
|
||||
};
|
||||
|
||||
/*
|
||||
* Parse the elf binary stored in \p elf_data and create a
|
||||
* ac_shader_binary object.
|
||||
*/
|
||||
void ac_elf_read(const char *elf_data, unsigned elf_size,
|
||||
struct ac_shader_binary *binary);
|
||||
|
||||
void ac_shader_binary_read_config(struct ac_shader_binary *binary,
|
||||
struct ac_shader_config *conf,
|
||||
unsigned symbol_offset);
|
@@ -1,376 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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
|
||||
* on 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 above copyright notice and this permission notice (including the next
|
||||
* paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHOR(S) AND/OR THEIR 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.
|
||||
*
|
||||
* Authors:
|
||||
* Marek Olšák <maraeo@gmail.com>
|
||||
*/
|
||||
|
||||
#include "ac_debug.h"
|
||||
|
||||
#include "sid.h"
|
||||
#include "sid_tables.h"
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_memory.h"
|
||||
|
||||
/* Parsed IBs are difficult to read without colors. Use "less -R file" to
|
||||
* read them, or use "aha -b -f file" to convert them to html.
|
||||
*/
|
||||
#define COLOR_RESET "\033[0m"
|
||||
#define COLOR_RED "\033[31m"
|
||||
#define COLOR_GREEN "\033[1;32m"
|
||||
#define COLOR_YELLOW "\033[1;33m"
|
||||
#define COLOR_CYAN "\033[1;36m"
|
||||
|
||||
#define INDENT_PKT 8
|
||||
|
||||
static void print_spaces(FILE *f, unsigned num)
|
||||
{
|
||||
fprintf(f, "%*s", num, "");
|
||||
}
|
||||
|
||||
static void print_value(FILE *file, uint32_t value, int bits)
|
||||
{
|
||||
/* Guess if it's int or float */
|
||||
if (value <= (1 << 15)) {
|
||||
if (value <= 9)
|
||||
fprintf(file, "%u\n", value);
|
||||
else
|
||||
fprintf(file, "%u (0x%0*x)\n", value, bits / 4, value);
|
||||
} else {
|
||||
float f = uif(value);
|
||||
|
||||
if (fabs(f) < 100000 && f*10 == floor(f*10))
|
||||
fprintf(file, "%.1ff (0x%0*x)\n", f, bits / 4, value);
|
||||
else
|
||||
/* Don't print more leading zeros than there are bits. */
|
||||
fprintf(file, "0x%0*x\n", bits / 4, value);
|
||||
}
|
||||
}
|
||||
|
||||
static void print_named_value(FILE *file, const char *name, uint32_t value,
|
||||
int bits)
|
||||
{
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "%s" COLOR_RESET " <- ", name);
|
||||
print_value(file, value, bits);
|
||||
}
|
||||
|
||||
void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
|
||||
uint32_t field_mask)
|
||||
{
|
||||
int r, f;
|
||||
|
||||
for (r = 0; r < ARRAY_SIZE(sid_reg_table); r++) {
|
||||
const struct si_reg *reg = &sid_reg_table[r];
|
||||
const char *reg_name = sid_strings + reg->name_offset;
|
||||
|
||||
if (reg->offset == offset) {
|
||||
bool first_field = true;
|
||||
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "%s" COLOR_RESET " <- ",
|
||||
reg_name);
|
||||
|
||||
if (!reg->num_fields) {
|
||||
print_value(file, value, 32);
|
||||
return;
|
||||
}
|
||||
|
||||
for (f = 0; f < reg->num_fields; f++) {
|
||||
const struct si_field *field = sid_fields_table + reg->fields_offset + f;
|
||||
const int *values_offsets = sid_strings_offsets + field->values_offset;
|
||||
uint32_t val = (value & field->mask) >>
|
||||
(ffs(field->mask) - 1);
|
||||
|
||||
if (!(field->mask & field_mask))
|
||||
continue;
|
||||
|
||||
/* Indent the field. */
|
||||
if (!first_field)
|
||||
print_spaces(file,
|
||||
INDENT_PKT + strlen(reg_name) + 4);
|
||||
|
||||
/* Print the field. */
|
||||
fprintf(file, "%s = ", sid_strings + field->name_offset);
|
||||
|
||||
if (val < field->num_values && values_offsets[val] >= 0)
|
||||
fprintf(file, "%s\n", sid_strings + values_offsets[val]);
|
||||
else
|
||||
print_value(file, val,
|
||||
util_bitcount(field->mask));
|
||||
|
||||
first_field = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "0x%05x" COLOR_RESET " <- 0x%08x\n", offset, value);
|
||||
}
|
||||
|
||||
static void ac_parse_set_reg_packet(FILE *f, uint32_t *ib, unsigned count,
|
||||
unsigned reg_offset)
|
||||
{
|
||||
unsigned reg = (ib[1] << 2) + reg_offset;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
ac_dump_reg(f, reg + i*4, ib[2+i], ~0);
|
||||
}
|
||||
|
||||
static uint32_t *ac_parse_packet3(FILE *f, uint32_t *ib, int *num_dw,
|
||||
int trace_id, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback,
|
||||
void *addr_callback_data)
|
||||
{
|
||||
unsigned count = PKT_COUNT_G(ib[0]);
|
||||
unsigned op = PKT3_IT_OPCODE_G(ib[0]);
|
||||
const char *predicate = PKT3_PREDICATE(ib[0]) ? "(predicate)" : "";
|
||||
int i;
|
||||
|
||||
/* Print the name first. */
|
||||
for (i = 0; i < ARRAY_SIZE(packet3_table); i++)
|
||||
if (packet3_table[i].op == op)
|
||||
break;
|
||||
|
||||
if (i < ARRAY_SIZE(packet3_table)) {
|
||||
const char *name = sid_strings + packet3_table[i].name_offset;
|
||||
|
||||
if (op == PKT3_SET_CONTEXT_REG ||
|
||||
op == PKT3_SET_CONFIG_REG ||
|
||||
op == PKT3_SET_UCONFIG_REG ||
|
||||
op == PKT3_SET_SH_REG)
|
||||
fprintf(f, COLOR_CYAN "%s%s" COLOR_CYAN ":\n",
|
||||
name, predicate);
|
||||
else
|
||||
fprintf(f, COLOR_GREEN "%s%s" COLOR_RESET ":\n",
|
||||
name, predicate);
|
||||
} else
|
||||
fprintf(f, COLOR_RED "PKT3_UNKNOWN 0x%x%s" COLOR_RESET ":\n",
|
||||
op, predicate);
|
||||
|
||||
/* Print the contents. */
|
||||
switch (op) {
|
||||
case PKT3_SET_CONTEXT_REG:
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_CONTEXT_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_CONFIG_REG:
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_CONFIG_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_UCONFIG_REG:
|
||||
ac_parse_set_reg_packet(f, ib, count, CIK_UCONFIG_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_SH_REG:
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_SH_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_ACQUIRE_MEM:
|
||||
ac_dump_reg(f, R_0301F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0301F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_030230_CP_COHER_SIZE_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_0301F8_CP_COHER_BASE, ib[4], ~0);
|
||||
ac_dump_reg(f, R_0301E4_CP_COHER_BASE_HI, ib[5], ~0);
|
||||
print_named_value(f, "POLL_INTERVAL", ib[6], 16);
|
||||
break;
|
||||
case PKT3_SURFACE_SYNC:
|
||||
if (chip_class >= CIK) {
|
||||
ac_dump_reg(f, R_0301F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0301F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0301F8_CP_COHER_BASE, ib[3], ~0);
|
||||
} else {
|
||||
ac_dump_reg(f, R_0085F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0085F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0085F8_CP_COHER_BASE, ib[3], ~0);
|
||||
}
|
||||
print_named_value(f, "POLL_INTERVAL", ib[4], 16);
|
||||
break;
|
||||
case PKT3_EVENT_WRITE:
|
||||
ac_dump_reg(f, R_028A90_VGT_EVENT_INITIATOR, ib[1],
|
||||
S_028A90_EVENT_TYPE(~0));
|
||||
print_named_value(f, "EVENT_INDEX", (ib[1] >> 8) & 0xf, 4);
|
||||
print_named_value(f, "INV_L2", (ib[1] >> 20) & 0x1, 1);
|
||||
if (count > 0) {
|
||||
print_named_value(f, "ADDRESS_LO", ib[2], 32);
|
||||
print_named_value(f, "ADDRESS_HI", ib[3], 16);
|
||||
}
|
||||
break;
|
||||
case PKT3_DRAW_INDEX_AUTO:
|
||||
ac_dump_reg(f, R_030930_VGT_NUM_INDICES, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0287F0_VGT_DRAW_INITIATOR, ib[2], ~0);
|
||||
break;
|
||||
case PKT3_DRAW_INDEX_2:
|
||||
ac_dump_reg(f, R_028A78_VGT_DMA_MAX_SIZE, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0287E8_VGT_DMA_BASE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0287E4_VGT_DMA_BASE_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_030930_VGT_NUM_INDICES, ib[4], ~0);
|
||||
ac_dump_reg(f, R_0287F0_VGT_DRAW_INITIATOR, ib[5], ~0);
|
||||
break;
|
||||
case PKT3_INDEX_TYPE:
|
||||
ac_dump_reg(f, R_028A7C_VGT_DMA_INDEX_TYPE, ib[1], ~0);
|
||||
break;
|
||||
case PKT3_NUM_INSTANCES:
|
||||
ac_dump_reg(f, R_030934_VGT_NUM_INSTANCES, ib[1], ~0);
|
||||
break;
|
||||
case PKT3_WRITE_DATA:
|
||||
ac_dump_reg(f, R_370_CONTROL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_371_DST_ADDR_LO, ib[2], ~0);
|
||||
ac_dump_reg(f, R_372_DST_ADDR_HI, ib[3], ~0);
|
||||
for (i = 2; i < count; i++) {
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, "0x%08x\n", ib[2+i]);
|
||||
}
|
||||
break;
|
||||
case PKT3_CP_DMA:
|
||||
ac_dump_reg(f, R_410_CP_DMA_WORD0, ib[1], ~0);
|
||||
ac_dump_reg(f, R_411_CP_DMA_WORD1, ib[2], ~0);
|
||||
ac_dump_reg(f, R_412_CP_DMA_WORD2, ib[3], ~0);
|
||||
ac_dump_reg(f, R_413_CP_DMA_WORD3, ib[4], ~0);
|
||||
ac_dump_reg(f, R_414_COMMAND, ib[5], ~0);
|
||||
break;
|
||||
case PKT3_DMA_DATA:
|
||||
ac_dump_reg(f, R_500_DMA_DATA_WORD0, ib[1], ~0);
|
||||
ac_dump_reg(f, R_501_SRC_ADDR_LO, ib[2], ~0);
|
||||
ac_dump_reg(f, R_502_SRC_ADDR_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_503_DST_ADDR_LO, ib[4], ~0);
|
||||
ac_dump_reg(f, R_504_DST_ADDR_HI, ib[5], ~0);
|
||||
ac_dump_reg(f, R_414_COMMAND, ib[6], ~0);
|
||||
break;
|
||||
case PKT3_INDIRECT_BUFFER_SI:
|
||||
case PKT3_INDIRECT_BUFFER_CONST:
|
||||
case PKT3_INDIRECT_BUFFER_CIK:
|
||||
ac_dump_reg(f, R_3F0_IB_BASE_LO, ib[1], ~0);
|
||||
ac_dump_reg(f, R_3F1_IB_BASE_HI, ib[2], ~0);
|
||||
ac_dump_reg(f, R_3F2_CONTROL, ib[3], ~0);
|
||||
|
||||
if (addr_callback) {
|
||||
uint64_t addr = ((uint64_t)ib[2] << 32) | ib[1];
|
||||
void *data = addr_callback(addr_callback_data, addr);
|
||||
const char *name = G_3F2_CHAIN(ib[3]) ? "chained" : "nested";
|
||||
|
||||
if (data)
|
||||
ac_parse_ib(f, data, G_3F2_IB_SIZE(ib[3]),
|
||||
trace_id, name, chip_class,
|
||||
addr_callback, addr_callback_data);
|
||||
}
|
||||
break;
|
||||
case PKT3_CLEAR_STATE:
|
||||
case PKT3_INCREMENT_DE_COUNTER:
|
||||
case PKT3_PFP_SYNC_ME:
|
||||
break;
|
||||
case PKT3_NOP:
|
||||
if (ib[0] == 0xffff1000) {
|
||||
count = -1; /* One dword NOP. */
|
||||
break;
|
||||
} else if (count == 0 && AC_IS_TRACE_POINT(ib[1])) {
|
||||
unsigned packet_id = AC_GET_TRACE_POINT_ID(ib[1]);
|
||||
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, COLOR_RED "Trace point ID: %u\n", packet_id);
|
||||
|
||||
if (trace_id == -1)
|
||||
break; /* tracing was disabled */
|
||||
|
||||
print_spaces(f, INDENT_PKT);
|
||||
if (packet_id < trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"This trace point was reached by the CP."
|
||||
COLOR_RESET "\n");
|
||||
else if (packet_id == trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"!!!!! This is the last trace point that "
|
||||
"was reached by the CP !!!!!"
|
||||
COLOR_RESET "\n");
|
||||
else if (packet_id+1 == trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"!!!!! This is the first trace point that "
|
||||
"was NOT been reached by the CP !!!!!"
|
||||
COLOR_RESET "\n");
|
||||
else
|
||||
fprintf(f, COLOR_RED
|
||||
"!!!!! This trace point was NOT reached "
|
||||
"by the CP !!!!!"
|
||||
COLOR_RESET "\n");
|
||||
break;
|
||||
}
|
||||
/* fall through, print all dwords */
|
||||
default:
|
||||
for (i = 0; i < count+1; i++) {
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, "0x%08x\n", ib[1+i]);
|
||||
}
|
||||
}
|
||||
|
||||
ib += count + 2;
|
||||
*num_dw -= count + 2;
|
||||
return ib;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse and print an IB into a file.
|
||||
*
|
||||
* \param f file
|
||||
* \param ib IB
|
||||
* \param num_dw size of the IB
|
||||
* \param chip_class chip class
|
||||
* \param trace_id the last trace ID that is known to have been reached
|
||||
* and executed by the CP, typically read from a buffer
|
||||
* \param addr_callback Get a mapped pointer of the IB at a given address. Can
|
||||
* be NULL.
|
||||
* \param addr_callback_data user data for addr_callback
|
||||
*/
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, int trace_id,
|
||||
const char *name, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data)
|
||||
{
|
||||
fprintf(f, "------------------ %s begin ------------------\n", name);
|
||||
|
||||
while (num_dw > 0) {
|
||||
unsigned type = PKT_TYPE_G(ib[0]);
|
||||
|
||||
switch (type) {
|
||||
case 3:
|
||||
ib = ac_parse_packet3(f, ib, &num_dw, trace_id,
|
||||
chip_class, addr_callback,
|
||||
addr_callback_data);
|
||||
break;
|
||||
case 2:
|
||||
/* type-2 nop */
|
||||
if (ib[0] == 0x80000000) {
|
||||
fprintf(f, COLOR_GREEN "NOP (type 2)" COLOR_RESET "\n");
|
||||
ib++;
|
||||
num_dw--;
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
default:
|
||||
fprintf(f, "Unknown packet type %i\n", type);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(f, "------------------- %s end -------------------\n", name);
|
||||
if (num_dw < 0) {
|
||||
printf("Packet ends after the end of IB.\n");
|
||||
exit(0);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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
|
||||
* on 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 above copyright notice and this permission notice (including the next
|
||||
* paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHOR(S) AND/OR THEIR 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.
|
||||
*
|
||||
* Authors:
|
||||
* Marek Olšák <maraeo@gmail.com>
|
||||
*/
|
||||
#ifndef AC_DEBUG_H
|
||||
#define AC_DEBUG_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "amd_family.h"
|
||||
|
||||
#define AC_ENCODE_TRACE_POINT(id) (0xcafe0000 | ((id) & 0xffff))
|
||||
#define AC_IS_TRACE_POINT(x) (((x) & 0xcafe0000) == 0xcafe0000)
|
||||
#define AC_GET_TRACE_POINT_ID(x) ((x) & 0xffff)
|
||||
|
||||
typedef void *(*ac_debug_addr_callback)(void *data, uint64_t addr);
|
||||
|
||||
void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
|
||||
uint32_t field_mask);
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, int trace_id,
|
||||
const char *name, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data);
|
||||
|
||||
#endif
|
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
* Copyright 2014 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/* based on Marek's patch to lp_bld_misc.cpp */
|
||||
|
||||
// Workaround http://llvm.org/PR23628
|
||||
#if HAVE_LLVM >= 0x0307
|
||||
# pragma push_macro("DEBUG")
|
||||
# undef DEBUG
|
||||
#endif
|
||||
|
||||
#include "ac_llvm_util.h"
|
||||
#include <llvm-c/Core.h>
|
||||
#include <llvm/Target/TargetOptions.h>
|
||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||
#include <llvm/IR/Attributes.h>
|
||||
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes)
|
||||
{
|
||||
llvm::Argument *A = llvm::unwrap<llvm::Argument>(val);
|
||||
llvm::AttrBuilder B;
|
||||
B.addDereferenceableAttr(bytes);
|
||||
A->addAttr(llvm::AttributeSet::get(A->getContext(), A->getArgNo() + 1, B));
|
||||
}
|
||||
|
||||
bool ac_is_sgpr_param(LLVMValueRef arg)
|
||||
{
|
||||
llvm::Argument *A = llvm::unwrap<llvm::Argument>(arg);
|
||||
llvm::AttributeSet AS = A->getParent()->getAttributes();
|
||||
unsigned ArgNo = A->getArgNo();
|
||||
return AS.hasAttribute(ArgNo + 1, llvm::Attribute::ByVal) ||
|
||||
AS.hasAttribute(ArgNo + 1, llvm::Attribute::InReg);
|
||||
}
|
@@ -1,506 +0,0 @@
|
||||
/*
|
||||
* Copyright 2014 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
/* based on pieces from si_pipe.c and radeon_llvm_emit.c */
|
||||
#include "ac_llvm_util.h"
|
||||
|
||||
#include <llvm-c/Core.h>
|
||||
|
||||
#include "c11/threads.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "util/bitscan.h"
|
||||
#include "util/macros.h"
|
||||
|
||||
static void ac_init_llvm_target()
|
||||
{
|
||||
#if HAVE_LLVM < 0x0307
|
||||
LLVMInitializeR600TargetInfo();
|
||||
LLVMInitializeR600Target();
|
||||
LLVMInitializeR600TargetMC();
|
||||
LLVMInitializeR600AsmPrinter();
|
||||
#else
|
||||
LLVMInitializeAMDGPUTargetInfo();
|
||||
LLVMInitializeAMDGPUTarget();
|
||||
LLVMInitializeAMDGPUTargetMC();
|
||||
LLVMInitializeAMDGPUAsmPrinter();
|
||||
#endif
|
||||
}
|
||||
|
||||
static once_flag ac_init_llvm_target_once_flag = ONCE_FLAG_INIT;
|
||||
|
||||
static LLVMTargetRef ac_get_llvm_target(const char *triple)
|
||||
{
|
||||
LLVMTargetRef target = NULL;
|
||||
char *err_message = NULL;
|
||||
|
||||
call_once(&ac_init_llvm_target_once_flag, ac_init_llvm_target);
|
||||
|
||||
if (LLVMGetTargetFromTriple(triple, &target, &err_message)) {
|
||||
fprintf(stderr, "Cannot find target for triple %s ", triple);
|
||||
if (err_message) {
|
||||
fprintf(stderr, "%s\n", err_message);
|
||||
}
|
||||
LLVMDisposeMessage(err_message);
|
||||
return NULL;
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
static const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||
{
|
||||
switch (family) {
|
||||
case CHIP_TAHITI:
|
||||
return "tahiti";
|
||||
case CHIP_PITCAIRN:
|
||||
return "pitcairn";
|
||||
case CHIP_VERDE:
|
||||
return "verde";
|
||||
case CHIP_OLAND:
|
||||
return "oland";
|
||||
case CHIP_HAINAN:
|
||||
return "hainan";
|
||||
case CHIP_BONAIRE:
|
||||
return "bonaire";
|
||||
case CHIP_KABINI:
|
||||
return "kabini";
|
||||
case CHIP_KAVERI:
|
||||
return "kaveri";
|
||||
case CHIP_HAWAII:
|
||||
return "hawaii";
|
||||
case CHIP_MULLINS:
|
||||
return "mullins";
|
||||
case CHIP_TONGA:
|
||||
return "tonga";
|
||||
case CHIP_ICELAND:
|
||||
return "iceland";
|
||||
case CHIP_CARRIZO:
|
||||
return "carrizo";
|
||||
#if HAVE_LLVM <= 0x0307
|
||||
case CHIP_FIJI:
|
||||
return "tonga";
|
||||
case CHIP_STONEY:
|
||||
return "carrizo";
|
||||
#else
|
||||
case CHIP_FIJI:
|
||||
return "fiji";
|
||||
case CHIP_STONEY:
|
||||
return "stoney";
|
||||
#endif
|
||||
#if HAVE_LLVM <= 0x0308
|
||||
case CHIP_POLARIS10:
|
||||
return "tonga";
|
||||
case CHIP_POLARIS11:
|
||||
return "tonga";
|
||||
#else
|
||||
case CHIP_POLARIS10:
|
||||
return "polaris10";
|
||||
case CHIP_POLARIS11:
|
||||
return "polaris11";
|
||||
#endif
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family)
|
||||
{
|
||||
assert(family >= CHIP_TAHITI);
|
||||
|
||||
const char *triple = "amdgcn--";
|
||||
LLVMTargetRef target = ac_get_llvm_target(triple);
|
||||
LLVMTargetMachineRef tm = LLVMCreateTargetMachine(
|
||||
target,
|
||||
triple,
|
||||
ac_get_llvm_processor_name(family),
|
||||
"+DumpCode,+vgpr-spilling",
|
||||
LLVMCodeGenLevelDefault,
|
||||
LLVMRelocDefault,
|
||||
LLVMCodeModelDefault);
|
||||
|
||||
return tm;
|
||||
}
|
||||
|
||||
/* Initialize module-independent parts of the context.
|
||||
*
|
||||
* The caller is responsible for initializing ctx::module and ctx::builder.
|
||||
*/
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context)
|
||||
{
|
||||
LLVMValueRef args[1];
|
||||
|
||||
ctx->context = context;
|
||||
ctx->module = NULL;
|
||||
ctx->builder = NULL;
|
||||
|
||||
ctx->i32 = LLVMIntTypeInContext(ctx->context, 32);
|
||||
ctx->f32 = LLVMFloatTypeInContext(ctx->context);
|
||||
|
||||
ctx->fpmath_md_kind = LLVMGetMDKindIDInContext(ctx->context, "fpmath", 6);
|
||||
|
||||
args[0] = LLVMConstReal(ctx->f32, 2.5);
|
||||
ctx->fpmath_md_2p5_ulp = LLVMMDNodeInContext(ctx->context, args, 1);
|
||||
}
|
||||
|
||||
#if HAVE_LLVM < 0x0400
|
||||
static LLVMAttribute ac_attr_to_llvm_attr(enum ac_func_attr attr)
|
||||
{
|
||||
switch (attr) {
|
||||
case AC_FUNC_ATTR_ALWAYSINLINE: return LLVMAlwaysInlineAttribute;
|
||||
case AC_FUNC_ATTR_BYVAL: return LLVMByValAttribute;
|
||||
case AC_FUNC_ATTR_INREG: return LLVMInRegAttribute;
|
||||
case AC_FUNC_ATTR_NOALIAS: return LLVMNoAliasAttribute;
|
||||
case AC_FUNC_ATTR_NOUNWIND: return LLVMNoUnwindAttribute;
|
||||
case AC_FUNC_ATTR_READNONE: return LLVMReadNoneAttribute;
|
||||
case AC_FUNC_ATTR_READONLY: return LLVMReadOnlyAttribute;
|
||||
default:
|
||||
fprintf(stderr, "Unhandled function attribute: %x\n", attr);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static const char *attr_to_str(enum ac_func_attr attr)
|
||||
{
|
||||
switch (attr) {
|
||||
case AC_FUNC_ATTR_ALWAYSINLINE: return "alwaysinline";
|
||||
case AC_FUNC_ATTR_BYVAL: return "byval";
|
||||
case AC_FUNC_ATTR_INREG: return "inreg";
|
||||
case AC_FUNC_ATTR_NOALIAS: return "noalias";
|
||||
case AC_FUNC_ATTR_NOUNWIND: return "nounwind";
|
||||
case AC_FUNC_ATTR_READNONE: return "readnone";
|
||||
case AC_FUNC_ATTR_READONLY: return "readonly";
|
||||
default:
|
||||
fprintf(stderr, "Unhandled function attribute: %x\n", attr);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
ac_add_function_attr(LLVMValueRef function,
|
||||
int attr_idx,
|
||||
enum ac_func_attr attr)
|
||||
{
|
||||
|
||||
#if HAVE_LLVM < 0x0400
|
||||
LLVMAttribute llvm_attr = ac_attr_to_llvm_attr(attr);
|
||||
if (attr_idx == -1) {
|
||||
LLVMAddFunctionAttr(function, llvm_attr);
|
||||
} else {
|
||||
LLVMAddAttribute(LLVMGetParam(function, attr_idx - 1), llvm_attr);
|
||||
}
|
||||
#else
|
||||
LLVMContextRef context = LLVMGetModuleContext(LLVMGetGlobalParent(function));
|
||||
const char *attr_name = attr_to_str(attr);
|
||||
unsigned kind_id = LLVMGetEnumAttributeKindForName(attr_name,
|
||||
strlen(attr_name));
|
||||
LLVMAttributeRef llvm_attr = LLVMCreateEnumAttribute(context, kind_id, 0);
|
||||
LLVMAddAttributeAtIndex(function, attr_idx, llvm_attr);
|
||||
#endif
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_emit_llvm_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
LLVMTypeRef return_type, LLVMValueRef *params,
|
||||
unsigned param_count, unsigned attrib_mask)
|
||||
{
|
||||
LLVMValueRef function;
|
||||
|
||||
function = LLVMGetNamedFunction(ctx->module, name);
|
||||
if (!function) {
|
||||
LLVMTypeRef param_types[32], function_type;
|
||||
unsigned i;
|
||||
|
||||
assert(param_count <= 32);
|
||||
|
||||
for (i = 0; i < param_count; ++i) {
|
||||
assert(params[i]);
|
||||
param_types[i] = LLVMTypeOf(params[i]);
|
||||
}
|
||||
function_type =
|
||||
LLVMFunctionType(return_type, param_types, param_count, 0);
|
||||
function = LLVMAddFunction(ctx->module, name, function_type);
|
||||
|
||||
LLVMSetFunctionCallConv(function, LLVMCCallConv);
|
||||
LLVMSetLinkage(function, LLVMExternalLinkage);
|
||||
|
||||
attrib_mask |= AC_FUNC_ATTR_NOUNWIND;
|
||||
while (attrib_mask) {
|
||||
enum ac_func_attr attr = 1u << u_bit_scan(&attrib_mask);
|
||||
ac_add_function_attr(function, -1, attr);
|
||||
}
|
||||
}
|
||||
return LLVMBuildCall(ctx->builder, function, params, param_count, "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count,
|
||||
unsigned value_stride,
|
||||
bool load)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef vec;
|
||||
unsigned i;
|
||||
|
||||
|
||||
if (value_count == 1) {
|
||||
if (load)
|
||||
return LLVMBuildLoad(builder, values[0], "");
|
||||
return values[0];
|
||||
} else if (!value_count)
|
||||
unreachable("value_count is 0");
|
||||
|
||||
for (i = 0; i < value_count; i++) {
|
||||
LLVMValueRef value = values[i * value_stride];
|
||||
if (load)
|
||||
value = LLVMBuildLoad(builder, value, "");
|
||||
|
||||
if (!i)
|
||||
vec = LLVMGetUndef( LLVMVectorType(LLVMTypeOf(value), value_count));
|
||||
LLVMValueRef index = LLVMConstInt(ctx->i32, i, false);
|
||||
vec = LLVMBuildInsertElement(builder, vec, value, index, "");
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count)
|
||||
{
|
||||
return ac_build_gather_values_extended(ctx, values, value_count, 1, false);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_emit_fdiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef den)
|
||||
{
|
||||
LLVMValueRef ret = LLVMBuildFDiv(ctx->builder, num, den, "");
|
||||
|
||||
if (!LLVMIsConstant(ret))
|
||||
LLVMSetMetadata(ret, ctx->fpmath_md_kind, ctx->fpmath_md_2p5_ulp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Coordinates for cube map selection. sc, tc, and ma are as in Table 8.27
|
||||
* of the OpenGL 4.5 (Compatibility Profile) specification, except ma is
|
||||
* already multiplied by two. id is the cube face number.
|
||||
*/
|
||||
struct cube_selection_coords {
|
||||
LLVMValueRef stc[2];
|
||||
LLVMValueRef ma;
|
||||
LLVMValueRef id;
|
||||
};
|
||||
|
||||
static void
|
||||
build_cube_intrinsic(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef in[3],
|
||||
struct cube_selection_coords *out)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
|
||||
if (HAVE_LLVM >= 0x0309) {
|
||||
LLVMTypeRef f32 = ctx->f32;
|
||||
|
||||
out->stc[1] = ac_emit_llvm_intrinsic(ctx, "llvm.amdgcn.cubetc",
|
||||
f32, in, 3, AC_FUNC_ATTR_READNONE);
|
||||
out->stc[0] = ac_emit_llvm_intrinsic(ctx, "llvm.amdgcn.cubesc",
|
||||
f32, in, 3, AC_FUNC_ATTR_READNONE);
|
||||
out->ma = ac_emit_llvm_intrinsic(ctx, "llvm.amdgcn.cubema",
|
||||
f32, in, 3, AC_FUNC_ATTR_READNONE);
|
||||
out->id = ac_emit_llvm_intrinsic(ctx, "llvm.amdgcn.cubeid",
|
||||
f32, in, 3, AC_FUNC_ATTR_READNONE);
|
||||
} else {
|
||||
LLVMValueRef c[4] = {
|
||||
in[0],
|
||||
in[1],
|
||||
in[2],
|
||||
LLVMGetUndef(LLVMTypeOf(in[0]))
|
||||
};
|
||||
LLVMValueRef vec = ac_build_gather_values(ctx, c, 4);
|
||||
|
||||
LLVMValueRef tmp =
|
||||
ac_emit_llvm_intrinsic(ctx, "llvm.AMDGPU.cube",
|
||||
LLVMTypeOf(vec), &vec, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
|
||||
out->stc[1] = LLVMBuildExtractElement(builder, tmp,
|
||||
LLVMConstInt(ctx->i32, 0, 0), "");
|
||||
out->stc[0] = LLVMBuildExtractElement(builder, tmp,
|
||||
LLVMConstInt(ctx->i32, 1, 0), "");
|
||||
out->ma = LLVMBuildExtractElement(builder, tmp,
|
||||
LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
out->id = LLVMBuildExtractElement(builder, tmp,
|
||||
LLVMConstInt(ctx->i32, 3, 0), "");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a manual selection sequence for cube face sc/tc coordinates and
|
||||
* major axis vector (multiplied by 2 for consistency) for the given
|
||||
* vec3 \p coords, for the face implied by \p selcoords.
|
||||
*
|
||||
* For the major axis, we always adjust the sign to be in the direction of
|
||||
* selcoords.ma; i.e., a positive out_ma means that coords is pointed towards
|
||||
* the selcoords major axis.
|
||||
*/
|
||||
static void build_cube_select(LLVMBuilderRef builder,
|
||||
const struct cube_selection_coords *selcoords,
|
||||
const LLVMValueRef *coords,
|
||||
LLVMValueRef *out_st,
|
||||
LLVMValueRef *out_ma)
|
||||
{
|
||||
LLVMTypeRef f32 = LLVMTypeOf(coords[0]);
|
||||
LLVMValueRef is_ma_positive;
|
||||
LLVMValueRef sgn_ma;
|
||||
LLVMValueRef is_ma_z, is_not_ma_z;
|
||||
LLVMValueRef is_ma_y;
|
||||
LLVMValueRef is_ma_x;
|
||||
LLVMValueRef sgn;
|
||||
LLVMValueRef tmp;
|
||||
|
||||
is_ma_positive = LLVMBuildFCmp(builder, LLVMRealUGE,
|
||||
selcoords->ma, LLVMConstReal(f32, 0.0), "");
|
||||
sgn_ma = LLVMBuildSelect(builder, is_ma_positive,
|
||||
LLVMConstReal(f32, 1.0), LLVMConstReal(f32, -1.0), "");
|
||||
|
||||
is_ma_z = LLVMBuildFCmp(builder, LLVMRealUGE, selcoords->id, LLVMConstReal(f32, 4.0), "");
|
||||
is_not_ma_z = LLVMBuildNot(builder, is_ma_z, "");
|
||||
is_ma_y = LLVMBuildAnd(builder, is_not_ma_z,
|
||||
LLVMBuildFCmp(builder, LLVMRealUGE, selcoords->id, LLVMConstReal(f32, 2.0), ""), "");
|
||||
is_ma_x = LLVMBuildAnd(builder, is_not_ma_z, LLVMBuildNot(builder, is_ma_y, ""), "");
|
||||
|
||||
/* Select sc */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_z, coords[2], coords[0], "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_y, LLVMConstReal(f32, 1.0),
|
||||
LLVMBuildSelect(builder, is_ma_x, sgn_ma,
|
||||
LLVMBuildFNeg(builder, sgn_ma, ""), ""), "");
|
||||
out_st[0] = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
|
||||
/* Select tc */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_y, coords[2], coords[1], "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_y, LLVMBuildFNeg(builder, sgn_ma, ""),
|
||||
LLVMConstReal(f32, -1.0), "");
|
||||
out_st[1] = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
|
||||
/* Select ma */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_z, coords[2],
|
||||
LLVMBuildSelect(builder, is_ma_y, coords[1], coords[0], ""), "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_positive,
|
||||
LLVMConstReal(f32, 2.0), LLVMConstReal(f32, -2.0), "");
|
||||
*out_ma = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
}
|
||||
|
||||
void
|
||||
ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
bool is_deriv, bool is_array,
|
||||
LLVMValueRef *coords_arg,
|
||||
LLVMValueRef *derivs_arg)
|
||||
{
|
||||
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
struct cube_selection_coords selcoords;
|
||||
LLVMValueRef coords[3];
|
||||
LLVMValueRef invma;
|
||||
|
||||
build_cube_intrinsic(ctx, coords_arg, &selcoords);
|
||||
|
||||
invma = ac_emit_llvm_intrinsic(ctx, "llvm.fabs.f32",
|
||||
ctx->f32, &selcoords.ma, 1, AC_FUNC_ATTR_READNONE);
|
||||
invma = ac_emit_fdiv(ctx, LLVMConstReal(ctx->f32, 1.0), invma);
|
||||
|
||||
for (int i = 0; i < 2; ++i)
|
||||
coords[i] = LLVMBuildFMul(builder, selcoords.stc[i], invma, "");
|
||||
|
||||
coords[2] = selcoords.id;
|
||||
|
||||
if (is_deriv && derivs_arg) {
|
||||
LLVMValueRef derivs[4];
|
||||
int axis;
|
||||
|
||||
/* Convert cube derivatives to 2D derivatives. */
|
||||
for (axis = 0; axis < 2; axis++) {
|
||||
LLVMValueRef deriv_st[2];
|
||||
LLVMValueRef deriv_ma;
|
||||
|
||||
/* Transform the derivative alongside the texture
|
||||
* coordinate. Mathematically, the correct formula is
|
||||
* as follows. Assume we're projecting onto the +Z face
|
||||
* and denote by dx/dh the derivative of the (original)
|
||||
* X texture coordinate with respect to horizontal
|
||||
* window coordinates. The projection onto the +Z face
|
||||
* plane is:
|
||||
*
|
||||
* f(x,z) = x/z
|
||||
*
|
||||
* Then df/dh = df/dx * dx/dh + df/dz * dz/dh
|
||||
* = 1/z * dx/dh - x/z * 1/z * dz/dh.
|
||||
*
|
||||
* This motivatives the implementation below.
|
||||
*
|
||||
* Whether this actually gives the expected results for
|
||||
* apps that might feed in derivatives obtained via
|
||||
* finite differences is anyone's guess. The OpenGL spec
|
||||
* seems awfully quiet about how textureGrad for cube
|
||||
* maps should be handled.
|
||||
*/
|
||||
build_cube_select(builder, &selcoords, &derivs_arg[axis * 3],
|
||||
deriv_st, &deriv_ma);
|
||||
|
||||
deriv_ma = LLVMBuildFMul(builder, deriv_ma, invma, "");
|
||||
|
||||
for (int i = 0; i < 2; ++i)
|
||||
derivs[axis * 2 + i] =
|
||||
LLVMBuildFSub(builder,
|
||||
LLVMBuildFMul(builder, deriv_st[i], invma, ""),
|
||||
LLVMBuildFMul(builder, deriv_ma, coords[i], ""), "");
|
||||
}
|
||||
|
||||
memcpy(derivs_arg, derivs, sizeof(derivs));
|
||||
}
|
||||
|
||||
/* Shift the texture coordinate. This must be applied after the
|
||||
* derivative calculation.
|
||||
*/
|
||||
for (int i = 0; i < 2; ++i)
|
||||
coords[i] = LLVMBuildFAdd(builder, coords[i], LLVMConstReal(ctx->f32, 1.5), "");
|
||||
|
||||
if (is_array) {
|
||||
/* for cube arrays coord.z = coord.w(array_index) * 8 + face */
|
||||
/* coords_arg.w component - array_index for cube arrays */
|
||||
LLVMValueRef tmp = LLVMBuildFMul(ctx->builder, coords_arg[3], LLVMConstReal(ctx->f32, 8.0), "");
|
||||
coords[2] = LLVMBuildFAdd(ctx->builder, tmp, coords[2], "");
|
||||
}
|
||||
|
||||
memcpy(coords_arg, coords, sizeof(coords));
|
||||
}
|
@@ -1,100 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016 Bas Nieuwenhuizen
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <llvm-c/TargetMachine.h>
|
||||
|
||||
#include "amd_family.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum ac_func_attr {
|
||||
AC_FUNC_ATTR_ALWAYSINLINE = (1 << 0),
|
||||
AC_FUNC_ATTR_BYVAL = (1 << 1),
|
||||
AC_FUNC_ATTR_INREG = (1 << 2),
|
||||
AC_FUNC_ATTR_NOALIAS = (1 << 3),
|
||||
AC_FUNC_ATTR_NOUNWIND = (1 << 4),
|
||||
AC_FUNC_ATTR_READNONE = (1 << 5),
|
||||
AC_FUNC_ATTR_READONLY = (1 << 6),
|
||||
AC_FUNC_ATTR_LAST = (1 << 7)
|
||||
};
|
||||
|
||||
struct ac_llvm_context {
|
||||
LLVMContextRef context;
|
||||
LLVMModuleRef module;
|
||||
LLVMBuilderRef builder;
|
||||
|
||||
LLVMTypeRef i32;
|
||||
LLVMTypeRef f32;
|
||||
|
||||
unsigned fpmath_md_kind;
|
||||
LLVMValueRef fpmath_md_2p5_ulp;
|
||||
};
|
||||
|
||||
LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family);
|
||||
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes);
|
||||
bool ac_is_sgpr_param(LLVMValueRef param);
|
||||
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context);
|
||||
|
||||
void
|
||||
ac_add_function_attr(LLVMValueRef function,
|
||||
int attr_idx,
|
||||
enum ac_func_attr attr);
|
||||
LLVMValueRef
|
||||
ac_emit_llvm_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
LLVMTypeRef return_type, LLVMValueRef *params,
|
||||
unsigned param_count, unsigned attrib_mask);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count,
|
||||
unsigned value_stride,
|
||||
bool load);
|
||||
LLVMValueRef
|
||||
ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count);
|
||||
|
||||
LLVMValueRef
|
||||
ac_emit_fdiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef den);
|
||||
|
||||
void
|
||||
ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
bool is_deriv, bool is_array,
|
||||
LLVMValueRef *coords_arg,
|
||||
LLVMValueRef *derivs_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user