Compare commits
166 Commits
mesa-12.0.
...
mesa-11.2.
Author | SHA1 | Date | |
---|---|---|---|
|
3a9f6283f4 | ||
|
f6726607d7 | ||
|
f18e2921d7 | ||
|
069ade547f | ||
|
97fe75cee2 | ||
|
05cf948989 | ||
|
a50ff5dffc | ||
|
d613dd774c | ||
|
8679ca1674 | ||
|
3b8958e351 | ||
|
e8d5e82eb0 | ||
|
0a27c07d15 | ||
|
a407f06ef6 | ||
|
d12a19de60 | ||
|
4188b650be | ||
|
b2d9723ce3 | ||
|
8eec387c58 | ||
|
3705e4352f | ||
|
193c00911b | ||
|
0fe3462f88 | ||
|
8d1874bc1c | ||
|
143161ad97 | ||
|
b649b62abb | ||
|
556d741db7 | ||
|
ce5334292d | ||
|
2ab417ddbd | ||
|
95b47f70f9 | ||
|
82e369969a | ||
|
e8cde5fabe | ||
|
f20890c772 | ||
|
02420d0ad3 | ||
|
caeb947e03 | ||
|
d0ddf733c6 | ||
|
a12a9a5763 | ||
|
69bfd3b543 | ||
|
d2298c2495 | ||
|
8e33c96e88 | ||
|
c15dcb1a6b | ||
|
d41925215f | ||
|
7e3d4d7968 | ||
|
32c38ccc2c | ||
|
b89e525a72 | ||
|
822e9c15ec | ||
|
723a9bc10a | ||
|
fc9da64b3d | ||
|
521887482c | ||
|
1102ea7171 | ||
|
048247115b | ||
|
0b4a916ab0 | ||
|
79b0e13913 | ||
|
c65835d812 | ||
|
21e6440e82 | ||
|
696614cbff | ||
|
106c1facae | ||
|
fbdd845ed2 | ||
|
389d5bbc98 | ||
|
3840e67bf5 | ||
|
5b644f3a06 | ||
|
bbbcad4f0d | ||
|
b7bd6944c8 | ||
|
f03afb6200 | ||
|
a2898b6bbc | ||
|
4aaea22ee2 | ||
|
e54e1d31f3 | ||
|
672652a5a2 | ||
|
c5f8a41710 | ||
|
50013e5db8 | ||
|
63337abb8f | ||
|
e7fb889dcc | ||
|
ff9ddb9eb1 | ||
|
afe302be5f | ||
|
a948723233 | ||
|
4feb83ed5e | ||
|
3d262f0d43 | ||
|
9f86c735bb | ||
|
eee00e2c05 | ||
|
e8b521f824 | ||
|
2c7214bc03 | ||
|
bcb7e8b084 | ||
|
0efb7fb803 | ||
|
11654dda56 | ||
|
a715e4f40f | ||
|
afd4774721 | ||
|
864eba84dd | ||
|
98380e02d5 | ||
|
7ce73f2608 | ||
|
3b6bda665a | ||
|
c1763ec83c | ||
|
b4045c43ae | ||
|
9bcedb9553 | ||
|
4b83793283 | ||
|
b0ff22cce6 | ||
|
fa6debe633 | ||
|
db8df3ac13 | ||
|
06c15635ef | ||
|
582ae91e3a | ||
|
64cd74d3b5 | ||
|
6ac586ad88 | ||
|
2c592ae450 | ||
|
0cf5990385 | ||
|
d8dd8f30bd | ||
|
9de08603e7 | ||
|
a0268d6cb5 | ||
|
ed74d27034 | ||
|
aa422705dc | ||
|
f755b71f45 | ||
|
c64875ec68 | ||
|
017f647451 | ||
|
adec0763a9 | ||
|
b290082b45 | ||
|
9edda787f5 | ||
|
d9f03f7fa5 | ||
|
26620402b6 | ||
|
d867628244 | ||
|
1d760368ee | ||
|
938e6dfdee | ||
|
41dbfcd1cd | ||
|
1e9d8fa8a8 | ||
|
580cab2d99 | ||
|
9a5bcf1571 | ||
|
c693ddf731 | ||
|
7155c2441e | ||
|
9f21fdd8e6 | ||
|
3d32af2d59 | ||
|
c9da4f8966 | ||
|
a07e84278c | ||
|
feb1972a80 | ||
|
caa10464ab | ||
|
50c678c706 | ||
|
ae4a7a5962 | ||
|
d956cfebd5 | ||
|
d29f41e1ba | ||
|
eda0880f77 | ||
|
ac909bf6f7 | ||
|
7073248f2f | ||
|
33b045688d | ||
|
7d056d2ec9 | ||
|
188e698e1a | ||
|
6f561c535d | ||
|
5fb53ff66a | ||
|
aeacc86336 | ||
|
06bc8e2515 | ||
|
c1e82fcf96 | ||
|
c00a89eb16 | ||
|
579b22ac66 | ||
|
43834d463d | ||
|
bb83ce0664 | ||
|
1fa66f0d03 | ||
|
8238432c1f | ||
|
da4c0efcc9 | ||
|
e90098a9cf | ||
|
ebe784f884 | ||
|
68759f1da9 | ||
|
f074c40ba8 | ||
|
93f1e7f1b0 | ||
|
b405582f81 | ||
|
2b24f0bce3 | ||
|
dda76b8703 | ||
|
88931cd044 | ||
|
472b46dc14 | ||
|
abf09d1764 | ||
|
1cb2108d9b | ||
|
3610f677db | ||
|
2eaca4a4d8 | ||
|
96babdd7f3 | ||
|
35b7adb937 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -34,7 +34,6 @@ aclocal.m4
|
||||
config.log
|
||||
config.status
|
||||
cscope*
|
||||
tags
|
||||
.scon*
|
||||
config.py
|
||||
build
|
||||
@@ -47,5 +46,3 @@ manifest.txt
|
||||
Makefile
|
||||
Makefile.in
|
||||
.install-mesa-links
|
||||
.install-gallium-links
|
||||
/src/git_sha1.h
|
||||
|
460
.mailmap
460
.mailmap
@@ -1,460 +0,0 @@
|
||||
Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)>
|
||||
|
||||
Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net>
|
||||
Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
|
||||
|
||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
|
||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
|
||||
|
||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
|
||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain>
|
||||
|
||||
Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com>
|
||||
|
||||
Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com>
|
||||
Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk>
|
||||
Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)>
|
||||
|
||||
Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru>
|
||||
|
||||
Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com>
|
||||
|
||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com>
|
||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com>
|
||||
|
||||
Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com>
|
||||
Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
|
||||
|
||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
|
||||
|
||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
|
||||
|
||||
Andre Heider <a.heider@gmail.com>
|
||||
Andreas Heider <andreas@heider.io>
|
||||
|
||||
Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
|
||||
|
||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
|
||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
|
||||
|
||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
|
||||
|
||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
|
||||
|
||||
Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)>
|
||||
Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au>
|
||||
Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx>
|
||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com>
|
||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com>
|
||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain>
|
||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx>
|
||||
|
||||
Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
|
||||
|
||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
|
||||
|
||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
|
||||
|
||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
|
||||
Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com>
|
||||
Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com>
|
||||
Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org>
|
||||
Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)>
|
||||
Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com>
|
||||
Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com>
|
||||
Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
|
||||
|
||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
|
||||
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
|
||||
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 <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>
|
||||
|
||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
|
||||
|
||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
|
||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
|
||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
|
||||
|
||||
Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de>
|
||||
Christoph Brill <egore911@egore911.de> <egore@gmx.de>
|
||||
|
||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
|
||||
|
||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
|
||||
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
|
||||
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
|
||||
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
|
||||
|
||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
|
||||
|
||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
|
||||
|
||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
|
||||
|
||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> davem69 <davem69>
|
||||
|
||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
|
||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
|
||||
|
||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
|
||||
|
||||
Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
|
||||
|
||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
|
||||
|
||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
|
||||
|
||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
||||
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
||||
|
||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
||||
|
||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
|
||||
|
||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
|
||||
Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
|
||||
|
||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
|
||||
|
||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
|
||||
|
||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
|
||||
|
||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
|
||||
|
||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
|
||||
|
||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
|
||||
|
||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
|
||||
|
||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
|
||||
|
||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
|
||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
|
||||
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com>
|
||||
|
||||
Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
|
||||
|
||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
|
||||
|
||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
||||
|
||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
|
||||
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
|
||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
|
||||
|
||||
Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org>
|
||||
Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org>
|
||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)>
|
||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain>
|
||||
|
||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan>
|
||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)>
|
||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain>
|
||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)>
|
||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org>
|
||||
|
||||
Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com>
|
||||
Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)>
|
||||
|
||||
Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg>
|
||||
|
||||
Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com>
|
||||
|
||||
Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a>
|
||||
|
||||
Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk>
|
||||
|
||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com>
|
||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com>
|
||||
José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)>
|
||||
José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)>
|
||||
José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com>
|
||||
José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com>
|
||||
José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk>
|
||||
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl>
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl>
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)>
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl>
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)>
|
||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl>
|
||||
|
||||
Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
|
||||
|
||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
|
||||
|
||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
|
||||
|
||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
|
||||
|
||||
Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
|
||||
|
||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
|
||||
|
||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
|
||||
Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
|
||||
|
||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
|
||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
|
||||
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
|
||||
|
||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
|
||||
|
||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
|
||||
|
||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
|
||||
|
||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
|
||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com>
|
||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com>
|
||||
|
||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
|
||||
|
||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
|
||||
|
||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
|
||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
|
||||
|
||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.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>
|
||||
|
||||
Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com>
|
||||
|
||||
Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com>
|
||||
|
||||
Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr>
|
||||
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
|
||||
|
||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
|
||||
|
||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
|
||||
|
||||
Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com>
|
||||
|
||||
Michal Krol <michal@vmware.com> <michal@tungstengraphics.com>
|
||||
Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)>
|
||||
Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org>
|
||||
Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)>
|
||||
Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)>
|
||||
Michal Krol <michal@vmware.com> michal <michal@quad.(none)>
|
||||
Michal Krol <michal@vmware.com> michal <michal@transistor.(none)>
|
||||
Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com>
|
||||
Michal Krol <michal@vmware.com> michal <michal@wmvare.com>
|
||||
|
||||
Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com>
|
||||
Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com>
|
||||
Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com>
|
||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com>
|
||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)>
|
||||
|
||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com>
|
||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
|
||||
|
||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
|
||||
|
||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
|
||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
|
||||
|
||||
Nick Bowler <nbowler@draconx.ca>
|
||||
|
||||
Nick Sarnie <commendsarnex@gmail.com>
|
||||
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
|
||||
|
||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
|
||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
|
||||
|
||||
nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)>
|
||||
|
||||
Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com>
|
||||
|
||||
Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org>
|
||||
|
||||
Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain>
|
||||
|
||||
Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city>
|
||||
Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com>
|
||||
Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org>
|
||||
|
||||
Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com>
|
||||
|
||||
Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com>
|
||||
|
||||
Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com>
|
||||
|
||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com>
|
||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
|
||||
|
||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
|
||||
|
||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
|
||||
|
||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
|
||||
|
||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
|
||||
|
||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
|
||||
|
||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
|
||||
# The next ones are not 100% sure
|
||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
|
||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)>
|
||||
Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)>
|
||||
|
||||
Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
|
||||
|
||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
|
||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
|
||||
|
||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
|
||||
|
||||
Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)>
|
||||
Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
|
||||
|
||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
|
||||
|
||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
|
||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
|
||||
|
||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
|
||||
|
||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
|
||||
|
||||
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
|
||||
|
||||
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
|
||||
|
||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
|
||||
|
||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
|
||||
|
||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
|
||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
|
||||
|
||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
|
||||
|
||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
|
||||
|
||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
|
||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
|
||||
|
||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
|
||||
|
||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
|
||||
Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
|
||||
|
||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
|
||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
|
||||
|
||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
|
||||
|
||||
Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)>
|
||||
|
||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com>
|
||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
|
||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com>
|
||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com>
|
||||
|
||||
Thomas Tanner <tanner@gmx.net> tanner <tanner>
|
||||
|
||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
|
||||
|
||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
|
||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
|
||||
|
||||
Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
|
||||
|
||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
|
||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
|
||||
|
||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
|
||||
|
||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
|
||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
|
||||
|
||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
|
||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
|
||||
|
||||
Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
|
||||
|
||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
|
||||
|
||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
|
||||
|
||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
|
||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
|
||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
|
||||
|
||||
Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn>
|
@@ -83,13 +83,6 @@ LOCAL_CPPFLAGS += \
|
||||
-Wno-error=non-virtual-dtor \
|
||||
-Wno-non-virtual-dtor
|
||||
|
||||
ifeq ($(MESA_LOLLIPOP_BUILD),true)
|
||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
else
|
||||
LOCAL_CFLAGS += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
endif
|
||||
|
||||
# uncomment to keep the debug symbols
|
||||
#LOCAL_STRIP_MODULE := false
|
||||
|
||||
|
10
Android.mk
10
Android.mk
@@ -88,23 +88,19 @@ MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
|
||||
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
|
||||
|
||||
SUBDIRS := \
|
||||
src/gbm \
|
||||
src/loader \
|
||||
src/mapi \
|
||||
src/compiler \
|
||||
src/compiler/glsl \
|
||||
src/mesa \
|
||||
src/util \
|
||||
src/egl \
|
||||
src/intel/genxml \
|
||||
src/intel/isl \
|
||||
src/mesa/drivers/dri
|
||||
|
||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
|
||||
|
||||
ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
|
||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
|
||||
SUBDIRS += src/gallium
|
||||
endif
|
||||
|
||||
include $(INC_DIRS)
|
||||
include $(call all-named-subdir-makefiles,$(SUBDIRS))
|
||||
|
||||
endif
|
||||
|
@@ -22,20 +22,15 @@
|
||||
SUBDIRS = src
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-dri \
|
||||
--enable-dri3 \
|
||||
--enable-egl \
|
||||
--enable-gallium-tests \
|
||||
--enable-gallium-osmesa \
|
||||
--enable-gallium-llvm \
|
||||
--enable-gbm \
|
||||
--enable-gles1 \
|
||||
--enable-gles2 \
|
||||
--enable-glx \
|
||||
--enable-glx-tls \
|
||||
--enable-nine \
|
||||
--enable-opencl \
|
||||
--enable-opengl \
|
||||
--enable-va \
|
||||
--enable-vdpau \
|
||||
--enable-xa \
|
||||
@@ -43,8 +38,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--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 \
|
||||
--with-vulkan-drivers=intel
|
||||
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
|
106
REVIEWERS
106
REVIEWERS
@@ -1,106 +0,0 @@
|
||||
Overview:
|
||||
|
||||
This file is similar in syntax (or more precisly a subset) of what is
|
||||
used by the MAINTAINERS file in the linux kernel. Some fields do not
|
||||
apply, for example, in all cases, send patches to:
|
||||
|
||||
mesa-dev@lists.freedesktop.org
|
||||
|
||||
and in all cases the patchwork instance is:
|
||||
|
||||
https://patchwork.freedesktop.org/project/mesa/
|
||||
|
||||
The purpose is not exactly the same the MAINTAINERS file in the linux
|
||||
kernel, as there are not official/formal maintainers of different
|
||||
subsystems in mesa, but is meant to give an idea of who to CC for
|
||||
various patches for review, and to allow the use of
|
||||
scripts/get_reviewer.pl as git --cc-cmd.
|
||||
|
||||
Usage:
|
||||
|
||||
When sending patches:
|
||||
|
||||
git send-email --cc-cmd ./scripts/get_reviewer.pl ...
|
||||
|
||||
Or to configure as default:
|
||||
|
||||
git config sendemail.cccmd ./scripts/get_reviewer.pl
|
||||
|
||||
Descriptions of section entries:
|
||||
|
||||
R: Designated reviewer: FullName <address@domain>
|
||||
These reviewers should be CCed on patches.
|
||||
F: Files and directories with wildcard patterns.
|
||||
A trailing slash includes all files and subdirectory files.
|
||||
F: drivers/net/ all files in and below drivers/net
|
||||
F: drivers/net/* all files in drivers/net, but not below
|
||||
F: */net/* all files in "any top level directory"/net
|
||||
One pattern per line. Multiple F: lines acceptable.
|
||||
N: Files and directories with regex patterns.
|
||||
N: [^a-z]tegra all files whose path contains the word tegra
|
||||
One pattern per line. Multiple N: lines acceptable.
|
||||
scripts/get_maintainer.pl has different behavior for files that
|
||||
match F: pattern and matches of N: patterns. By default,
|
||||
get_maintainer will not look at git log history when an F: pattern
|
||||
match occurs. When an N: match occurs, git log history is used
|
||||
to also notify the people that have git commit signatures.
|
||||
|
||||
Maintainers List (try to look for most precise areas first)
|
||||
|
||||
Note: this is an opt-in system, I have not tried to add anyone who hasn't
|
||||
either asked me or sent a patch to add themselves.
|
||||
|
||||
-----------------------------------
|
||||
|
||||
NIR
|
||||
R: Jason Ekstrand <jason@jlekstrand.net>
|
||||
F: src/compiler/nir/
|
||||
|
||||
DOCUMENTATION
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: docs/
|
||||
F: doxygen/
|
||||
|
||||
COMPATIBILITY HEADERS
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: include/c99*
|
||||
|
||||
DRI LOADER
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/loader/
|
||||
|
||||
GALLIUM LOADER
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/gallium/auxiliary/pipe-loader/
|
||||
F: src/gallium/auxiliary/target-helpers/
|
||||
|
||||
GALLIUM TARGETS
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/gallium/targets/
|
||||
|
||||
AUTOCONF BUILD
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: configure.ac
|
||||
F: */Automake.inc
|
||||
F: */Makefile.*am
|
||||
F: */Makefile.sources
|
||||
|
||||
SCONS BUILD
|
||||
F: scons/
|
||||
F: */SConscript*
|
||||
F: */Makefile.sources
|
||||
|
||||
ANDROID BUILD
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: CleanSpec.mk
|
||||
F: */Android.*mk
|
||||
F: */Makefile.sources
|
||||
|
||||
WAYLAND EGL SUPPORT
|
||||
R: Daniel Stone <daniels@collabora.com>
|
||||
F: src/egl/wayland/*
|
||||
F: src/egl/drivers/dri2/platform_wayland.c
|
||||
|
||||
FREEDRENO
|
||||
R: Rob Clark <robclark@freedesktop.org>
|
||||
F: src/gallium/drivers/freedreno/
|
19
SConstruct
19
SConstruct
@@ -1,7 +1,7 @@
|
||||
#######################################################################
|
||||
# Top-level SConstruct
|
||||
#
|
||||
# For example, invoke scons as
|
||||
# For example, invoke scons as
|
||||
#
|
||||
# scons build=debug llvm=yes machine=x86
|
||||
#
|
||||
@@ -12,13 +12,13 @@
|
||||
# build='debug'
|
||||
# llvm=True
|
||||
# machine='x86'
|
||||
#
|
||||
#
|
||||
# Invoke
|
||||
#
|
||||
# scons -h
|
||||
#
|
||||
# to get the full list of options. See scons manpage for more info.
|
||||
#
|
||||
#
|
||||
|
||||
import os
|
||||
import os.path
|
||||
@@ -36,7 +36,7 @@ common.AddOptions(opts)
|
||||
env = Environment(
|
||||
options = opts,
|
||||
tools = ['gallium'],
|
||||
toolpath = ['#scons'],
|
||||
toolpath = ['#scons'],
|
||||
ENV = os.environ,
|
||||
)
|
||||
|
||||
@@ -53,7 +53,7 @@ else:
|
||||
print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
|
||||
print
|
||||
print ' scons %s' % ' '.join(targets)
|
||||
print
|
||||
print
|
||||
COMMAND_LINE_TARGETS.append(targets)
|
||||
|
||||
|
||||
@@ -84,14 +84,9 @@ env.Append(CPPPATH = [
|
||||
#print env.Dump()
|
||||
|
||||
|
||||
# Add a check target for running tests
|
||||
check = env.Alias('check')
|
||||
env.AlwaysBuild(check)
|
||||
|
||||
|
||||
#######################################################################
|
||||
# Invoke host SConscripts
|
||||
#
|
||||
# Invoke host SConscripts
|
||||
#
|
||||
# For things that are meant to be run on the native host build machine, instead
|
||||
# of the target machine.
|
||||
#
|
||||
|
@@ -65,9 +65,6 @@ install:
|
||||
build_script:
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1
|
||||
|
||||
after_build:
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1 check
|
||||
|
||||
|
||||
# It's possible to setup notification here, as described in
|
||||
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
|
||||
|
@@ -1,2 +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
|
||||
# Remove duplicate commit due to vulkan branch merge
|
||||
9e64a2a8e4821dd637daac54ba83895a490d4790 mesa: Fix generation of git_sha1.h.tmp for gitlinks
|
||||
|
||||
# The functions/extension in question landed after the branchpoint.
|
||||
be5010c4b8635d0292404ac58ed0436ba6637579 glapi: fix parameter type for GetSamplerParameterIuivEXT() in es_EXT.xml
|
||||
|
@@ -40,7 +40,7 @@ else
|
||||
for i in $urls
|
||||
do
|
||||
id=$(echo $i | cut -d'=' -f2)
|
||||
summary=$(wget --quiet -O - $i | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/')
|
||||
summary=$(wget --quiet -O - $i | grep -e '<title>.*</title>' | sed -e 's/ *<title>Bug [0-9]\+ – \(.*\)<\/title>/\1/')
|
||||
echo "<li><a href=\"$i\">Bug $id</a> - $summary</li>"
|
||||
echo ""
|
||||
done
|
||||
|
@@ -97,7 +97,6 @@ def AddOptions(opts):
|
||||
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
|
||||
opts.Add(BoolOption('analyze',
|
||||
'enable static code analysis where available', 'no'))
|
||||
opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
|
||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
||||
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support',
|
||||
'no'))
|
||||
|
368
configure.ac
368
configure.ac
@@ -68,7 +68,7 @@ OPENCL_VERSION=1
|
||||
AC_SUBST([OPENCL_VERSION])
|
||||
|
||||
dnl Versions for external dependencies
|
||||
LIBDRM_REQUIRED=2.4.66
|
||||
LIBDRM_REQUIRED=2.4.60
|
||||
LIBDRM_RADEON_REQUIRED=2.4.56
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.63
|
||||
LIBDRM_INTEL_REQUIRED=2.4.61
|
||||
@@ -223,10 +223,8 @@ AX_GCC_FUNC_ATTRIBUTE([format])
|
||||
AX_GCC_FUNC_ATTRIBUTE([malloc])
|
||||
AX_GCC_FUNC_ATTRIBUTE([packed])
|
||||
AX_GCC_FUNC_ATTRIBUTE([pure])
|
||||
AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
|
||||
AX_GCC_FUNC_ATTRIBUTE([unused])
|
||||
AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
|
||||
AX_GCC_FUNC_ATTRIBUTE([weak])
|
||||
|
||||
AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
|
||||
|
||||
@@ -249,11 +247,7 @@ _SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
dnl Compiler macros
|
||||
DEFINES="-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
|
||||
AC_SUBST([DEFINES])
|
||||
android=no
|
||||
case "$host_os" in
|
||||
*-android)
|
||||
android=yes
|
||||
;;
|
||||
linux*|*-gnu*|gnu*)
|
||||
DEFINES="$DEFINES -D_GNU_SOURCE"
|
||||
;;
|
||||
@@ -265,8 +259,6 @@ cygwin*)
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_ANDROID, test "x$android" = xyes)
|
||||
|
||||
dnl Add flags for gcc and g++
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
@@ -521,8 +513,6 @@ else
|
||||
DEFINES="$DEFINES -DNDEBUG"
|
||||
fi
|
||||
|
||||
DEFAULT_GL_LIB_NAME=GL
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports -Bsymbolic
|
||||
dnl
|
||||
@@ -620,23 +610,6 @@ esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
|
||||
|
||||
DEFAULT_GL_LIB_NAME=GL
|
||||
|
||||
dnl
|
||||
dnl Libglvnd configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([libglvnd],
|
||||
[AS_HELP_STRING([--enable-libglvnd],
|
||||
[Build for libglvnd @<:@default=disabled@:>@])],
|
||||
[enable_libglvnd="$enableval"],
|
||||
[enable_libglvnd=no])
|
||||
AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
|
||||
#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"])
|
||||
if test "x$enable_libglvnd" = xyes ; then
|
||||
DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
|
||||
DEFAULT_GL_LIB_NAME=GLX_mesa
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl library names
|
||||
dnl
|
||||
@@ -674,13 +647,13 @@ AC_ARG_WITH([gl-lib-name],
|
||||
[AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
|
||||
[specify GL library name @<:@default=GL@:>@])],
|
||||
[GL_LIB=$withval],
|
||||
[GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
||||
[GL_LIB=GL])
|
||||
AC_ARG_WITH([osmesa-lib-name],
|
||||
[AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
|
||||
[specify OSMesa library name @<:@default=OSMesa@:>@])],
|
||||
[OSMESA_LIB=$withval],
|
||||
[OSMESA_LIB=OSMesa])
|
||||
AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
||||
AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
|
||||
AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
|
||||
|
||||
dnl
|
||||
@@ -731,10 +704,8 @@ test "x$enable_asm" = xno && AC_MSG_RESULT([no])
|
||||
if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
|
||||
case "$host_cpu" in
|
||||
i?86 | x86_64 | amd64)
|
||||
if test "x$host_cpu" != "x$target_cpu"; then
|
||||
enable_asm=no
|
||||
AC_MSG_RESULT([no, cross compiling])
|
||||
fi
|
||||
enable_asm=no
|
||||
AC_MSG_RESULT([no, cross compiling])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
@@ -825,10 +796,6 @@ dnl to -pthread, which causes problems if we need -lpthread to appear in
|
||||
dnl pkgconfig files.
|
||||
test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
|
||||
|
||||
PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
|
||||
AC_SUBST(PTHREADSTUBS_CFLAGS)
|
||||
AC_SUBST(PTHREADSTUBS_LIBS)
|
||||
|
||||
dnl SELinux awareness.
|
||||
AC_ARG_ENABLE([selinux],
|
||||
[AS_HELP_STRING([--enable-selinux],
|
||||
@@ -889,8 +856,8 @@ AC_ARG_ENABLE([dri3],
|
||||
[enable_dri3="$enableval"],
|
||||
[enable_dri3="$dri3_default"])
|
||||
AC_ARG_ENABLE([glx],
|
||||
[AS_HELP_STRING([--enable-glx@<:@=dri|xlib|gallium-xlib@:>@],
|
||||
[enable the GLX library and choose an implementation @<:@default=auto@:>@])],
|
||||
[AS_HELP_STRING([--enable-glx],
|
||||
[enable GLX library @<:@default=enabled@:>@])],
|
||||
[enable_glx="$enableval"],
|
||||
[enable_glx=yes])
|
||||
AC_ARG_ENABLE([osmesa],
|
||||
@@ -956,6 +923,17 @@ AC_ARG_ENABLE([opencl_icd],
|
||||
@<:@default=disabled@:>@])],
|
||||
[enable_opencl_icd="$enableval"],
|
||||
[enable_opencl_icd=no])
|
||||
AC_ARG_ENABLE([xlib-glx],
|
||||
[AS_HELP_STRING([--enable-xlib-glx],
|
||||
[make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
|
||||
[enable_xlib_glx="$enableval"],
|
||||
[enable_xlib_glx=no])
|
||||
|
||||
AC_ARG_ENABLE([r600-llvm-compiler],
|
||||
[AS_HELP_STRING([--enable-r600-llvm-compiler],
|
||||
[Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
|
||||
[enable_r600_llvm="$enableval"],
|
||||
[enable_r600_llvm=no])
|
||||
|
||||
AC_ARG_ENABLE([gallium-tests],
|
||||
[AS_HELP_STRING([--enable-gallium-tests],
|
||||
@@ -1014,86 +992,36 @@ AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
|
||||
"x$enable_gles1" = xyes -o \
|
||||
"x$enable_gles2" = xyes)
|
||||
|
||||
# Validate GLX options
|
||||
if test "x$enable_glx" = xyes; then
|
||||
if test "x$enable_dri" = xyes; then
|
||||
enable_glx=dri
|
||||
elif test -n "$with_gallium_drivers"; then
|
||||
enable_glx=gallium-xlib
|
||||
else
|
||||
enable_glx=xlib
|
||||
fi
|
||||
if test "x$enable_glx" = xno; then
|
||||
AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
|
||||
enable_xlib_glx=no
|
||||
fi
|
||||
case "x$enable_glx" in
|
||||
xdri | xxlib | xgallium-xlib)
|
||||
# GLX requires OpenGL
|
||||
if test "x$enable_opengl" = xno; then
|
||||
AC_MSG_ERROR([GLX cannot be built without OpenGL])
|
||||
fi
|
||||
|
||||
# Check individual dependencies
|
||||
case "x$enable_glx" in
|
||||
xdri)
|
||||
if test "x$enable_dri" = xno; then
|
||||
AC_MSG_ERROR([DRI-based GLX requires DRI to be enabled])
|
||||
fi
|
||||
;;
|
||||
xxlib)
|
||||
if test "x$enable_dri" = xyes; then
|
||||
AC_MSG_ERROR([Xlib-based GLX cannot be built with DRI enabled])
|
||||
fi
|
||||
;;
|
||||
xgallium-xlib )
|
||||
if test "x$enable_dri" = xyes; then
|
||||
AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built with DRI enabled])
|
||||
fi
|
||||
if test -z "$with_gallium_drivers"; then
|
||||
AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built without Gallium enabled])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
xno)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Illegal value for --enable-glx: $enable_glx])
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_GLX, test "x$enable_glx" != xno)
|
||||
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xdri)
|
||||
AM_CONDITIONAL(HAVE_XLIB_GLX, test "x$enable_glx" = xxlib)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib)
|
||||
|
||||
dnl
|
||||
dnl Libglvnd configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([libglvnd],
|
||||
[AS_HELP_STRING([--enable-libglvnd],
|
||||
[Build for libglvnd @<:@default=disabled@:>@])],
|
||||
[enable_libglvnd="$enableval"],
|
||||
[enable_libglvnd=no])
|
||||
AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
|
||||
if test "x$enable_libglvnd" = xyes ; then
|
||||
dnl XXX: update once we can handle more than libGL/glx.
|
||||
dnl Namely: we should error out if neither of the glvnd enabled libraries
|
||||
dnl are built
|
||||
case "x$enable_glx" in
|
||||
xno)
|
||||
AC_MSG_ERROR([cannot build libglvnd without GLX])
|
||||
;;
|
||||
xxlib | xgallium-xlib )
|
||||
AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
|
||||
;;
|
||||
xdri)
|
||||
;;
|
||||
esac
|
||||
|
||||
PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
|
||||
DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
|
||||
DEFAULT_GL_LIB_NAME=GLX_mesa
|
||||
if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
|
||||
AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
|
||||
fi
|
||||
|
||||
if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
|
||||
AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
|
||||
fi
|
||||
|
||||
# Disable GLX if OpenGL is not enabled
|
||||
if test "x$enable_glx$enable_opengl" = xyesno; then
|
||||
AC_MSG_WARN([OpenGL not enabled, disabling GLX])
|
||||
enable_glx=no
|
||||
fi
|
||||
|
||||
# Disable GLX if DRI and Xlib-GLX are not enabled
|
||||
if test "x$enable_glx" = xyes -a \
|
||||
"x$enable_dri" = xno -a \
|
||||
"x$enable_xlib_glx" = xno; then
|
||||
AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
|
||||
enable_glx=no
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
|
||||
"x$enable_dri" = xyes)
|
||||
|
||||
# Check for libdrm
|
||||
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
|
||||
[have_libdrm=yes], [have_libdrm=no])
|
||||
@@ -1148,6 +1076,10 @@ dnl
|
||||
dnl Driver specific build directories
|
||||
dnl
|
||||
|
||||
if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then
|
||||
NEED_WINSYS_XLIB="yes"
|
||||
fi
|
||||
|
||||
if test "x$enable_gallium_osmesa" = xyes; then
|
||||
if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
|
||||
AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
|
||||
@@ -1340,8 +1272,8 @@ AC_ARG_ENABLE([driglx-direct],
|
||||
dnl
|
||||
dnl libGL configuration per driver
|
||||
dnl
|
||||
case "x$enable_glx" in
|
||||
xxlib | xgallium-xlib)
|
||||
case "x$enable_glx$enable_xlib_glx" in
|
||||
xyesyes)
|
||||
# Xlib-based GLX
|
||||
dri_modules="x11 xext xcb"
|
||||
PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
|
||||
@@ -1351,7 +1283,7 @@ xxlib | xgallium-xlib)
|
||||
GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
|
||||
;;
|
||||
xdri)
|
||||
xyesno)
|
||||
# DRI-based GLX
|
||||
PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
|
||||
|
||||
@@ -1378,7 +1310,7 @@ xdri)
|
||||
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
|
||||
dri3_modules="xcb xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
|
||||
dri3_modules="xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
|
||||
PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
|
||||
fi
|
||||
fi
|
||||
@@ -1440,11 +1372,11 @@ AC_SUBST([HAVE_XF86VIDMODE])
|
||||
dnl
|
||||
dnl More GLX setup
|
||||
dnl
|
||||
case "x$enable_glx" in
|
||||
xxlib | xgallium-xlib)
|
||||
case "x$enable_glx$enable_xlib_glx" in
|
||||
xyesyes)
|
||||
DEFINES="$DEFINES -DUSE_XSHM"
|
||||
;;
|
||||
xdri)
|
||||
xyesno)
|
||||
DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
|
||||
if test "x$driglx_direct" = xyes; then
|
||||
DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
|
||||
@@ -1617,58 +1549,8 @@ if test -n "$with_dri_drivers"; then
|
||||
DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Vulkan driver configuration
|
||||
#
|
||||
|
||||
AC_ARG_WITH([vulkan-drivers],
|
||||
[AS_HELP_STRING([--with-vulkan-drivers@<:@=DIRS...@:>@],
|
||||
[comma delimited Vulkan drivers list, e.g.
|
||||
"intel"
|
||||
@<:@default=no@:>@])],
|
||||
[with_vulkan_drivers="$withval"],
|
||||
[with_vulkan_drivers="no"])
|
||||
|
||||
# Doing '--without-vulkan-drivers' will set this variable to 'no'. Clear it
|
||||
# here so that the script doesn't choke on an unknown driver name later.
|
||||
case "x$with_vulkan_drivers" in
|
||||
xyes) with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT" ;;
|
||||
xno) with_vulkan_drivers='' ;;
|
||||
esac
|
||||
|
||||
AC_ARG_WITH([vulkan-icddir],
|
||||
[AS_HELP_STRING([--with-vulkan-icddir=DIR],
|
||||
[directory for the Vulkan driver icd files @<:@${sysconfdir}/vulkan/icd.d@:>@])],
|
||||
[VULKAN_ICD_INSTALL_DIR="$withval"],
|
||||
[VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d'])
|
||||
AC_SUBST([VULKAN_ICD_INSTALL_DIR])
|
||||
|
||||
if test -n "$with_vulkan_drivers"; then
|
||||
VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers`
|
||||
for driver in $VULKAN_DRIVERS; do
|
||||
case "x$driver" in
|
||||
xintel)
|
||||
if test "x$HAVE_I965_DRI" != xyes; then
|
||||
AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver])
|
||||
fi
|
||||
if test "x$with_sha1" == "x"; then
|
||||
AC_MSG_ERROR([Intel Vulkan driver requires SHA1])
|
||||
fi
|
||||
HAVE_INTEL_VULKAN=yes;
|
||||
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Vulkan driver '$driver' does not exist])
|
||||
;;
|
||||
esac
|
||||
done
|
||||
VULKAN_DRIVERS=`echo $VULKAN_DRIVERS|tr " " "\n"|sort -u|tr "\n" " "`
|
||||
fi
|
||||
|
||||
|
||||
AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
|
||||
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \
|
||||
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
|
||||
"x$enable_osmesa" = xyes -o \
|
||||
-n "$DRI_DIRS")
|
||||
|
||||
@@ -1683,7 +1565,7 @@ AC_ARG_WITH([osmesa-bits],
|
||||
[osmesa_bits="$withval"],
|
||||
[osmesa_bits=8])
|
||||
if test "x$osmesa_bits" != x8; then
|
||||
if test "x$enable_dri" = xyes -o "x$enable_glx" != xno; then
|
||||
if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
|
||||
AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
|
||||
osmesa_bits=8
|
||||
fi
|
||||
@@ -1839,12 +1721,7 @@ if test "x$enable_xvmc" = xyes -o \
|
||||
"x$enable_vdpau" = xyes -o \
|
||||
"x$enable_omx" = xyes -o \
|
||||
"x$enable_va" = xyes; then
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
PKG_CHECK_MODULES([VL], [xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED
|
||||
x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
else
|
||||
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
fi
|
||||
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
need_gallium_vl_winsys=yes
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
|
||||
@@ -1858,7 +1735,6 @@ AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
|
||||
if test "x$enable_vdpau" = xyes; then
|
||||
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
|
||||
gallium_st="$gallium_st vdpau"
|
||||
DEFINES="$DEFINES -DHAVE_ST_VDPAU"
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
|
||||
|
||||
@@ -2035,9 +1911,6 @@ for plat in $egl_platforms; do
|
||||
AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED])
|
||||
;;
|
||||
|
||||
android)
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_ERROR([EGL platform '$plat' does not exist])
|
||||
;;
|
||||
@@ -2058,11 +1931,11 @@ else
|
||||
EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android')
|
||||
AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
|
||||
|
||||
AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
|
||||
|
||||
@@ -2103,9 +1976,6 @@ AC_ARG_WITH([llvm-prefix],
|
||||
strip_unwanted_llvm_flags() {
|
||||
# Use \> (marks the end of the word)
|
||||
echo `$1` | sed \
|
||||
-e 's/-march=\S*//g' \
|
||||
-e 's/-mtune=\S*//g' \
|
||||
-e 's/-mcpu=\S*//g' \
|
||||
-e 's/-DNDEBUG\>//g' \
|
||||
-e 's/-D_GNU_SOURCE\>//g' \
|
||||
-e 's/-pedantic\>//g' \
|
||||
@@ -2321,16 +2191,6 @@ radeon_llvm_check() {
|
||||
fi
|
||||
}
|
||||
|
||||
swr_llvm_check() {
|
||||
gallium_require_llvm $1
|
||||
if test ${LLVM_VERSION_INT} -lt 306; then
|
||||
AC_MSG_ERROR([LLVM version 3.6 or later required when building $1])
|
||||
fi
|
||||
if test "x$enable_gallium_llvm" != "xyes"; then
|
||||
AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
|
||||
fi
|
||||
}
|
||||
|
||||
dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
|
||||
if test -n "$with_gallium_drivers"; then
|
||||
gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
|
||||
@@ -2365,10 +2225,16 @@ if test -n "$with_gallium_drivers"; then
|
||||
PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
|
||||
gallium_require_drm "Gallium R600"
|
||||
gallium_require_drm_loader
|
||||
if test "x$enable_opencl" = xyes; then
|
||||
if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
|
||||
radeon_llvm_check "r600g"
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
|
||||
fi
|
||||
if test "x$enable_r600_llvm" = xyes; then
|
||||
USE_R600_LLVM_COMPILER=yes;
|
||||
fi
|
||||
if test "x$enable_opencl" = xyes; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
|
||||
fi
|
||||
;;
|
||||
xradeonsi)
|
||||
HAVE_GALLIUM_RADEONSI=yes
|
||||
@@ -2397,35 +2263,6 @@ if test -n "$with_gallium_drivers"; then
|
||||
HAVE_GALLIUM_LLVMPIPE=yes
|
||||
fi
|
||||
;;
|
||||
xswr)
|
||||
swr_llvm_check "swr"
|
||||
|
||||
AC_MSG_CHECKING([whether $CXX supports c++11/AVX/AVX2])
|
||||
AVX_CXXFLAGS="-march=core-avx-i"
|
||||
AVX2_CXXFLAGS="-march=core-avx2"
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="-std=c++11 $CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[],
|
||||
[AC_MSG_ERROR([c++11 compiler support not detected])])
|
||||
CXXFLAGS="$save_CXXFLAGS"
|
||||
|
||||
save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$AVX_CXXFLAGS $CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[],
|
||||
[AC_MSG_ERROR([AVX compiler support not detected])])
|
||||
CXXFLAGS="$save_CXXFLAGS"
|
||||
|
||||
save_CFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$AVX2_CXXFLAGS $CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[],
|
||||
[AC_MSG_ERROR([AVX2 compiler support not detected])])
|
||||
CXXFLAGS="$save_CXXFLAGS"
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
HAVE_GALLIUM_SWR=yes
|
||||
;;
|
||||
xvc4)
|
||||
HAVE_GALLIUM_VC4=yes
|
||||
gallium_require_drm "vc4"
|
||||
@@ -2515,10 +2352,6 @@ AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SWR, test "x$HAVE_GALLIUM_SWR" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \
|
||||
"x$HAVE_GALLIUM_LLVMPIPE" = xyes -o \
|
||||
"x$HAVE_GALLIUM_SWR" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
|
||||
|
||||
@@ -2540,16 +2373,12 @@ AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
|
||||
AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
|
||||
AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \
|
||||
"x$HAVE_I965_DRI" = xyes)
|
||||
|
||||
AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
|
||||
"x$HAVE_GALLIUM_R600" = xyes -o \
|
||||
"x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib)
|
||||
AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
|
||||
AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
|
||||
AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
|
||||
AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
|
||||
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
|
||||
@@ -2558,6 +2387,7 @@ if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
|
||||
AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
|
||||
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
|
||||
|
||||
@@ -2591,29 +2421,6 @@ AC_SUBST([XA_MINOR], $XA_MINOR)
|
||||
AC_SUBST([XA_TINY], $XA_TINY)
|
||||
AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
|
||||
|
||||
AC_SUBST([TIMESTAMP_CMD], '`test $(SOURCE_DATE_EPOCH) && echo $(SOURCE_DATE_EPOCH) || date +%s`')
|
||||
|
||||
AC_ARG_ENABLE(valgrind,
|
||||
[AS_HELP_STRING([--enable-valgrind],
|
||||
[Build mesa with valgrind support (default: auto)])],
|
||||
[VALGRIND=$enableval], [VALGRIND=auto])
|
||||
if test "x$VALGRIND" != xno; then
|
||||
PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
|
||||
fi
|
||||
AC_MSG_CHECKING([whether to enable Valgrind support])
|
||||
if test "x$VALGRIND" = xauto; then
|
||||
VALGRIND="$have_valgrind"
|
||||
fi
|
||||
|
||||
if test "x$VALGRIND" = "xyes"; then
|
||||
if ! test "x$have_valgrind" = xyes; then
|
||||
AC_MSG_ERROR([Valgrind support required but not present])
|
||||
fi
|
||||
AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([$VALGRIND])
|
||||
|
||||
dnl Restore LDFLAGS and CPPFLAGS
|
||||
LDFLAGS="$_SAVE_LDFLAGS"
|
||||
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||||
@@ -2654,7 +2461,6 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/rbug/Makefile
|
||||
src/gallium/drivers/softpipe/Makefile
|
||||
src/gallium/drivers/svga/Makefile
|
||||
src/gallium/drivers/swr/Makefile
|
||||
src/gallium/drivers/trace/Makefile
|
||||
src/gallium/drivers/vc4/Makefile
|
||||
src/gallium/drivers/virgl/Makefile
|
||||
@@ -2706,10 +2512,6 @@ AC_CONFIG_FILES([Makefile
|
||||
src/glx/apple/Makefile
|
||||
src/glx/tests/Makefile
|
||||
src/gtest/Makefile
|
||||
src/intel/Makefile
|
||||
src/intel/genxml/Makefile
|
||||
src/intel/isl/Makefile
|
||||
src/intel/vulkan/Makefile
|
||||
src/loader/Makefile
|
||||
src/mapi/Makefile
|
||||
src/mapi/es1api/glesv1_cm.pc
|
||||
@@ -2736,14 +2538,6 @@ AC_CONFIG_FILES([Makefile
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
# Fix up dependencies in *.Plo files, where we changed the extension of a
|
||||
# source file
|
||||
$SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_blorp.Plo
|
||||
$SED -i -e 's/gen6_blorp.cpp/gen6_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen6_blorp.Plo
|
||||
$SED -i -e 's/gen7_blorp.cpp/gen7_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen7_blorp.Plo
|
||||
$SED -i -e 's/gen8_blorp.cpp/gen8_blorp.c/' src/mesa/drivers/dri/i965/.deps/gen8_blorp.Plo
|
||||
|
||||
|
||||
dnl
|
||||
dnl Output some configuration info for the user
|
||||
dnl
|
||||
@@ -2782,15 +2576,12 @@ if test "x$enable_dri" != xno; then
|
||||
echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
|
||||
fi
|
||||
|
||||
case "x$enable_glx" in
|
||||
xdri)
|
||||
echo " GLX: DRI-based"
|
||||
;;
|
||||
xxlib)
|
||||
case "x$enable_glx$enable_xlib_glx" in
|
||||
xyesyes)
|
||||
echo " GLX: Xlib-based"
|
||||
;;
|
||||
xgallium-xlib)
|
||||
echo " GLX: Xlib-based (Gallium)"
|
||||
xyesno)
|
||||
echo " GLX: DRI-based"
|
||||
;;
|
||||
*)
|
||||
echo " GLX: $enable_glx"
|
||||
@@ -2814,15 +2605,6 @@ if test "$enable_egl" = yes; then
|
||||
echo " EGL drivers: $egl_drivers"
|
||||
fi
|
||||
|
||||
# Vulkan
|
||||
echo ""
|
||||
if test "x$VULKAN_DRIVERS" != x; then
|
||||
echo " Vulkan drivers: $VULKAN_DRIVERS"
|
||||
echo " Vulkan ICD dir: $VULKAN_ICD_INSTALL_DIR"
|
||||
else
|
||||
echo " Vulkan drivers: no"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
if test "x$MESA_LLVM" = x1; then
|
||||
echo " llvm: yes"
|
||||
|
490
docs/COPYING
Normal file
490
docs/COPYING
Normal file
@@ -0,0 +1,490 @@
|
||||
|
||||
Some parts of Mesa are copyrighted under the GNU LGPL. See the
|
||||
Mesa/docs/COPYRIGHT file for details.
|
||||
|
||||
The following is the standard GNU copyright file.
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
378
docs/GL3.txt
378
docs/GL3.txt
@@ -1,28 +1,13 @@
|
||||
# Status of OpenGL extensions in Mesa
|
||||
|
||||
Here's how to read this file:
|
||||
Status of OpenGL 3.x features in Mesa
|
||||
|
||||
all DONE: <driver>, ...
|
||||
All the extensions are done for the given list of drivers.
|
||||
|
||||
DONE
|
||||
The extension is done for Mesa and no implementation is necessary on the
|
||||
driver-side.
|
||||
Note: when an item is marked as "DONE" it means all the core Mesa
|
||||
infrastructure is complete but it may be the case that few (if any) drivers
|
||||
implement the features.
|
||||
|
||||
DONE ()
|
||||
The extension is done for Mesa and all the drivers in the "all DONE" list.
|
||||
|
||||
DONE (<driver>, ...)
|
||||
The extension is done for Mesa, all the drivers in the "all DONE" list, and
|
||||
all the drivers in the brackets.
|
||||
|
||||
in progress
|
||||
The extension is started but not finished yet.
|
||||
|
||||
not started
|
||||
The extension isn't started yet.
|
||||
|
||||
# OpenGL Core and Compatibility context support
|
||||
OpenGL Core and Compatibility context support
|
||||
|
||||
OpenGL 3.1 and later versions are only supported with the Core profile.
|
||||
There are no plans to support GL_ARB_compatibility. The last supported OpenGL
|
||||
@@ -30,248 +15,249 @@ version with all deprecated features is 3.0. Some of the later GL features
|
||||
are exposed in the 3.0 context as extensions.
|
||||
|
||||
|
||||
Feature Status
|
||||
------------------------------------------------------- ------------------------
|
||||
Feature Status
|
||||
----------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
||||
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
GL_NV_conditional_render (Conditional rendering) DONE ()
|
||||
GL_ARB_map_buffer_range (Map buffer subranges) DONE ()
|
||||
GL_ARB_color_buffer_float (Clamping controls) DONE ()
|
||||
GL_ARB_texture_float (Float textures, renderbuffers) DONE ()
|
||||
Conditional rendering (GL_NV_conditional_render) DONE ()
|
||||
Map buffer subranges (GL_ARB_map_buffer_range) DONE ()
|
||||
Clamping controls (GL_ARB_color_buffer_float) DONE ()
|
||||
Float textures, renderbuffers (GL_ARB_texture_float) DONE ()
|
||||
GL_EXT_packed_float DONE ()
|
||||
GL_EXT_texture_shared_exponent DONE ()
|
||||
GL_ARB_depth_buffer_float (Float depth buffers) DONE ()
|
||||
GL_ARB_framebuffer_object (Framebuffer objects) DONE ()
|
||||
Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
|
||||
Framebuffer objects (GL_ARB_framebuffer_object) DONE ()
|
||||
GL_ARB_half_float_pixel DONE (all drivers)
|
||||
GL_ARB_half_float_vertex DONE ()
|
||||
GL_EXT_texture_integer DONE ()
|
||||
GL_EXT_texture_array DONE ()
|
||||
GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE ()
|
||||
Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE ()
|
||||
GL_EXT_texture_compression_rgtc DONE ()
|
||||
GL_ARB_texture_rg DONE ()
|
||||
GL_EXT_transform_feedback (Transform feedback) DONE ()
|
||||
GL_ARB_vertex_array_object (Vertex array objects) DONE ()
|
||||
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE ()
|
||||
Transform feedback (GL_EXT_transform_feedback) DONE ()
|
||||
Vertex array objects (GL_ARB_vertex_array_object) DONE ()
|
||||
sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE ()
|
||||
glClearBuffer commands DONE
|
||||
glGetStringi command DONE
|
||||
glTexParameterI, glGetTexParameterI commands DONE
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE
|
||||
Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*), swr (*))
|
||||
Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*))
|
||||
|
||||
(*) llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
(*) llvmpipe and softpipe have fake Multisample anti-aliasing support
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
||||
|
||||
Forward compatible context support/deprecations DONE ()
|
||||
GL_ARB_draw_instanced (Instanced drawing) DONE ()
|
||||
GL_ARB_copy_buffer (Buffer copying) DONE ()
|
||||
GL_NV_primitive_restart (Primitive restart) DONE ()
|
||||
Instanced drawing (GL_ARB_draw_instanced) DONE ()
|
||||
Buffer copying (GL_ARB_copy_buffer) DONE ()
|
||||
Primitive restart (GL_NV_primitive_restart) DONE ()
|
||||
16 vertex texture image units DONE ()
|
||||
GL_ARB_texture_buffer_object (Texture buffer objs) DONE (for OpenGL 3.1 contexts)
|
||||
GL_ARB_texture_rectangle (Rectangular textures) DONE ()
|
||||
GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE ()
|
||||
GL_EXT_texture_snorm (Signed normalized textures) DONE ()
|
||||
Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts ()
|
||||
Rectangular textures (GL_ARB_texture_rectangle) DONE ()
|
||||
Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE ()
|
||||
Signed normalized textures (GL_EXT_texture_snorm) DONE ()
|
||||
|
||||
|
||||
GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
||||
|
||||
Core/compatibility profiles DONE
|
||||
Geometry shaders DONE ()
|
||||
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 (swr)
|
||||
GL_ARB_sync (Fence objects) DONE (swr)
|
||||
BGRA vertex order (GL_ARB_vertex_array_bgra) DONE ()
|
||||
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE ()
|
||||
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE ()
|
||||
Provoking vertex (GL_ARB_provoking_vertex) DONE ()
|
||||
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE ()
|
||||
Multisample textures (GL_ARB_texture_multisample) DONE ()
|
||||
Frag depth clamp (GL_ARB_depth_clamp) DONE ()
|
||||
Fence objects (GL_ARB_sync) DONE ()
|
||||
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 (swr)
|
||||
GL_ARB_blend_func_extended DONE ()
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (swr)
|
||||
GL_ARB_occlusion_query2 DONE ()
|
||||
GL_ARB_sampler_objects DONE (all drivers)
|
||||
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 (swr)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (swr)
|
||||
GL_ARB_shader_bit_encoding DONE ()
|
||||
GL_ARB_texture_rgb10_a2ui DONE ()
|
||||
GL_ARB_texture_swizzle DONE ()
|
||||
GL_ARB_timer_query DONE ()
|
||||
GL_ARB_instanced_arrays DONE ()
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE ()
|
||||
|
||||
|
||||
GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi
|
||||
|
||||
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 ()
|
||||
- Implicit signed -> unsigned conversions DONE
|
||||
- Fused multiply-add DONE ()
|
||||
- Packing/bitfield/conversion functions DONE (softpipe)
|
||||
- Enhanced textureGather DONE (softpipe)
|
||||
- Geometry shader instancing DONE (llvmpipe, softpipe)
|
||||
- Geometry shader multiple streams DONE ()
|
||||
- Enhanced per-sample shading DONE ()
|
||||
- Interpolation functions DONE ()
|
||||
- New overload resolution rules DONE
|
||||
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, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback3 DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_draw_buffers_blend DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_draw_indirect DONE (i965, llvmpipe, softpipe)
|
||||
GL_ARB_gpu_shader5 DONE (i965)
|
||||
- 'precise' qualifier DONE
|
||||
- Dynamically uniform sampler array indices DONE (softpipe)
|
||||
- Dynamically uniform UBO array indices DONE ()
|
||||
- Implicit signed -> unsigned conversions DONE
|
||||
- Fused multiply-add DONE ()
|
||||
- Packing/bitfield/conversion functions DONE (softpipe)
|
||||
- Enhanced textureGather DONE (softpipe)
|
||||
- Geometry shader instancing DONE (llvmpipe, softpipe)
|
||||
- Geometry shader multiple streams DONE ()
|
||||
- Enhanced per-sample shading DONE ()
|
||||
- Interpolation functions DONE ()
|
||||
- New overload resolution rules DONE
|
||||
GL_ARB_gpu_shader_fp64 DONE (llvmpipe, softpipe)
|
||||
GL_ARB_sample_shading DONE (i965, nv50)
|
||||
GL_ARB_shader_subroutine DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_tessellation_shader DONE (i965)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965, llvmpipe, softpipe)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
|
||||
GL_ARB_transform_feedback2 DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_transform_feedback3 DONE (i965, nv50, llvmpipe, softpipe)
|
||||
|
||||
|
||||
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 (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_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_get_program_binary DONE (0 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision DONE (all drivers that support GLSL 4.10)
|
||||
GL_ARB_vertex_attrib_64bit DONE (llvmpipe, softpipe)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20 -- all DONE: radeonsi
|
||||
GL 4.2, GLSL 4.20:
|
||||
|
||||
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, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
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, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
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, nvc0)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (i965)
|
||||
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, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
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, 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, 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, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
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, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
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)
|
||||
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, nvc0, r600, radeonsi, llvmpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965)
|
||||
GL_ARB_internalformat_query2 in progress (elima)
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_robust_buffer_access_behavior not started
|
||||
GL_ARB_shader_image_size DONE (i965)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
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, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.4, GLSL 4.40:
|
||||
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
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 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+, 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_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
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 in progress
|
||||
- forced alignment within blocks in progress
|
||||
- specified vec4-slot component numbers in progress
|
||||
- specified transform/feedback layout in progress
|
||||
- input/output block locations DONE
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_query_buffer_object DONE (nvc0)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_texture_stencil8 DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
|
||||
GL 4.5, GLSL 4.50:
|
||||
|
||||
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, 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)
|
||||
GL_ARB_ES3_1_compatibility not started
|
||||
GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_cull_distance in progress (Tobias)
|
||||
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, 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_robust_buffer_access_behavior not started
|
||||
GL_KHR_robustness 90% done (the ARB variant)
|
||||
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
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
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, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
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 (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, nvc0, r600, radeonsi)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_compute_shader DONE (i965)
|
||||
GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments DONE (i965)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (i965, nvc0)
|
||||
GL_ARB_shader_image_load_store DONE (i965)
|
||||
GL_ARB_shader_image_size DONE (i965)
|
||||
GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
|
||||
Multisample textures (GL_ARB_texture_multisample) 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, 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
|
||||
glMemoryBarrierByRegion DONE
|
||||
glGetTexLevelParameter[fi]v - needs updates DONE
|
||||
glGetBooleani_v - restrict to GLES enums
|
||||
gl_HelperInvocation support DONE (i965, nvc0, r600, radeonsi)
|
||||
gl_HelperInvocation support DONE (i965, nvc0, r600)
|
||||
|
||||
GLES3.2, GLSL ES 3.2
|
||||
GL_EXT_color_buffer_float DONE (all drivers)
|
||||
GL_KHR_blend_equation_advanced not started
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_KHR_robustness DONE (i965)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
|
||||
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 started (idr)
|
||||
GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
|
||||
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 (i965/gen8+, nvc0, radeonsi)
|
||||
GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
|
||||
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 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)
|
||||
GL_EXT_color_buffer_float DONE (all drivers)
|
||||
GL_KHR_blend_equation_advanced not started
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_KHR_robustness 90% done (the ARB variant)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
|
||||
GL_OES_copy_image not started (based on GL_ARB_copy_image, which is done for some drivers)
|
||||
GL_OES_draw_buffers_indexed not started
|
||||
GL_OES_draw_elements_base_vertex DONE (all drivers)
|
||||
GL_OES_geometry_shader started (Marta)
|
||||
GL_OES_gpu_shader5 not started (based on parts of GL_ARB_gpu_shader5, which is done for some drivers)
|
||||
GL_OES_primitive_bounding box not started
|
||||
GL_OES_sample_shading not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
|
||||
GL_OES_sample_variables not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
|
||||
GL_OES_shader_image_atomic not started (based on parts of GL_ARB_shader_image_load_store, which is done for some drivers)
|
||||
GL_OES_shader_io_blocks not started (based on parts of GLSL 1.50, which is done)
|
||||
GL_OES_shader_multisample_interpolation not started (based on parts of GL_ARB_gpu_shader5, which is done)
|
||||
GL_OES_tessellation_shader not started (based on GL_ARB_tessellation_shader, which is done for some drivers)
|
||||
GL_OES_texture_border_clamp not started (based on GL_ARB_texture_border_clamp, which is done)
|
||||
GL_OES_texture_buffer not started (based on GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, and GL_ARB_texture_buffer_object_rgb32 that are all done)
|
||||
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)
|
||||
|
||||
More info about these features and the work involved can be found at
|
||||
http://dri.freedesktop.org/wiki/MissingFunctionality
|
||||
|
@@ -18,9 +18,7 @@
|
||||
|
||||
<p>
|
||||
Primary Mesa download site:
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/">ftp.freedesktop.org</a> (FTP)
|
||||
or <a href="https://mesa.freedesktop.org/archive/">mesa.freedesktop.org</a>
|
||||
(HTTP).
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/">freedesktop.org</a> (FTP)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -89,11 +89,9 @@ types such as <code>EGLNativeDisplayType</code> or
|
||||
|
||||
<p>The available platforms are <code>x11</code>, <code>drm</code>,
|
||||
<code>wayland</code>, <code>surfaceless</code>, <code>android</code>,
|
||||
and <code>haiku</code>.
|
||||
The <code>android</code> platform can either be built as a system
|
||||
component, part of AOSP, using <code>Android.mk</code> files, or
|
||||
cross-compiled using appropriate <code>configure</code> options.
|
||||
The <code>haiku</code> platform can only be built with SCons.
|
||||
and <code>haiku</code>. The <code>android</code> platform
|
||||
can only be built as a system component, part of AOSP, while the
|
||||
<code>haiku</code> platform can only be built with SCons.
|
||||
Unless for special needs, the build system should
|
||||
select the right platforms automatically.</p>
|
||||
|
||||
|
@@ -163,10 +163,6 @@ 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>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>norbc - disable single sampled render buffer compression</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
@@ -16,33 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>May 9, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/11.1.4.html">Mesa 11.1.4</a> and
|
||||
<a href="relnotes/11.2.2.html">Mesa 11.2.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
|
||||
<br>
|
||||
NOTE: It is anticipated that 11.1.4 will be the final release in the 11.1.4
|
||||
series. Users of 11.1 are encouraged to migrate to the 11.2 series in order
|
||||
to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>April 17, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/11.1.3.html">Mesa 11.1.3</a> and
|
||||
<a href="relnotes/11.2.1.html">Mesa 11.2.1</a> are released.
|
||||
|
||||
These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
|
||||
</p>
|
||||
|
||||
<h2>April 4, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/11.2.0.html">Mesa 11.2.0</a> is released. This is a
|
||||
new development release. See the release notes for more information
|
||||
about the release.
|
||||
</p>
|
||||
|
||||
<h2>February 10, 2016</h2>
|
||||
<p>
|
||||
<a href="relnotes/11.1.2.html">Mesa 11.1.2</a> is released.
|
||||
|
@@ -73,7 +73,8 @@ The following are required for DRI-based hardware acceleration with Mesa:
|
||||
<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><a href="http://dri.freedesktop.org/libdrm/">libDRM</a>
|
||||
version 2.4.33 or later
|
||||
<li>Xorg server version 1.5 or later
|
||||
<li>Linux 2.6.28 or later
|
||||
</ul>
|
||||
|
@@ -46,10 +46,10 @@ library</em>. <br>
|
||||
|
||||
<p>
|
||||
The Mesa distribution consists of several components. Different copyrights
|
||||
and licenses apply to different components.
|
||||
For example, the GLX client code uses the SGI Free Software License B, and
|
||||
some of the Mesa device drivers are copyrighted by their authors.
|
||||
See below for a list of Mesa's main components and the license for each.
|
||||
and licenses apply to different components. For example, some demo programs
|
||||
are copyrighted by SGI, some of the Mesa device drivers are copyrighted by
|
||||
their authors. See below for a list of Mesa's main components and the license
|
||||
for each.
|
||||
</p>
|
||||
<p>
|
||||
The core Mesa library is licensed according to the terms of the MIT license.
|
||||
@@ -97,17 +97,13 @@ and their respective licenses.
|
||||
<pre>
|
||||
Component Location License
|
||||
------------------------------------------------------------------
|
||||
Main Mesa code src/mesa/ MIT
|
||||
Main Mesa code src/mesa/ Mesa (MIT)
|
||||
|
||||
Device drivers src/mesa/drivers/* MIT, generally
|
||||
|
||||
Gallium code src/gallium/ MIT
|
||||
|
||||
Ext headers include/GL/glext.h Khronos
|
||||
include/GL/glxext.h
|
||||
|
||||
GLX client code src/glx/ SGI Free Software License B
|
||||
|
||||
C11 thread include/c11/threads*.h Boost (permissive)
|
||||
emulation
|
||||
</pre>
|
||||
|
@@ -21,11 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="relnotes/11.1.3.html">11.1.3 release notes</a>
|
||||
<li><a href="relnotes/11.2.0.html">11.2.0 release notes</a>
|
||||
<li><a href="relnotes/11.1.2.html">11.1.2 release notes</a>
|
||||
<li><a href="relnotes/11.0.9.html">11.0.9 release notes</a>
|
||||
<li><a href="relnotes/11.1.1.html">11.1.1 release notes</a>
|
||||
|
@@ -1,319 +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 11.1.3 Release Notes / April 17, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 11.1.3 is a bug fix release which fixes bugs found since the 11.1.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 11.1.3 implements the OpenGL 4.1 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.1. OpenGL
|
||||
4.1 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
9e86c72b6b2e8adb53c1c4a0002ab267b45094d753eb9404b1db34f81ce94ccf mesa-11.1.3.tar.gz
|
||||
51f6658a214d75e4d9f05207586d7ed56ebba75c6b10841176fb6675efa310ac mesa-11.1.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=27512">Bug 27512</a> - Illegal instruction _mesa_x86_64_transform_points4_general</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=91526">Bug 91526</a> - World of Warcraft (on Wine) has UI corruption with nouveau</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92193">Bug 92193</a> - [SKL] ES2-CTS.gtf.GL2ExtensionTests.compressed_astc_texture.compressed_astc_texture fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93358">Bug 93358</a> - [HSW] Unreal Elemental demo - assertion error in copy_image_with_blitter</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93418">Bug 93418</a> - Geometry Shaders output wrong vertices on Sandy Bridge</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93524">Bug 93524</a> - Clover doesn't build</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93667">Bug 93667</a> - Crash in eglCreateImageKHR with huge texture size</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93813">Bug 93813</a> - Incorrect viewport range when GL_CLIP_ORIGIN is GL_UPPER_LEFT</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94050">Bug 94050</a> - test_vec4_register_coalesce regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94073">Bug 94073</a> - Miscompilation of abs_vec3_vert_xvary_ref.vert in WebGL conformance</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94088">Bug 94088</a> - [llvmpipe] SIGFPE pthread_barrier_destroy.c:40</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94193">Bug 94193</a> - [llvmpipe] Line antialiasing looks different when GL_LINE_STIPPLE is enabled with pattern 0xffff</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94195">Bug 94195</a> - [llvmpipe] Does not build with LLVM 3.7.x on Windows</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94388">Bug 94388</a> - r600_blit.c:281: r600_decompress_depth_textures: Assertion `tex->is_depth && !tex->is_flushing_texture' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94412">Bug 94412</a> - Trine 3 misrender</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94481">Bug 94481</a> - softpipe - access violation in img_filter_2d_nearest</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94595">Bug 94595</a> - [Mesa AMD&swrast] Texture views attached as framebuffers return their viewed tecture's color encoding and render incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94954">Bug 94954</a> - test_vec4_copy_propagation fails in `make check`</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix assert conditions for src/dst x/y offsets</li>
|
||||
</ul>
|
||||
|
||||
<p>Ben Widawsky (2):</p>
|
||||
<ul>
|
||||
<li>i965: Make sure we blit a full compressed block</li>
|
||||
<li>i965/skl: Add two missing device IDs</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix incorrect viewport position when GL_CLIP_ORIGIN = GL_LOWER_LEFT</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>i965/blorp: Fix hiz ops on MSAA surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian König (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: disable MPEG1</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian Schmidbauer (1):</p>
|
||||
<ul>
|
||||
<li>st/nine: specify WINAPI only for i386 and amd64</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Czarnowski (3):</p>
|
||||
<ul>
|
||||
<li>egl_dri2: NULL check for xcb_dri2_get_buffers_reply()</li>
|
||||
<li>egl_dri2: set correct error code if swapbuffers fails</li>
|
||||
<li>egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>mesa/fbobject: propogate Layered when reusing attachments.</li>
|
||||
</ul>
|
||||
|
||||
<p>Derek Foreman (1):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: Try to use wl_surface.damage_buffer for SwapBuffersWithDamage</li>
|
||||
</ul>
|
||||
|
||||
<p>Dongwon Kim (1):</p>
|
||||
<ul>
|
||||
<li>egl: move Null check to eglGetSyncAttribKHR to prevent Segfault</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (10):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 11.1.2</li>
|
||||
<li>get-pick-list.sh: Require explicit "11.1" for nominating stable patches</li>
|
||||
<li>cherry-ignore: do not pick nv50/ir commit</li>
|
||||
<li>automake: add nine to make distcheck</li>
|
||||
<li>install-gallium-links: port changes from install-lib-links</li>
|
||||
<li>automake: add more missing options for make distcheck</li>
|
||||
<li>mesa; add get-extra-pick-list.sh script into bin/</li>
|
||||
<li>egl/x11: check the return value of xcb_dri2_get_buffers_reply()</li>
|
||||
<li>nvc/ir: remove duplicate variable declaration</li>
|
||||
<li>Update version to 11.1.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (4):</p>
|
||||
<ul>
|
||||
<li>i965: Reupload push and pull constants when we get new shader image unit state.</li>
|
||||
<li>i965/fs: Add missing analysis invalidation in opt_sampler_eot().</li>
|
||||
<li>i965/fs: Add missing analysis invalidation in fixup_3src_null_dest().</li>
|
||||
<li>i965/vec4: Consider removal of no-op MOVs as progress during register coalesce.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (21):</p>
|
||||
<ul>
|
||||
<li>nvc0/ir: fix converting between predicate and gpr</li>
|
||||
<li>nvc0: add some missing PUSH_SPACE's</li>
|
||||
<li>nvc0: avoid negatives in PUSH_SPACE argument</li>
|
||||
<li>glsl: make sure builtins are initialized before getting the shader</li>
|
||||
<li>glsl: return cloned signature, not the builtin one</li>
|
||||
<li>nv50/ir: fix quadop emission in the presence of predication</li>
|
||||
<li>st/mesa: fix up result_src.type when doing i2u/u2i conversions</li>
|
||||
<li>meta/copy_image: use precomputed dst_internal_format to avoid segfault</li>
|
||||
<li>st/mesa: force depth mode to GL_RED for sized depth/stencil formats</li>
|
||||
<li>glx: update to updated version of EXT_create_context_es2_profile</li>
|
||||
<li>nv50,nvc0: bump minimum texture buffer offset alignment</li>
|
||||
<li>nvc0: reset TFB bufctx when we no longer hold a reference to the buffers</li>
|
||||
<li>glsl: avoid stack smashing when there are too many attributes</li>
|
||||
<li>nvc0: fix blit triangle size to fully cover FB's > 8192x8192</li>
|
||||
<li>nv50: reset TFB bufctx when we no longer hold a reference to the buffers</li>
|
||||
<li>nv50/ir: force-enable derivatives on TXD ops</li>
|
||||
<li>st/mesa: only minify depth for 3d targets</li>
|
||||
<li>nv50/ir: fix indirect texturing for non-array textures on nvc0</li>
|
||||
<li>nvc0/ir: fix picking of coordinates from tex instruction for textureGrad</li>
|
||||
<li>nvc0: disable primitive restart and index bias during blits</li>
|
||||
<li>nv50/ir: we can't load local memory directly into an output</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>nir/lower_vec_to_movs: Better report channels handled by insert_mov</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (3):</p>
|
||||
<ul>
|
||||
<li>mesa: Make glGet queries initialize ctx->Debug when necessary.</li>
|
||||
<li>mesa: Allow Get*() of several forgotten IsEnabled() pnames.</li>
|
||||
<li>i965: Only magnify depth for 3D textures, not array textures.</li>
|
||||
</ul>
|
||||
|
||||
<p>Koop Mast (1):</p>
|
||||
<ul>
|
||||
<li>st/clover: Add libelf cflags to the build</li>
|
||||
</ul>
|
||||
|
||||
<p>Marc-André Lureau (1):</p>
|
||||
<ul>
|
||||
<li>virtio_gpu: Add virtio 1.0 PCI ID to driver map</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix Hyper-Z on Stoney</li>
|
||||
<li>gallium/radeon: don't use temporary buffers for persistent mappings</li>
|
||||
<li>radeonsi: fix Hyper-Z hangs on P2 configs</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (3):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: don't copy ATTR into 3src instructions with complex swizzles</li>
|
||||
<li>i965/fs: Don't CSE negated multiplies with saturation.</li>
|
||||
<li>i965/vec4: Update vec4 unit tests for commit 01dacc83ff.</li>
|
||||
</ul>
|
||||
|
||||
<p>Nanley Chery (2):</p>
|
||||
<ul>
|
||||
<li>mesa/image: Make _mesa_clip_readpixels() work with renderbuffers</li>
|
||||
<li>mesa/readpix: Clip ReadPixels() area to the ReadBuffer's</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (2):</p>
|
||||
<ul>
|
||||
<li>r600g: clear compressed_depthtex/colortex_mask when binding buffer texture</li>
|
||||
<li>st/mesa: use the texture view's format for render-to-texture</li>
|
||||
</ul>
|
||||
|
||||
<p>Nishanth Peethambaran (2):</p>
|
||||
<ul>
|
||||
<li>st/omx: Remove trailing spaces</li>
|
||||
<li>st/omx/dec: Correct the timestamping</li>
|
||||
</ul>
|
||||
|
||||
<p>Oded Gabbay (8):</p>
|
||||
<ul>
|
||||
<li>gallium/radeon: Correctly translate colorswaps for big endian</li>
|
||||
<li>llvmpipe: use vpkswss when dst is signed</li>
|
||||
<li>gallium/radeon: return correct values for BE in r600_translate_colorswap</li>
|
||||
<li>gallium/radeon: remove separate BE path in r600_translate_colorswap</li>
|
||||
<li>gallium/r600: Don't let h/w do endian swap for colorformat</li>
|
||||
<li>gallium/radeon: disable evergreen_do_fast_color_clear for BE</li>
|
||||
<li>r600g: Do colorformat endian swap for PIPE_USAGE_STAGING</li>
|
||||
<li>radeonsi: Do colorformat endian swap for PIPE_USAGE_STAGING</li>
|
||||
</ul>
|
||||
|
||||
<p>Olivier Pena (1):</p>
|
||||
<ul>
|
||||
<li>scons: support for LLVM 3.7.</li>
|
||||
</ul>
|
||||
|
||||
<p>Patrick Baggett (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Use SSE prefetch instructions rather than 3DNow instructions</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Herring (10):</p>
|
||||
<ul>
|
||||
<li>Android: remove dependence on .SECONDEXPANSION</li>
|
||||
<li>Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system</li>
|
||||
<li>Android: add -Wno-date-time flag for clang</li>
|
||||
<li>Android: remove headers from LOCAL_SRC_FILES</li>
|
||||
<li>Android: clean-up and fix DRI module path handling</li>
|
||||
<li>freedreno: drop unnecessary -Wno-packed-bitfield-compat</li>
|
||||
<li>gallium/radeon: Add space between string literal and identifier</li>
|
||||
<li>r600: Make enum alu_op_flags unsigned</li>
|
||||
<li>virtio_gpu: Add PCI ID to driver map</li>
|
||||
<li>Android: fix x86 gallium builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (2):</p>
|
||||
<ul>
|
||||
<li>softpipe: fix anisotropic filtering crash</li>
|
||||
<li>draw: fix line stippling</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>nvc0: make sure to delete samplers used by compute shaders</li>
|
||||
</ul>
|
||||
|
||||
<p>Steinar H. Gunderson (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix locking of GLsync objects.</li>
|
||||
</ul>
|
||||
|
||||
<p>Tamil velan (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: increase max height to 4096 for VI and newer</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (2):</p>
|
||||
<ul>
|
||||
<li>winsys/svga: Fix an uninitialized return value</li>
|
||||
<li>winsys/svga: Increase the fence timeout</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: Do not use barriers if not using threads.</li>
|
||||
</ul>
|
||||
|
||||
<p>xavier (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: Do not distribute neg in expr_handler::fold_assoc() when folding multiplications.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,182 +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 11.1.4 Release Notes / May 9, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 11.1.4 is a bug fix release which fixes bugs found since the 11.1.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 11.1.4 implements the OpenGL 4.1 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.1. OpenGL
|
||||
4.1 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
034231fffb22621dadb8e4a968cb44752b8b68db7a2417568d63c275b3490cea mesa-11.1.4.tar.gz
|
||||
0f781e9072655305f576efd4204d183bf99ac8cb8d9e0dd9fc2b4093230a0eba mesa-11.1.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=92850">Bug 92850</a> - Segfault loading War Thunder</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93962">Bug 93962</a> - [HSW, regression, bisected, CTS] ES2-CTS.gtf.GL2FixedTests.scissor.scissor - segfault/asserts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94955">Bug 94955</a> - Uninitialized variables leads to random segfaults (valgrind log, apitrace attached)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94994">Bug 94994</a> - OSMesaGetProcAdress always fails on mangled OSMesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95026">Bug 95026</a> - Alien Isolation segfault after initial loading screen/video</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95133">Bug 95133</a> - X-COM Enemy Within crashes when entering tactical mission with Bonaire</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>gallium/util: initialize pipe_framebuffer_state to zeros</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (1):</p>
|
||||
<ul>
|
||||
<li>dri: Fix robust context creation via EGL attribute</li>
|
||||
</ul>
|
||||
|
||||
<p>Egbert Eich (1):</p>
|
||||
<ul>
|
||||
<li>dri2: Check for dummyContext to see if the glx_context is valid</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 11.1.3</li>
|
||||
<li>cherry-ignore: add non-applicable "fix of a fix"</li>
|
||||
<li>cherry-ignore: ignore st_DrawAtlasBitmaps mem leak fix</li>
|
||||
<li>cherry-ignore: add CodeEmitterGK110::emitATOM() fix</li>
|
||||
<li>Update version to 11.1.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (4):</p>
|
||||
<ul>
|
||||
<li>vc4: Fix subimage accesses to LT textures.</li>
|
||||
<li>vc4: Add support for rendering to cube map surfaces.</li>
|
||||
<li>vc4: Fix tests for format supported with nr_samples == 1.</li>
|
||||
<li>vc4: Make sure we recompile when sample_mask changes.</li>
|
||||
</ul>
|
||||
|
||||
<p>Frederic Devernay (1):</p>
|
||||
<ul>
|
||||
<li>glapi: fix _glapi_get_proc_address() for mangled function names</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>i965/tiled_memcopy: Add aligned mem_copy parameters to the [de]tiling functions</li>
|
||||
<li>i965/tiled_memcpy: Rework the RGBA -> BGRA mem_copy functions</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>egl/x11: authenticate before doing chipset id ioctls</li>
|
||||
</ul>
|
||||
|
||||
<p>Jose Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>winsys/sw/xlib: use correct free function for xlib_dt->data</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: fix tonga feedback buffer size</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>drirc: add a workaround for blackness in Warsow</li>
|
||||
<li>st/mesa: fix blit-based GetTexImage for non-finalized textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (5):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix bounds check in si_create_vertex_elements</li>
|
||||
<li>gallium/radeon: handle failure when mapping staging buffer</li>
|
||||
<li>st/glsl_to_tgsi: reduce stack explosion in recursive expression visitor</li>
|
||||
<li>gallium/radeon: fix crash in r600_set_streamout_targets</li>
|
||||
<li>radeonsi: correct NULL-pointer check in si_upload_const_buffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Oded Gabbay (4):</p>
|
||||
<ul>
|
||||
<li>r600g/radeonsi: send endian info to format translation functions</li>
|
||||
<li>r600g: set endianess of 16/32-bit buffers according to do_endian_swap</li>
|
||||
<li>r600g: use do_endian_swap in color swapping functions</li>
|
||||
<li>r600g: use do_endian_swap in texture swapping function</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (3):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: (trivial) initialize src1_alpha var to NULL</li>
|
||||
<li>gallivm: fix bogus argument order to lp_build_sample_mipmap function</li>
|
||||
<li>gallivm: make sampling more robust against bogus coordinates</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (5):</p>
|
||||
<ul>
|
||||
<li>gk110/ir: make use of IMUL32I for all immediates</li>
|
||||
<li>nvc0/ir: fix wrong emission of (a OP b) OP c</li>
|
||||
<li>gk110/ir: add emission for (a OP b) OP c</li>
|
||||
<li>nvc0: reduce GL_MAX_3D_TEXTURE_SIZE to 2048 on Kepler+</li>
|
||||
<li>st/glsl_to_tgsi: fix potential crash when allocating temporaries</li>
|
||||
</ul>
|
||||
|
||||
<p>Stefan Dirsch (1):</p>
|
||||
<ul>
|
||||
<li>dri3: Check for dummyContext to see if the glx_context is valid</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hindoe Paaboel Andersen (1):</p>
|
||||
<ul>
|
||||
<li>st/va: avoid dereference after free in vlVaDestroyImage</li>
|
||||
</ul>
|
||||
|
||||
<p>WuZhen (3):</p>
|
||||
<ul>
|
||||
<li>tgsi: initialize stack allocated struct</li>
|
||||
<li>winsys/sw/dri: use correct free function for dri_sw_dt->data</li>
|
||||
<li>android: enable dlopen() on all architectures</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -289,7 +289,7 @@ Microsoft Visual Studio 2013 or later is now required for building
|
||||
on Windows.
|
||||
Previously, Visual Studio 2008 and later were supported.
|
||||
|
||||
|
||||
TBD.
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -31,8 +31,7 @@ because compatibility contexts are not supported.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e2453014cd2cc5337a5180cdeffe8cf24fffbb83e20a96888e2b01df868eaae6 mesa-11.2.2.tar.gz
|
||||
40e148812388ec7c6d7b6657d5a16e2e8dabba8b97ddfceea5197947647bdfb4 mesa-11.2.2.tar.xz
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,335 +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.0 Release Notes / July 8, 2016</h1>
|
||||
|
||||
<p>
|
||||
Mesa 12.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 12.0.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 12.0.0 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>
|
||||
3b8fa4d86d78f8f6ec86055b92ad1afe869001483593b3dd4531184b8bc4fcfb mesa-12.0.0.tar.gz
|
||||
0090c025219318935124292b482e3439bc43e8c074ad01086449fcad88547dc6 mesa-12.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 4.3 on nvc0, radeonsi, i965 (Gen8+)</li>
|
||||
<li>OpenGL ES 3.1 on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_ES3_1_compatibility on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_compute_shader on nvc0, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_cull_distance on i965/gen6+, nv50, nvc0, llvmpipe, softpipe</li>
|
||||
<li>GL_ARB_framebuffer_no_attachments on nvc0, r600, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_internalformat_query2 on all drivers</li>
|
||||
<li>GL_ARB_query_buffer_object on i965/hsw+</li>
|
||||
<li>GL_ARB_robust_buffer_access_behavior on i965, nvc0, radeonsi</li>
|
||||
<li>GL_ARB_shader_atomic_counters on radeonsi, softpipe</li>
|
||||
<li>GL_ARB_shader_atomic_counter_ops on nvc0, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_shader_image_load_store on nvc0, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_shader_image_size on nvc0, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_shader_storage_buffer_objects on radeonsi, softpipe</li>
|
||||
<li>GL_ATI_fragment_shader on all Gallium drivers</li>
|
||||
<li>GL_EXT_base_instance on all drivers that support GL_ARB_base_instance</li>
|
||||
<li>GL_EXT_clip_cull_distance on all drivers that support GL_ARB_cull_distance</li>
|
||||
<li>GL_KHR_robustness on i965</li>
|
||||
<li>GL_OES_copy_image on i965 (Baytrail and Gen8+)</li>
|
||||
<li>GL_OES_draw_buffers_indexed and GL_EXT_draw_buffers_indexed on all drivers that support GL_ARB_draw_buffers_blend</li>
|
||||
<li>GL_OES_gpu_shader5 and GL_EXT_gpu_shader5 on all drivers that support GL_ARB_gpu_shader5</li>
|
||||
<li>GL_OES_sample_shading on i965, nvc0, r600, radeonsi</li>
|
||||
<li>GL_OES_sample_variables on i965, nvc0, r600, radeonsi</li>
|
||||
<li>GL_OES_shader_image_atomic on all drivers that support GL_ARB_shader_image_load_store</li>
|
||||
<li>GL_OES_shader_io_blocks on i965, nvc0, radeonsi</li>
|
||||
<li>GL_OES_shader_multisample_interpolation on i965, nvc0, r600, radeonsi</li>
|
||||
<li>GL_OES_texture_border_clamp and GL_EXT_texture_border_clamp on all drivers that support GL_ARB_texture_border_clamp</li>
|
||||
<li>GL_OES_texture_buffer and GL_EXT_texture_buffer on i965, nvc0, radeonsi</li>
|
||||
<li>EGL_KHR_reusable_sync on all drivers</li>
|
||||
<li>GL_ARB_stencil_texture8 and GL_OES_stencil_texture8 on i965/gen8+</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=42187">Bug 42187</a> - ES 1.1 conformance pntszary.c fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71789">Bug 71789</a> - [r300g] Visuals not found in (default) depth = 24</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81585">Bug 81585</a> - piglit spec_glsl-1.10_compiler_literals_invalid-float-suffix-capital-f.vert fails</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=89607">Bug 89607</a> - Assertion hit in opt_array_splitting with recursive array indexing</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=91526">Bug 91526</a> - World of Warcraft (on Wine) has UI corruption with nouveau</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92363">Bug 92363</a> - [BSW/BDW] ogles1conform Gets test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92628">Bug 92628</a> - HTTP site for Mesa downloads</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92743">Bug 92743</a> - Centroid shouldn't have to match between the FS and the VS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92850">Bug 92850</a> - Segfault loading War Thunder</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93054">Bug 93054</a> - [BDW] DiRT Showdown and Bioshock Infinite only render half the screen (bottom left triangle)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93524">Bug 93524</a> - Clover doesn't build</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93551">Bug 93551</a> - Divinity: Original Sin Enhanced Edition(Native) crash on start</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93667">Bug 93667</a> - Crash in eglCreateImageKHR with huge texture size</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93767">Bug 93767</a> - Glitches with soft shadows and MSAA in Knights of the Old Republic 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93840">Bug 93840</a> - [i965] Alien: Isolation fails with GL_ARB_compute_shader enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93962">Bug 93962</a> - [HSW, regression, bisected, CTS] ES2-CTS.gtf.GL2FixedTests.scissor.scissor - segfault/asserts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94081">Bug 94081</a> - [HSW] compute shader shared var + atomic op = fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94086">Bug 94086</a> - Multiple conflicting libGL libraries installed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94116">Bug 94116</a> - program interface queries not returning right data for UBO / GL_BLOCK_INDEX</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94129">Bug 94129</a> - Mesa's compiler should warn about undefined values</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94181">Bug 94181</a> - [regression] piglit.spec.ext_framebuffer_object.getteximage-formats init-by-clear-and-render</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94193">Bug 94193</a> - [llvmpipe] Line antialiasing looks different when GL_LINE_STIPPLE is enabled with pattern 0xffff</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94198">Bug 94198</a> - [HSW] segfault in copy image when copying from cubemap to 2d</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94199">Bug 94199</a> - Shader abort/crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94253">Bug 94253</a> - [llvmpipe] piglit gl-1.0-swapbuffers-behavior regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94254">Bug 94254</a> - [llvmpipe] [softpipe] piglit read-front regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94257">Bug 94257</a> - [softpipe] piglit glx-copy-sub-buffer regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94274">Bug 94274</a> - [swrast] piglit arb_occlusion_query2-render regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94284">Bug 94284</a> - [radeonsi] outlast segfault on start</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94291">Bug 94291</a> - llvmpipe tests fail if built on skylake i7-6700k</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94348">Bug 94348</a> - vkBindImageMemory doesn't take into account the offset when the image is used as a depth buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94383">Bug 94383</a> - build error on i386 when enabling swr</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94388">Bug 94388</a> - r600_blit.c:281: r600_decompress_depth_textures: Assertion `tex->is_depth && !tex->is_flushing_texture' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94412">Bug 94412</a> - Trine 3 misrender</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94447">Bug 94447</a> - glsl/glcpp/tests/glcpp-test-cr-lf regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94453">Bug 94453</a> - dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_{center,corner} fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94454">Bug 94454</a> - dEQP-GLES3.functional.clipping.point.wide_point_clip* fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94456">Bug 94456</a> - dEQP-GLES3.functional.state_query.floats.{blend_color,color_clear_value,depth_clear_value}_getinteger64 fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94458">Bug 94458</a> - dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_x_size_initial fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94468">Bug 94468</a> - [HSW, regression, bisected] numerous Sascha demos render incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94481">Bug 94481</a> - softpipe - access violation in img_filter_2d_nearest</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94485">Bug 94485</a> - dEQP-GLES3.functional.negative_api.shader.compile_shader and delete_shader broken by Meta</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94524">Bug 94524</a> - Wrong gl_TessLevelOuter interpretation for isolines</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94595">Bug 94595</a> - [Mesa AMD&swrast] Texture views attached as framebuffers return their viewed tecture's color encoding and render incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94657">Bug 94657</a> - [llvmpipe] [softpipe] piglit arb_texture_view-getteximage-srgb regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94661">Bug 94661</a> - [bdw, skl] vk-cts: new test failing</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94671">Bug 94671</a> - [radeonsi] Blue-ish textures in Shadow of Mordor</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94713">Bug 94713</a> - [Gen8+] ES 3.1 Stencil texturing broken for 2DArray/Cubes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94747">Bug 94747</a> - Convert phi nodes to logical operations</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94835">Bug 94835</a> - Increase fragment shader sample limits from 16 to 32 (AMD Linux - Mesa/RadeonSi)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94847">Bug 94847</a> - [ES3.1CTS] es31-cts.draw_buffers_indexed.color_masks fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94896">Bug 94896</a> - [vulkan] new CTS tests fail on i965</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94904">Bug 94904</a> - [vulkan, BSW] dEQP-VK.api.object_management.multithreaded_per_thread_device intermittent crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94907">Bug 94907</a> - codegen/nv50_ir_ra.cpp:1330:29: error: ‘isinf’ was not declared in this scope</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94909">Bug 94909</a> - [llvmpipe] piglit fs-roundEven-float regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94917">Bug 94917</a> - radeonsi supports GL_ARB_shader_storage_buffer_object with 0 GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94924">Bug 94924</a> - [GEN8] Ungine Valley fails to run due to "intel_do_flush_locked failed: Input/output error"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94925">Bug 94925</a> - Crash in egl_dri3_get_dri_context with Dolphin EGL/X11 in single-core mode</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94944">Bug 94944</a> - [regression, hswgt1] gpu hang on arb_shader_image_load_store</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94955">Bug 94955</a> - Uninitialized variables leads to random segfaults (valgrind log, apitrace attached)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94969">Bug 94969</a> - build fails because install-data-local doesn't follow $DESTDIR</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94972">Bug 94972</a> - blend failures on llvmpipe with llvm 3.7 due to vector selects</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94979">Bug 94979</a> - dolphin-emu rendering broken on gallium/SWR + crashing often</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94984">Bug 94984</a> - XCom2 crashes with SIGSEGV on radeonsi</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94994">Bug 94994</a> - OSMesaGetProcAdress always fails on mangled OSMesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94997">Bug 94997</a> - [vulkan, SKL,BDW,HSW] deqp-vk.spirv_assembly.instruction.compute.opcopymemory.array regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94998">Bug 94998</a> - [vulkan] deqp-vk.pipeline.push_constant.graphics_pipeline.count_3shader_vgf regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95001">Bug 95001</a> - [vulkan] deqp-vk.binding_model.shader_access regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95005">Bug 95005</a> - Unreal engine demos segfault after shader compilation error with OpenGL 4.3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95026">Bug 95026</a> - Alien Isolation segfault after initial loading screen/video</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95034">Bug 95034</a> - vkResetCommandPool should not destroy the command buffers.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95071">Bug 95071</a> - [bisected] Wrong colors in KDE/Qt applications</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95133">Bug 95133</a> - X-COM Enemy Within crashes when entering tactical mission with Bonaire</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95138">Bug 95138</a> - [deqp, 32bit, gen8+] deqp-gles31.functional.draw_indirect.negative</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95142">Bug 95142</a> - [ES3.1CTS,GEN8] ESEXT-CTS.draw_elements_base_vertex_tests.invalid_mapped_bos assertion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95158">Bug 95158</a> - glx-test compilation fails in `make check`</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95164">Bug 95164</a> - GLSL compiler (linker I think) emits assertion upon call to glAttachShader</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95180">Bug 95180</a> - rasterizer/memory/Convert.h:170:9: error: ‘__builtin_isnan’ is not a member of ‘std’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95198">Bug 95198</a> - Shadow of Mordor beta has missing geometry with gl 4.3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95203">Bug 95203</a> - Tonga GST/OMX/VCE encode broken since mesa: st/omx: Fix resource leak on OMX_ErrorNone</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95211">Bug 95211</a> - scons TypeError: 'tuple' object is not callable</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=95251">Bug 95251</a> - vdpau decoder capabilities: not supported</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95252">Bug 95252</a> - [deqp] deqp-gles31.functional.debug.object_labels.query_length_only crashes</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95292">Bug 95292</a> - [IVB,SKL] vulkan: stride/tiling issue with vkCmdCopyBufferToImage from larger source buffer into destination image</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95296">Bug 95296</a> - nir_lower_double_packing.c:79:4: error: void function 'lower_double_pack_impl' should not return a value [-Wreturn-type]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95324">Bug 95324</a> - GL33-CTS.gtf32.GL3Tests.packed_pixels.packed_pixels_pbo fails in one case on Haswell</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95370">Bug 95370</a> - [965GM] piglit fails many tests after a5d7e144</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95373">Bug 95373</a> - Suspicious warning in brw_blorp_clear.cpp</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95403">Bug 95403</a> - [GK110] misaligned_gpr spamming dmesg when playing victor vran</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=95456">Bug 95456</a> - glXGetFBConfigs has invalid screen bounds</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=95537">Bug 95537</a> - Invalid argument in anv_ioctl called from anv_physical_device_init</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96221">Bug 96221</a> - nir/nir_lower_tex.c:202: error: unknown field ‘f32’ specified in initializer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96228">Bug 96228</a> - SSBO test regressions from mesa 5b267509</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96236">Bug 96236</a> - dri_interface.h:404: error: redefinition of typedef ‘mesa_glinterop_device_info’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96238">Bug 96238</a> - swr fails to build outside of the main directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96239">Bug 96239</a> - [radeonsi tessellation] [R9 290/390] Random "texture flickering" (Shadow of Mordor, Tomb Raider, Unigine Heaven 4.0)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96258">Bug 96258</a> - [NVC0] Hang when running compute program</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=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=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=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=96765">Bug 96765</a> - BindFragDataLocationIndexed on array fragment shader output.</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>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
Radeon drivers (r600 and radeonsi) now require LLVm 3.6 as a minimum.
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,66 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 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>
|
||||
<p>
|
||||
Mesa 12.0.1 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>
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=96864">Bug 96864</a> - Mesa 12.0 radeon build broken</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 12.0.0</li>
|
||||
<li>radeon: reference the correct cdw/max_dw</li>
|
||||
<li>Update version to 12.0.1</li>
|
||||
<li>docs: add release notes for 12.0.1</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -68,39 +68,21 @@ To get the Mesa sources anonymously (read-only):
|
||||
<h2 id="developer">Developer git Access</h2>
|
||||
|
||||
<p>
|
||||
If you wish to become a Mesa developer with git-write privilege, please
|
||||
follow this procedure:
|
||||
Mesa developers need to first have an account on
|
||||
<a href="http://www.freedesktop.org">freedesktop.org</a>.
|
||||
To get an account, please ask Brian or the other Mesa developers for
|
||||
permission.
|
||||
Then, if there are no objections, follow this
|
||||
<a href="http://www.freedesktop.org/wiki/AccountRequests">
|
||||
procedure</a>.
|
||||
</p>
|
||||
<ol>
|
||||
<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 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.
|
||||
<li>Wait for someone to review the code and give you a <code>Reviewed-by</code>
|
||||
statement.
|
||||
<li>You'll have to rely on another Mesa developer to push your initial patches
|
||||
after they've been reviewed.
|
||||
</ul>
|
||||
<li>After you've demonstrated the ability to write good code and have had
|
||||
a dozen or so patches accepted you can apply for an account.
|
||||
<li>Occasionally, but rarely, someone may be given a git account sooner, but
|
||||
only if they're being supervised by another Mesa developer at the same
|
||||
organization and planning to work in a limited area of the code or on a
|
||||
separate branch.
|
||||
<li>To apply for an account, follow
|
||||
<a href="http://www.freedesktop.org/wiki/AccountRequests">these directions</a>.
|
||||
It's also appreciated if you briefly describe what you intend to do (work
|
||||
on a particular driver, add a new extension, etc.) in the bugzilla record.
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Once your account is established:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Install the git software on your computer if needed.<br><br>
|
||||
<li>Get an initial, local copy of the repository with:
|
||||
<pre>
|
||||
git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
|
||||
|
@@ -209,6 +209,51 @@ The final vertex and fragment programs may be interpreted in software
|
||||
(see drivers/dri/i915/i915_fragprog.c for example).
|
||||
</p>
|
||||
|
||||
<h3>Code Generation Options</h3>
|
||||
|
||||
<p>
|
||||
Internally, there are several options that control the compiler's code
|
||||
generation and instruction selection.
|
||||
These options are seen in the gl_shader_state struct and may be set
|
||||
by the device driver to indicate its preferences:
|
||||
|
||||
<pre>
|
||||
struct gl_shader_state
|
||||
{
|
||||
...
|
||||
/** Driver-selectable options: */
|
||||
GLboolean EmitHighLevelInstructions;
|
||||
GLboolean EmitCondCodes;
|
||||
GLboolean EmitComments;
|
||||
};
|
||||
</pre>
|
||||
|
||||
<dl>
|
||||
<dt>EmitHighLevelInstructions</dt>
|
||||
<dd>
|
||||
This option controls instruction selection for loops and conditionals.
|
||||
If the option is set high-level IF/ELSE/ENDIF, LOOP/ENDLOOP, CONT/BRK
|
||||
instructions will be emitted.
|
||||
Otherwise, those constructs will be implemented with BRA instructions.
|
||||
</dd>
|
||||
|
||||
<dt>EmitCondCodes</dt>
|
||||
<dd>
|
||||
If set, condition codes (ala GL_NV_fragment_program) will be used for
|
||||
branching and looping.
|
||||
Otherwise, ordinary registers will be used (the IF instruction will
|
||||
examine the first operand's X component and do the if-part if non-zero).
|
||||
This option is only relevant if EmitHighLevelInstructions is set.
|
||||
</dd>
|
||||
|
||||
<dt>EmitComments</dt>
|
||||
<dd>
|
||||
If set, instructions will be annotated with comments to help with debugging.
|
||||
Extra NOP instructions will also be inserted.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2 id="validation">Compiler Validation</h2>
|
||||
|
||||
<p>
|
||||
|
@@ -34,7 +34,8 @@ Hardware drivers include:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Intel i965, i945, i915.
|
||||
See <a href="https://01.org/linuxgraphics">Intel's website</a></li>
|
||||
See <a href="http://intellinuxgraphics.org/index.html">
|
||||
Intel's website</a></li>
|
||||
<li>AMD Radeon series.
|
||||
See <a href="http://www.x.org/wiki/RadeonFeature">RadeonFeature</a></li>
|
||||
<li>NVIDIA GPUs.
|
||||
|
@@ -31,7 +31,7 @@
|
||||
<dd>is a very useful tool for tracking down
|
||||
memory-related problems in your code.</dd>
|
||||
|
||||
<dt><a href="http://scan.coverity.com/projects/mesa">Coverity</a><dt>
|
||||
<dt><a href="http:scan.coverity.com/projects/mesa">Coverity</a><dt>
|
||||
<dd>provides static code analysis of Mesa. If you create an account
|
||||
you can see the results and try to fix outstanding issues.</dd>
|
||||
</dl>
|
||||
|
8
doxygen/.gitignore
vendored
8
doxygen/.gitignore
vendored
@@ -1,6 +1,9 @@
|
||||
*.db
|
||||
*.tag
|
||||
*.tmp
|
||||
agpgart
|
||||
array_cache
|
||||
core
|
||||
core_subset
|
||||
gallium
|
||||
gbm
|
||||
@@ -10,8 +13,11 @@ i965
|
||||
main
|
||||
math
|
||||
math_subset
|
||||
nir
|
||||
miniglx
|
||||
radeondrm
|
||||
radeonfb
|
||||
radeon_subset
|
||||
shader
|
||||
swrast
|
||||
swrast_setup
|
||||
tnl
|
||||
|
@@ -12,21 +12,20 @@ FULL = \
|
||||
vbo.doxy \
|
||||
glapi.doxy \
|
||||
glsl.doxy \
|
||||
shader.doxy \
|
||||
swrast.doxy \
|
||||
swrast_setup.doxy \
|
||||
tnl.doxy \
|
||||
tnl_dd.doxy \
|
||||
gbm.doxy \
|
||||
i965.doxy \
|
||||
nir.doxy
|
||||
i965.doxy
|
||||
|
||||
full: $(FULL:.doxy=.tag)
|
||||
$(foreach FILE,$(FULL),doxygen $(FILE);)
|
||||
|
||||
SUBSET = \
|
||||
main.doxy \
|
||||
math.doxy \
|
||||
gallium.doxy
|
||||
math.doxy
|
||||
|
||||
subset: $(SUBSET:.doxy=.tag)
|
||||
$(foreach FILE,$(SUBSET),doxygen $(FILE);)
|
||||
|
@@ -53,6 +53,16 @@ CREATE_SUBDIRS = NO
|
||||
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# This tag can be used to specify the encoding used in the generated output.
|
||||
# The encoding is not always determined by the language that is chosen,
|
||||
# but also whether or not the output is meant for Windows or non-Windows users.
|
||||
# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
|
||||
# forces the Windows encoding (this is the default for the Windows binary),
|
||||
# whereas setting the tag to NO uses a Unix-style encoding (the default for
|
||||
# all platforms other than Windows).
|
||||
|
||||
USE_WINDOWS_ENCODING = NO
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||
# include brief member descriptions after the members that are listed in
|
||||
# the file and class documentation (similar to JavaDoc).
|
||||
@@ -137,6 +147,13 @@ JAVADOC_AUTOBRIEF = YES
|
||||
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
|
||||
# If the DETAILS_AT_TOP tag is set to YES then Doxygen
|
||||
# will output the detailed description near the top, like JavaDoc.
|
||||
# If set to NO, the detailed description appears after the member
|
||||
# documentation.
|
||||
|
||||
DETAILS_AT_TOP = YES
|
||||
|
||||
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
|
||||
# member inherits the documentation from any documented member that it
|
||||
# re-implements.
|
||||
@@ -590,6 +607,12 @@ HTML_FOOTER =
|
||||
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
||||
# files or namespaces will be aligned in HTML using tables. If set to
|
||||
# NO a bullet list will be used.
|
||||
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
|
||||
# will be generated that can be used as input for tools like the
|
||||
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
|
||||
@@ -816,6 +839,18 @@ GENERATE_XML = NO
|
||||
|
||||
XML_OUTPUT = xml
|
||||
|
||||
# The XML_SCHEMA tag can be used to specify an XML schema,
|
||||
# which can be used by a validating XML parser to check the
|
||||
# syntax of the XML files.
|
||||
|
||||
XML_SCHEMA =
|
||||
|
||||
# The XML_DTD tag can be used to specify an XML DTD,
|
||||
# which can be used by a validating XML parser to check the
|
||||
# syntax of the XML files.
|
||||
|
||||
XML_DTD =
|
||||
|
||||
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
|
||||
# dump the program listings (including syntax highlighting
|
||||
# and cross-referencing information) to the XML output. Note that
|
||||
@@ -1069,6 +1104,22 @@ DOT_PATH =
|
||||
|
||||
DOTFILE_DIRS =
|
||||
|
||||
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
|
||||
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
|
||||
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
|
||||
# graphs generated by dot. A depth value of 3 means that only nodes reachable
|
||||
# from the root by following a path via at most 3 edges will be shown. Nodes that
|
||||
|
@@ -190,7 +190,8 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = \
|
||||
math_subset.tag=../math_subset
|
||||
math_subset.tag=../math_subset \
|
||||
miniglx.tag=../miniglx
|
||||
GENERATE_TAGFILE = core_subset.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
|
@@ -6,9 +6,7 @@ doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
||||
doxygen core.doxy
|
||||
doxygen glapi.doxy
|
||||
doxygen glsl.doxy
|
||||
doxygen nir.doxy
|
||||
doxygen i965.doxy
|
||||
doxygen shader.doxy
|
||||
|
||||
echo Building again, to resolve tags
|
||||
doxygen tnl_dd.doxy
|
||||
@@ -17,8 +15,5 @@ doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
||||
doxygen core.doxy
|
||||
doxygen glapi.doxy
|
||||
doxygen glsl.doxy
|
||||
doxygen nir.doxy
|
||||
doxygen i965.doxy
|
||||
doxygen shader.doxy
|
||||
|
@@ -39,10 +39,10 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
swrast_setup.tag=../gbm_setup \
|
||||
tnl.tag=../tnl \
|
||||
vbo.tag=../vbo
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = gbm.tag
|
||||
|
@@ -9,7 +9,7 @@ PROJECT_NAME = "Mesa GL API dispatcher"
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/mapi/glapi/
|
||||
INPUT = ../src/mesa/glapi/
|
||||
FILE_PATTERNS = *.c *.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
@@ -39,11 +39,11 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
vbo.tag=../vbo
|
||||
GENERATE_TAGFILE = glapi.tag
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
|
@@ -9,12 +9,11 @@ PROJECT_NAME = "Mesa GLSL module"
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/compiler/glsl/
|
||||
FILE_PATTERNS = *.c *.cpp *.h
|
||||
INPUT = ../src/glsl/
|
||||
RECURSIVE = NO
|
||||
EXCLUDE = ../src/compiler/glsl/glsl_lexer.cpp \
|
||||
../src/compiler/glsl/glsl_parser.cpp \
|
||||
../src/compiler/glsl/glsl_parser.h
|
||||
EXCLUDE = ../src/glsl/glsl_lexer.cpp \
|
||||
../src/glsl/glsl_parser.cpp \
|
||||
../src/glsl/glsl_parser.h
|
||||
EXCLUDE_PATTERNS =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
|
@@ -8,9 +8,9 @@
|
||||
<a class="qindex" href="../main/index.html">core</a> |
|
||||
<a class="qindex" href="../glapi/index.html">glapi</a> |
|
||||
<a class="qindex" href="../glsl/index.html">glsl</a> |
|
||||
<a class="qindex" href="../nir/index.html">nir</a> |
|
||||
<a class="qindex" href="../vbo/index.html">vbo</a> |
|
||||
<a class="qindex" href="../math/index.html">math</a> |
|
||||
<a class="qindex" href="../shader/index.html">shader</a> |
|
||||
<a class="qindex" href="../swrast/index.html">swrast</a> |
|
||||
<a class="qindex" href="../swrast_setup/index.html">swrast_setup</a> |
|
||||
<a class="qindex" href="../tnl/index.html">tnl</a> |
|
||||
|
@@ -6,5 +6,6 @@
|
||||
<div class="qindex">
|
||||
<a class="qindex" href="../core_subset/index.html">Mesa Core</a> |
|
||||
<a class="qindex" href="../math_subset/index.html">math</a> |
|
||||
<a class="qindex" href="../miniglx/index.html">MiniGLX</a> |
|
||||
<a class="qindex" href="../radeon_subset/index.html">radeon_subset</a>
|
||||
</div>
|
||||
|
@@ -46,5 +46,5 @@ TAGFILES = glsl.tag=../glsl \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
vbo.tag=../vbo
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = i965.tag
|
||||
|
@@ -43,6 +43,7 @@ TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
vbo.tag=../vbo \
|
||||
glapi.tag=../glapi \
|
||||
math.tag=../math \
|
||||
shader.tag=../shader \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl
|
||||
|
@@ -41,7 +41,7 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
main.tag=../main \
|
||||
main.tag=../core \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
|
@@ -168,7 +168,8 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = \
|
||||
core_subset.tag=../core_subset \
|
||||
math_subset.tag=../math_subset
|
||||
math_subset.tag=../math_subset \
|
||||
miniglx.tag=../miniglx
|
||||
GENERATE_TAGFILE = radeon_subset.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
|
@@ -5,46 +5,45 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa NIR module"
|
||||
PROJECT_NAME = "Mesa Vertex and Fragment Program code"
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the input files
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/compiler/nir
|
||||
FILE_PATTERNS = *.c *.cpp *.h
|
||||
INPUT = ../src/mesa/shader/
|
||||
FILE_PATTERNS = *.c *.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the HTML output
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
HTML_OUTPUT = nir
|
||||
HTML_OUTPUT = shader
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include/
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::additions related to external references
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = glsl.tag=../glsl \
|
||||
main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
vbo.tag=../vbo
|
||||
GENERATE_TAGFILE = nir.tag
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
@@ -39,10 +39,10 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
vbo.tag=../vbo
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
|
@@ -41,7 +41,7 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
main.tag=../main \
|
||||
main.tag=../core \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
tnl.tag=../tnl \
|
||||
|
@@ -40,10 +40,11 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
main.tag=../main \
|
||||
TAGFILES = tnl_dd.tag=../tnl \
|
||||
main.tag=../core \
|
||||
math.tag=../math \
|
||||
shader.tag=../shader \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
vbo.tag=../vbo
|
||||
swrast_setup.tag=swrast_setup \
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = tnl.tag
|
||||
|
@@ -39,10 +39,11 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
shader.tag=../shader \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
vbo.tag=../vbo
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = tnl_dd.tag
|
||||
|
@@ -40,8 +40,9 @@ SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = main.tag=../main \
|
||||
TAGFILES = main.tag=../core \
|
||||
math.tag=../math \
|
||||
shader.tag=../shader \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
|
@@ -260,7 +260,7 @@ struct IDirect3DDevice9 : public IUnknown
|
||||
virtual HRESULT WINAPI SetStreamSourceFreq(UINT StreamNumber, UINT Setting) = 0;
|
||||
virtual HRESULT WINAPI GetStreamSourceFreq(UINT StreamNumber, UINT *pSetting) = 0;
|
||||
virtual HRESULT WINAPI SetIndices(IDirect3DIndexBuffer9 *pIndexData) = 0;
|
||||
virtual HRESULT WINAPI GetIndices(IDirect3DIndexBuffer9 **ppIndexData) = 0;
|
||||
virtual HRESULT WINAPI GetIndices(IDirect3DIndexBuffer9 **ppIndexData, UINT *pBaseVertexIndex) = 0;
|
||||
virtual HRESULT WINAPI CreatePixelShader(const DWORD *pFunction, IDirect3DPixelShader9 **ppShader) = 0;
|
||||
virtual HRESULT WINAPI SetPixelShader(IDirect3DPixelShader9 *pShader) = 0;
|
||||
virtual HRESULT WINAPI GetPixelShader(IDirect3DPixelShader9 **ppShader) = 0;
|
||||
@@ -848,7 +848,7 @@ typedef struct IDirect3DDevice9Vtbl
|
||||
HRESULT (WINAPI *SetStreamSourceFreq)(IDirect3DDevice9 *This, UINT StreamNumber, UINT Setting);
|
||||
HRESULT (WINAPI *GetStreamSourceFreq)(IDirect3DDevice9 *This, UINT StreamNumber, UINT *pSetting);
|
||||
HRESULT (WINAPI *SetIndices)(IDirect3DDevice9 *This, IDirect3DIndexBuffer9 *pIndexData);
|
||||
HRESULT (WINAPI *GetIndices)(IDirect3DDevice9 *This, IDirect3DIndexBuffer9 **ppIndexData);
|
||||
HRESULT (WINAPI *GetIndices)(IDirect3DDevice9 *This, IDirect3DIndexBuffer9 **ppIndexData, UINT *pBaseVertexIndex);
|
||||
HRESULT (WINAPI *CreatePixelShader)(IDirect3DDevice9 *This, const DWORD *pFunction, IDirect3DPixelShader9 **ppShader);
|
||||
HRESULT (WINAPI *SetPixelShader)(IDirect3DDevice9 *This, IDirect3DPixelShader9 *pShader);
|
||||
HRESULT (WINAPI *GetPixelShader)(IDirect3DDevice9 *This, IDirect3DPixelShader9 **ppShader);
|
||||
@@ -975,7 +975,7 @@ struct IDirect3DDevice9
|
||||
#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
|
||||
#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
|
||||
#define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
|
||||
#define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
|
||||
#define IDirect3DDevice9_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b)
|
||||
#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
|
||||
#define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
|
||||
#define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
|
||||
@@ -1099,7 +1099,7 @@ typedef struct IDirect3DDevice9ExVtbl
|
||||
HRESULT (WINAPI *SetStreamSourceFreq)(IDirect3DDevice9Ex *This, UINT StreamNumber, UINT Setting);
|
||||
HRESULT (WINAPI *GetStreamSourceFreq)(IDirect3DDevice9Ex *This, UINT StreamNumber, UINT *pSetting);
|
||||
HRESULT (WINAPI *SetIndices)(IDirect3DDevice9Ex *This, IDirect3DIndexBuffer9 *pIndexData);
|
||||
HRESULT (WINAPI *GetIndices)(IDirect3DDevice9Ex *This, IDirect3DIndexBuffer9 **ppIndexData);
|
||||
HRESULT (WINAPI *GetIndices)(IDirect3DDevice9Ex *This, IDirect3DIndexBuffer9 **ppIndexData, UINT *pBaseVertexIndex);
|
||||
HRESULT (WINAPI *CreatePixelShader)(IDirect3DDevice9Ex *This, const DWORD *pFunction, IDirect3DPixelShader9 **ppShader);
|
||||
HRESULT (WINAPI *SetPixelShader)(IDirect3DDevice9Ex *This, IDirect3DPixelShader9 *pShader);
|
||||
HRESULT (WINAPI *GetPixelShader)(IDirect3DDevice9Ex *This, IDirect3DPixelShader9 **ppShader);
|
||||
@@ -1242,7 +1242,7 @@ struct IDirect3DDevice9Ex
|
||||
#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
|
||||
#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
|
||||
#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
|
||||
#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
|
||||
#define IDirect3DDevice9Ex_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b)
|
||||
#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
|
||||
#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
|
||||
#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
|
||||
|
@@ -173,16 +173,22 @@ typedef struct _RGNDATA {
|
||||
#define D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400
|
||||
#define D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
|
||||
|
||||
/* Windows calling convention */
|
||||
#ifndef WINAPI
|
||||
#if defined(__x86_64__) && !defined(__ILP32__)
|
||||
|
||||
#ifdef WINAPI
|
||||
#undef WINAPI
|
||||
#endif /* WINAPI*/
|
||||
|
||||
#ifdef __GNUC__
|
||||
#if (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64)
|
||||
#define WINAPI __attribute__((ms_abi))
|
||||
#elif defined(__i386__)
|
||||
#elif defined(__i386) || defined(_M_IX86)
|
||||
#define WINAPI __attribute__((__stdcall__))
|
||||
#else /* neither amd64 nor i386 */
|
||||
#define WINAPI
|
||||
#endif
|
||||
#endif /* WINAPI */
|
||||
#else /* __GNUC__ */
|
||||
#define WINAPI
|
||||
#endif
|
||||
|
||||
/* Implementation caps */
|
||||
#define D3DPRESENT_BACK_BUFFERS_MAX 3
|
||||
|
@@ -34,6 +34,17 @@ extern "C" {
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#ifndef EGL_MESA_drm_display
|
||||
#define EGL_MESA_drm_display 1
|
||||
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLDisplay EGLAPIENTRY eglGetDRMDisplayMESA(int fd);
|
||||
#endif /* EGL_EGLEXT_PROTOTYPES */
|
||||
|
||||
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
|
||||
|
||||
#endif /* EGL_MESA_drm_display */
|
||||
|
||||
#ifdef EGL_MESA_drm_image
|
||||
/* Mesa's extension to EGL_MESA_drm_image... */
|
||||
#ifndef EGL_DRM_BUFFER_USE_CURSOR_MESA
|
||||
|
@@ -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: 32433 $ on $Date: 2016-02-10 02:02:08 -0500 (Wed, 10 Feb 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__)
|
||||
@@ -1160,22 +1160,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_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
@@ -2113,10 +2097,6 @@ GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data)
|
||||
|
||||
#ifndef GL_VERSION_4_2
|
||||
#define GL_VERSION_4_2 1
|
||||
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
|
||||
@@ -2662,6 +2642,7 @@ GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLui
|
||||
#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
|
||||
#define GL_TEXTURE_TARGET 0x1006
|
||||
#define GL_QUERY_TARGET 0x82EA
|
||||
#define GL_TEXTURE_BINDING 0x82EB
|
||||
#define GL_GUILTY_CONTEXT_RESET 0x8253
|
||||
#define GL_INNOCENT_CONTEXT_RESET 0x8254
|
||||
#define GL_UNKNOWN_CONTEXT_RESET 0x8255
|
||||
@@ -2674,25 +2655,25 @@ GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLui
|
||||
typedef void (APIENTRYP PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
|
||||
typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
|
||||
typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizei size, const void *data, GLenum usage);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizei size, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
|
||||
typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
|
||||
typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
||||
typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
|
||||
typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
|
||||
typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizei length);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizei size, void *data);
|
||||
typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
|
||||
@@ -2706,7 +2687,7 @@ typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint fram
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
@@ -2717,7 +2698,7 @@ typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint re
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
@@ -2765,10 +2746,6 @@ typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuin
|
||||
typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers);
|
||||
typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
|
||||
typedef void (APIENTRYP PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
|
||||
@@ -2785,25 +2762,25 @@ typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void);
|
||||
GLAPI void APIENTRY glClipControl (GLenum origin, GLenum depth);
|
||||
GLAPI void APIENTRY glCreateTransformFeedbacks (GLsizei n, GLuint *ids);
|
||||
GLAPI void APIENTRY glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer);
|
||||
GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
GLAPI void APIENTRY glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param);
|
||||
GLAPI void APIENTRY glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param);
|
||||
GLAPI void APIENTRY glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
|
||||
GLAPI void APIENTRY glCreateBuffers (GLsizei n, GLuint *buffers);
|
||||
GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
|
||||
GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
|
||||
GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizei size, const void *data, GLenum usage);
|
||||
GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizei size, const void *data);
|
||||
GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
|
||||
GLAPI void APIENTRY glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
|
||||
GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
|
||||
GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
|
||||
GLAPI void *APIENTRY glMapNamedBuffer (GLuint buffer, GLenum access);
|
||||
GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
||||
GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
|
||||
GLAPI GLboolean APIENTRY glUnmapNamedBuffer (GLuint buffer);
|
||||
GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length);
|
||||
GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizei length);
|
||||
GLAPI void APIENTRY glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params);
|
||||
GLAPI void APIENTRY glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params);
|
||||
GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
|
||||
GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizei size, void *data);
|
||||
GLAPI void APIENTRY glCreateFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GLAPI void APIENTRY glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
GLAPI void APIENTRY glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param);
|
||||
@@ -2817,7 +2794,7 @@ GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLs
|
||||
GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target);
|
||||
GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
@@ -2828,7 +2805,7 @@ GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer,
|
||||
GLAPI void APIENTRY glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glCreateTextures (GLenum target, GLsizei n, GLuint *textures);
|
||||
GLAPI void APIENTRY glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer);
|
||||
GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
GLAPI void APIENTRY glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
|
||||
GLAPI void APIENTRY glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
@@ -2876,10 +2853,6 @@ GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLe
|
||||
GLAPI void APIENTRY glCreateSamplers (GLsizei n, GLuint *samplers);
|
||||
GLAPI void APIENTRY glCreateProgramPipelines (GLsizei n, GLuint *pipelines);
|
||||
GLAPI void APIENTRY glCreateQueries (GLenum target, GLsizei n, GLuint *ids);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glMemoryBarrierByRegion (GLbitfield barriers);
|
||||
GLAPI void APIENTRY glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
|
||||
@@ -3017,6 +2990,8 @@ GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint n
|
||||
|
||||
#ifndef GL_ARB_copy_buffer
|
||||
#define GL_ARB_copy_buffer 1
|
||||
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
|
||||
#endif /* GL_ARB_copy_buffer */
|
||||
|
||||
#ifndef GL_ARB_copy_image
|
||||
@@ -3371,13 +3346,13 @@ GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GL
|
||||
#define GL_ARB_sparse_buffer 1
|
||||
#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
|
||||
#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
|
||||
typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
#endif
|
||||
#endif /* GL_ARB_sparse_buffer */
|
||||
|
||||
@@ -3385,7 +3360,7 @@ GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offs
|
||||
#define GL_ARB_sparse_texture 1
|
||||
#define GL_TEXTURE_SPARSE_ARB 0x91A6
|
||||
#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
|
||||
#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
|
||||
#define GL_MIN_SPARSE_LEVEL_ARB 0x919B
|
||||
#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
|
||||
#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
|
||||
#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
|
||||
@@ -3394,9 +3369,9 @@ GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offs
|
||||
#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
|
||||
#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
|
||||
#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
|
||||
typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
|
||||
GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
|
||||
#endif
|
||||
#endif /* GL_ARB_sparse_texture */
|
||||
|
||||
@@ -3504,6 +3479,8 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
|
||||
#ifndef GL_ARB_transform_feedback2
|
||||
#define GL_ARB_transform_feedback2 1
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#endif /* GL_ARB_transform_feedback2 */
|
||||
|
||||
#ifndef GL_ARB_transform_feedback3
|
||||
@@ -3560,11 +3537,6 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
#define GL_KHR_debug 1
|
||||
#endif /* GL_KHR_debug */
|
||||
|
||||
#ifndef GL_KHR_no_error
|
||||
#define GL_KHR_no_error 1
|
||||
#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
|
||||
#endif /* GL_KHR_no_error */
|
||||
|
||||
#ifndef GL_KHR_robust_buffer_access_behavior
|
||||
#define GL_KHR_robust_buffer_access_behavior 1
|
||||
#endif /* GL_KHR_robust_buffer_access_behavior */
|
||||
@@ -3610,10 +3582,6 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
#define GL_KHR_texture_compression_astc_ldr 1
|
||||
#endif /* GL_KHR_texture_compression_astc_ldr */
|
||||
|
||||
#ifndef GL_KHR_texture_compression_astc_sliced_3d
|
||||
#define GL_KHR_texture_compression_astc_sliced_3d 1
|
||||
#endif /* GL_KHR_texture_compression_astc_sliced_3d */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -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,7 +33,7 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 32957 $ on $Date: 2016-06-09 17:03:08 -0400 (Thu, 09 Jun 2016) $
|
||||
** Khronos $Revision: 31811 $ on $Date: 2015-08-10 17:01:11 +1000 (Mon, 10 Aug 2015) $
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -53,7 +53,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20160609
|
||||
#define GL_GLEXT_VERSION 20150809
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -2654,7 +2654,7 @@ typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint fram
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
@@ -2777,7 +2777,7 @@ GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLs
|
||||
GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target);
|
||||
GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
@@ -4984,10 +4984,6 @@ GLAPI void APIENTRY glBlendBarrierKHR (void);
|
||||
#define GL_KHR_texture_compression_astc_ldr 1
|
||||
#endif /* GL_KHR_texture_compression_astc_ldr */
|
||||
|
||||
#ifndef GL_KHR_texture_compression_astc_sliced_3d
|
||||
#define GL_KHR_texture_compression_astc_sliced_3d 1
|
||||
#endif /* GL_KHR_texture_compression_astc_sliced_3d */
|
||||
|
||||
#ifndef GL_OES_byte_coordinates
|
||||
#define GL_OES_byte_coordinates 1
|
||||
typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s);
|
||||
@@ -5601,10 +5597,6 @@ GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLf
|
||||
#define GL_AMD_shader_atomic_counter_ops 1
|
||||
#endif /* GL_AMD_shader_atomic_counter_ops */
|
||||
|
||||
#ifndef GL_AMD_shader_explicit_vertex_parameter
|
||||
#define GL_AMD_shader_explicit_vertex_parameter 1
|
||||
#endif /* GL_AMD_shader_explicit_vertex_parameter */
|
||||
|
||||
#ifndef GL_AMD_shader_stencil_export
|
||||
#define GL_AMD_shader_stencil_export 1
|
||||
#endif /* GL_AMD_shader_stencil_export */
|
||||
@@ -8645,20 +8637,6 @@ GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei s
|
||||
#endif
|
||||
#endif /* GL_EXT_vertex_weighting */
|
||||
|
||||
#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 (APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box);
|
||||
#endif
|
||||
#endif /* GL_EXT_window_rectangles */
|
||||
|
||||
#ifndef GL_EXT_x11_sync_object
|
||||
#define GL_EXT_x11_sync_object 1
|
||||
#define GL_SYNC_X11_FENCE_EXT 0x90E1
|
||||
@@ -9152,17 +9130,6 @@ GLAPI void APIENTRY glBlendBarrierNV (void);
|
||||
#define GL_NV_blend_square 1
|
||||
#endif /* GL_NV_blend_square */
|
||||
|
||||
#ifndef GL_NV_clip_space_w_scaling
|
||||
#define GL_NV_clip_space_w_scaling 1
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
|
||||
typedef void (APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
|
||||
#endif
|
||||
#endif /* GL_NV_clip_space_w_scaling */
|
||||
|
||||
#ifndef GL_NV_command_list
|
||||
#define GL_NV_command_list 1
|
||||
#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
|
||||
@@ -9265,17 +9232,6 @@ GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat valu
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_dilate */
|
||||
|
||||
#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 (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param);
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_pre_snap_triangles */
|
||||
|
||||
#ifndef GL_NV_copy_depth_to_color
|
||||
#define GL_NV_copy_depth_to_color 1
|
||||
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
|
||||
@@ -10268,11 +10224,6 @@ GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname,
|
||||
#endif
|
||||
#endif /* GL_NV_register_combiners2 */
|
||||
|
||||
#ifndef GL_NV_robustness_video_memory_purge
|
||||
#define GL_NV_robustness_video_memory_purge 1
|
||||
#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
|
||||
#endif /* GL_NV_robustness_video_memory_purge */
|
||||
|
||||
#ifndef GL_NV_sample_locations
|
||||
#define GL_NV_sample_locations 1
|
||||
#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
|
||||
@@ -10305,10 +10256,6 @@ GLAPI void APIENTRY glResolveDepthValuesNV (void);
|
||||
#define GL_NV_shader_atomic_float 1
|
||||
#endif /* GL_NV_shader_atomic_float */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_float64
|
||||
#define GL_NV_shader_atomic_float64 1
|
||||
#endif /* GL_NV_shader_atomic_float64 */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_fp16_vector
|
||||
#define GL_NV_shader_atomic_fp16_vector 1
|
||||
#endif /* GL_NV_shader_atomic_fp16_vector */
|
||||
@@ -10372,10 +10319,6 @@ GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLs
|
||||
#define GL_NV_shader_thread_shuffle 1
|
||||
#endif /* GL_NV_shader_thread_shuffle */
|
||||
|
||||
#ifndef GL_NV_stereo_view_rendering
|
||||
#define GL_NV_stereo_view_rendering 1
|
||||
#endif /* GL_NV_stereo_view_rendering */
|
||||
|
||||
#ifndef GL_NV_tessellation_program5
|
||||
#define GL_NV_tessellation_program5 1
|
||||
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
|
||||
@@ -11146,26 +11089,6 @@ GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot
|
||||
#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 (APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
|
||||
#endif
|
||||
#endif /* GL_NV_viewport_swizzle */
|
||||
|
||||
#ifndef GL_OML_interlace
|
||||
#define GL_OML_interlace 1
|
||||
#define GL_INTERLACE_OML 0x8980
|
||||
|
@@ -79,7 +79,6 @@ typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension;
|
||||
typedef struct __DRI2flushExtensionRec __DRI2flushExtension;
|
||||
typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension;
|
||||
typedef struct __DRI2fenceExtensionRec __DRI2fenceExtension;
|
||||
typedef struct __DRI2interopExtensionRec __DRI2interopExtension;
|
||||
|
||||
|
||||
typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension;
|
||||
@@ -393,31 +392,6 @@ struct __DRI2fenceExtensionRec {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Extension for API interop.
|
||||
* See GL/mesa_glinterop.h.
|
||||
*/
|
||||
|
||||
#define __DRI2_INTEROP "DRI2_Interop"
|
||||
#define __DRI2_INTEROP_VERSION 1
|
||||
|
||||
struct mesa_glinterop_device_info;
|
||||
struct mesa_glinterop_export_in;
|
||||
struct mesa_glinterop_export_out;
|
||||
|
||||
struct __DRI2interopExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/** Same as MesaGLInterop*QueryDeviceInfo. */
|
||||
int (*query_device_info)(__DRIcontext *ctx,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
|
||||
/** Same as MesaGLInterop*ExportObject. */
|
||||
int (*export_object)(__DRIcontext *ctx,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
};
|
||||
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
@@ -1094,7 +1068,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 12
|
||||
#define __DRI_IMAGE_VERSION 11
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
@@ -1126,18 +1100,8 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_USE_SCANOUT 0x0002
|
||||
#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */
|
||||
#define __DRI_IMAGE_USE_LINEAR 0x0008
|
||||
/* The buffer will only be read by an external process after SwapBuffers,
|
||||
* in contrary to gbm buffers, front buffers and fake front buffers, which
|
||||
* could be read after a flush."
|
||||
*/
|
||||
#define __DRI_IMAGE_USE_BACKBUFFER 0x0010
|
||||
|
||||
|
||||
#define __DRI_IMAGE_TRANSFER_READ 0x1
|
||||
#define __DRI_IMAGE_TRANSFER_WRITE 0x2
|
||||
#define __DRI_IMAGE_TRANSFER_READ_WRITE \
|
||||
(__DRI_IMAGE_TRANSFER_READ | __DRI_IMAGE_TRANSFER_WRITE)
|
||||
|
||||
/**
|
||||
* Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h,
|
||||
* GBM_FORMAT_* from gbm.h, and DRM_FORMAT_* from drm_fourcc.h. Used with
|
||||
@@ -1163,11 +1127,6 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_FOURCC_NV16 0x3631564e
|
||||
#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
|
||||
|
||||
#define __DRI_IMAGE_FOURCC_YVU410 0x39555659
|
||||
#define __DRI_IMAGE_FOURCC_YVU411 0x31315659
|
||||
#define __DRI_IMAGE_FOURCC_YVU420 0x32315659
|
||||
#define __DRI_IMAGE_FOURCC_YVU422 0x36315659
|
||||
#define __DRI_IMAGE_FOURCC_YVU444 0x34325659
|
||||
|
||||
/**
|
||||
* Queryable on images created by createImageFromNames.
|
||||
@@ -1391,33 +1350,6 @@ struct __DRIimageExtensionRec {
|
||||
* \since 10
|
||||
*/
|
||||
int (*getCapabilities)(__DRIscreen *screen);
|
||||
|
||||
/**
|
||||
* Returns a map of the specified region of a __DRIimage for the specified usage.
|
||||
*
|
||||
* flags may include __DRI_IMAGE_TRANSFER_READ, which will populate the
|
||||
* mapping with the current buffer content. If __DRI_IMAGE_TRANSFER_READ
|
||||
* is not included in the flags, the buffer content at map time is
|
||||
* undefined. Users wanting to modify the mapping must include
|
||||
* __DRI_IMAGE_TRANSFER_WRITE; if __DRI_IMAGE_TRANSFER_WRITE is not
|
||||
* included, behaviour when writing the mapping is undefined.
|
||||
*
|
||||
* Returns the byte stride in *stride, and an opaque pointer to data
|
||||
* tracking the mapping in **data, which must be passed to unmapImage().
|
||||
*
|
||||
* \since 12
|
||||
*/
|
||||
void *(*mapImage)(__DRIcontext *context, __DRIimage *image,
|
||||
int x0, int y0, int width, int height,
|
||||
unsigned int flags, int *stride, void **data);
|
||||
|
||||
/**
|
||||
* Unmap a previously mapped __DRIimage
|
||||
*
|
||||
* \since 12
|
||||
*/
|
||||
void (*unmapImage)(__DRIcontext *context, __DRIimage *image, void *data);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@@ -1,304 +0,0 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
*
|
||||
* Copyright 2016 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 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.
|
||||
*/
|
||||
|
||||
/* Mesa OpenGL inter-driver interoperability interface designed for but not
|
||||
* limited to OpenCL.
|
||||
*
|
||||
* This is a driver-agnostic, backward-compatible interface. The structures
|
||||
* are only allowed to grow. They can never shrink and their members can
|
||||
* never be removed, renamed, or redefined.
|
||||
*
|
||||
* The interface doesn't return a lot of static texture parameters like
|
||||
* width, height, etc. It mainly returns mutable buffer and texture view
|
||||
* parameters that can't be part of the texture allocation (because they are
|
||||
* mutable). If drivers want to return more data or want to return static
|
||||
* allocation parameters, they can do it in one of these two ways:
|
||||
* - attaching the data to the DMABUF handle in a driver-specific way
|
||||
* - passing the data via "out_driver_data" in the "in" structure.
|
||||
*
|
||||
* Mesa is expected to do a lot of error checking on behalf of OpenCL, such
|
||||
* as checking the target, miplevel, and texture completeness.
|
||||
*
|
||||
* OpenCL, on the other hand, needs to check if the display+context combo
|
||||
* is compatible with the OpenCL driver by querying the device information.
|
||||
* It also needs to check if the texture internal format and channel ordering
|
||||
* (returned in a driver-specific way) is supported by OpenCL, among other
|
||||
* things.
|
||||
*/
|
||||
|
||||
#ifndef MESA_GLINTEROP_H
|
||||
#define MESA_GLINTEROP_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Forward declarations to avoid inclusion of GL/glx.h */
|
||||
typedef struct _XDisplay Display;
|
||||
typedef struct __GLXcontextRec *GLXContext;
|
||||
|
||||
/* Forward declarations to avoid inclusion of EGL/egl.h */
|
||||
typedef void *EGLDisplay;
|
||||
typedef void *EGLContext;
|
||||
|
||||
/** Returned error codes. */
|
||||
enum {
|
||||
MESA_GLINTEROP_SUCCESS = 0,
|
||||
MESA_GLINTEROP_OUT_OF_RESOURCES,
|
||||
MESA_GLINTEROP_OUT_OF_HOST_MEMORY,
|
||||
MESA_GLINTEROP_INVALID_OPERATION,
|
||||
MESA_GLINTEROP_INVALID_VERSION,
|
||||
MESA_GLINTEROP_INVALID_DISPLAY,
|
||||
MESA_GLINTEROP_INVALID_CONTEXT,
|
||||
MESA_GLINTEROP_INVALID_TARGET,
|
||||
MESA_GLINTEROP_INVALID_OBJECT,
|
||||
MESA_GLINTEROP_INVALID_MIP_LEVEL,
|
||||
MESA_GLINTEROP_UNSUPPORTED
|
||||
};
|
||||
|
||||
/** Access flags. */
|
||||
enum {
|
||||
MESA_GLINTEROP_ACCESS_READ_WRITE = 0,
|
||||
MESA_GLINTEROP_ACCESS_READ_ONLY,
|
||||
MESA_GLINTEROP_ACCESS_WRITE_ONLY
|
||||
};
|
||||
|
||||
#define MESA_GLINTEROP_DEVICE_INFO_VERSION 1
|
||||
|
||||
/**
|
||||
* Device information returned by Mesa.
|
||||
*/
|
||||
struct mesa_glinterop_device_info {
|
||||
/* The caller should set this to the version of the struct they support */
|
||||
/* 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 the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_DEVICE_INFO_VERSION macro */
|
||||
uint32_t version;
|
||||
|
||||
/* PCI location */
|
||||
uint32_t pci_segment_group;
|
||||
uint32_t pci_bus;
|
||||
uint32_t pci_device;
|
||||
uint32_t pci_function;
|
||||
|
||||
/* Device identification */
|
||||
uint32_t vendor_id;
|
||||
uint32_t device_id;
|
||||
|
||||
/* Structure version 1 ends here. */
|
||||
};
|
||||
|
||||
#define MESA_GLINTEROP_EXPORT_IN_VERSION 1
|
||||
|
||||
/**
|
||||
* Input parameters to Mesa interop export functions.
|
||||
*/
|
||||
struct mesa_glinterop_export_in {
|
||||
/* The caller should set this to the version of the struct they support */
|
||||
/* 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 the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_IN_VERSION macro */
|
||||
uint32_t version;
|
||||
|
||||
/* One of the following:
|
||||
* - GL_TEXTURE_BUFFER
|
||||
* - GL_TEXTURE_1D
|
||||
* - GL_TEXTURE_2D
|
||||
* - GL_TEXTURE_3D
|
||||
* - GL_TEXTURE_RECTANGLE
|
||||
* - GL_TEXTURE_1D_ARRAY
|
||||
* - GL_TEXTURE_2D_ARRAY
|
||||
* - GL_TEXTURE_CUBE_MAP_ARRAY
|
||||
* - GL_TEXTURE_CUBE_MAP
|
||||
* - GL_TEXTURE_CUBE_MAP_POSITIVE_X
|
||||
* - GL_TEXTURE_CUBE_MAP_NEGATIVE_X
|
||||
* - GL_TEXTURE_CUBE_MAP_POSITIVE_Y
|
||||
* - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
|
||||
* - GL_TEXTURE_CUBE_MAP_POSITIVE_Z
|
||||
* - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
|
||||
* - GL_TEXTURE_2D_MULTISAMPLE
|
||||
* - GL_TEXTURE_2D_MULTISAMPLE_ARRAY
|
||||
* - GL_TEXTURE_EXTERNAL_OES
|
||||
* - GL_RENDERBUFFER
|
||||
* - GL_ARRAY_BUFFER
|
||||
*/
|
||||
unsigned target;
|
||||
|
||||
/* If target is GL_ARRAY_BUFFER, it's a buffer object.
|
||||
* If target is GL_RENDERBUFFER, it's a renderbuffer object.
|
||||
* If target is GL_TEXTURE_*, it's a texture object.
|
||||
*/
|
||||
unsigned obj;
|
||||
|
||||
/* Mipmap level. Ignored for non-texture objects. */
|
||||
unsigned miplevel;
|
||||
|
||||
/* One of MESA_GLINTEROP_ACCESS_* flags. This describes how the exported
|
||||
* object is going to be used.
|
||||
*/
|
||||
uint32_t access;
|
||||
|
||||
/* Size of memory pointed to by out_driver_data. */
|
||||
uint32_t out_driver_data_size;
|
||||
|
||||
/* If the caller wants to query driver-specific data about the OpenGL
|
||||
* object, this should point to the memory where that data will be stored.
|
||||
* This is expected to be a temporary staging memory. The pointer is not
|
||||
* allowed to be saved for later use by Mesa.
|
||||
*/
|
||||
void *out_driver_data;
|
||||
/* Structure version 1 ends here. */
|
||||
};
|
||||
|
||||
#define MESA_GLINTEROP_EXPORT_OUT_VERSION 1
|
||||
|
||||
/**
|
||||
* Outputs of Mesa interop export functions.
|
||||
*/
|
||||
struct mesa_glinterop_export_out {
|
||||
/* The caller should set this to the version of the struct they support */
|
||||
/* 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 the callee.
|
||||
*/
|
||||
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_OUT_VERSION macro */
|
||||
uint32_t version;
|
||||
|
||||
/* The DMABUF handle. It must be closed by the caller using the POSIX
|
||||
* close() function when it's not needed anymore. Mesa is not responsible
|
||||
* for closing the handle.
|
||||
*
|
||||
* Not closing the handle by the caller will lead to a resource leak,
|
||||
* will prevent releasing the GPU buffer, and may prevent creating new
|
||||
* DMABUF handles within the process.
|
||||
*/
|
||||
int dmabuf_fd;
|
||||
|
||||
/* The mutable OpenGL internal format specified by glTextureView or
|
||||
* glTexBuffer. If the object is not one of those, the original internal
|
||||
* format specified by glTexStorage, glTexImage, or glRenderbufferStorage
|
||||
* will be returned.
|
||||
*/
|
||||
unsigned internal_format;
|
||||
|
||||
/* Buffer offset and size for GL_ARRAY_BUFFER and GL_TEXTURE_BUFFER.
|
||||
* This allows interop with suballocations (a buffer allocated within
|
||||
* a larger buffer).
|
||||
*
|
||||
* Parameters specified by glTexBufferRange for GL_TEXTURE_BUFFER are
|
||||
* applied to these and can shrink the range further.
|
||||
*/
|
||||
ptrdiff_t buf_offset;
|
||||
ptrdiff_t buf_size;
|
||||
|
||||
/* Parameters specified by glTextureView. If the object is not a texture
|
||||
* view, default parameters covering the whole texture will be returned.
|
||||
*/
|
||||
unsigned view_minlevel;
|
||||
unsigned view_numlevels;
|
||||
unsigned view_minlayer;
|
||||
unsigned view_numlayers;
|
||||
|
||||
/* The number of bytes written to out_driver_data. */
|
||||
uint32_t out_driver_data_written;
|
||||
/* Structure version 1 ends here. */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Query device information.
|
||||
*
|
||||
* \param dpy GLX display
|
||||
* \param context GLX context
|
||||
* \param out where to return the information
|
||||
*
|
||||
* \return MESA_GLINTEROP_SUCCESS or MESA_GLINTEROP_* != 0 on error
|
||||
*/
|
||||
int
|
||||
MesaGLInteropGLXQueryDeviceInfo(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
|
||||
|
||||
/**
|
||||
* Same as MesaGLInteropGLXQueryDeviceInfo except that it accepts EGLDisplay
|
||||
* and EGLContext.
|
||||
*/
|
||||
int
|
||||
MesaGLInteropEGLQueryDeviceInfo(EGLDisplay dpy, EGLContext context,
|
||||
struct mesa_glinterop_device_info *out);
|
||||
|
||||
|
||||
/**
|
||||
* Create and return a DMABUF handle corresponding to the given OpenGL
|
||||
* object, and return other parameters about the OpenGL object.
|
||||
*
|
||||
* \param dpy GLX display
|
||||
* \param context GLX context
|
||||
* \param in input parameters
|
||||
* \param out return values
|
||||
*
|
||||
* \return MESA_GLINTEROP_SUCCESS or MESA_GLINTEROP_* != 0 on error
|
||||
*/
|
||||
int
|
||||
MesaGLInteropGLXExportObject(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
|
||||
|
||||
/**
|
||||
* Same as MesaGLInteropGLXExportObject except that it accepts
|
||||
* EGLDisplay and EGLContext.
|
||||
*/
|
||||
int
|
||||
MesaGLInteropEGLExportObject(EGLDisplay dpy, EGLContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
|
||||
|
||||
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)(Display *dpy, GLXContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
typedef int (PFNMESAGLINTEROPEGLEXPORTOBJECTPROC)(EGLDisplay dpy, EGLContext context,
|
||||
struct mesa_glinterop_export_in *in,
|
||||
struct mesa_glinterop_export_out *out);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MESA_GLINTEROP_H */
|
@@ -169,32 +169,6 @@ mtx_destroy(mtx_t *mtx)
|
||||
pthread_mutex_destroy(mtx);
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX: Workaround when building with -O0 and without pthreads link.
|
||||
*
|
||||
* In such cases constant folding and dead code elimination won't be
|
||||
* available, thus the compiler will always add the pthread_mutexattr*
|
||||
* functions into the binary. As we try to link, we'll fail as the
|
||||
* symbols are unresolved.
|
||||
*
|
||||
* Ideally we'll enable the optimisations locally, yet that does not
|
||||
* seem to work.
|
||||
*
|
||||
* So the alternative workaround is to annotate the symbols as weak.
|
||||
* Thus the linker will be happy and things don't clash when building
|
||||
* with -O1 or greater.
|
||||
*/
|
||||
#ifdef HAVE_FUNC_ATTRIBUTE_WEAK
|
||||
__attribute__((weak))
|
||||
int pthread_mutexattr_init(pthread_mutexattr_t *attr);
|
||||
|
||||
__attribute__((weak))
|
||||
int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
|
||||
|
||||
__attribute__((weak))
|
||||
int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
|
||||
#endif
|
||||
|
||||
// 7.25.4.2
|
||||
static inline int
|
||||
mtx_init(mtx_t *mtx, int type)
|
||||
@@ -206,14 +180,9 @@ mtx_init(mtx_t *mtx, int type)
|
||||
&& type != (mtx_timed|mtx_recursive)
|
||||
&& type != (mtx_try|mtx_recursive))
|
||||
return thrd_error;
|
||||
|
||||
if ((type & mtx_recursive) == 0) {
|
||||
pthread_mutex_init(mtx, NULL);
|
||||
return thrd_success;
|
||||
}
|
||||
|
||||
pthread_mutexattr_init(&attr);
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
|
||||
if ((type & mtx_recursive) != 0)
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
|
||||
pthread_mutex_init(mtx, &attr);
|
||||
pthread_mutexattr_destroy(&attr);
|
||||
return thrd_success;
|
||||
|
@@ -36,8 +36,8 @@
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
# if _MSC_VER < 1800 || (_MSC_FULL_VER < 180031101 && !defined(__clang__))
|
||||
# error "Microsoft Visual Studio 2013 Update 4 or higher required"
|
||||
# if _MSC_VER < 1800
|
||||
# error "Microsoft Visual Studio 2013 or higher required"
|
||||
# endif
|
||||
|
||||
/*
|
||||
@@ -135,48 +135,4 @@ test_c99_compat_h(const void * restrict a,
|
||||
#endif
|
||||
|
||||
|
||||
/* Fallback definitions, for build systems other than autoconfig which don't
|
||||
* auto-detect these things. */
|
||||
#ifdef HAVE_NO_AUTOCONF
|
||||
|
||||
# ifndef _WIN32
|
||||
# define HAVE_PTHREAD
|
||||
# define HAVE_POSIX_MEMALIGN
|
||||
# endif
|
||||
|
||||
# ifdef __GNUC__
|
||||
# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)
|
||||
# error "GCC version 4.2 or higher required"
|
||||
# endif
|
||||
|
||||
/* https://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Other-Builtins.html */
|
||||
# define HAVE___BUILTIN_CLZ 1
|
||||
# define HAVE___BUILTIN_CLZLL 1
|
||||
# define HAVE___BUILTIN_CTZ 1
|
||||
# define HAVE___BUILTIN_EXPECT 1
|
||||
# define HAVE___BUILTIN_FFS 1
|
||||
# define HAVE___BUILTIN_FFSLL 1
|
||||
# define HAVE___BUILTIN_POPCOUNT 1
|
||||
# define HAVE___BUILTIN_POPCOUNTLL 1
|
||||
/* https://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Function-Attributes.html */
|
||||
# define HAVE_FUNC_ATTRIBUTE_FLATTEN 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_UNUSED 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_FORMAT 1
|
||||
# define HAVE_FUNC_ATTRIBUTE_PACKED 1
|
||||
|
||||
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||
/* https://gcc.gnu.org/onlinedocs/gcc-4.3.6/gcc/Other-Builtins.html */
|
||||
# define HAVE___BUILTIN_BSWAP32 1
|
||||
# define HAVE___BUILTIN_BSWAP64 1
|
||||
# endif
|
||||
|
||||
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||
# define HAVE___BUILTIN_UNREACHABLE 1
|
||||
# endif
|
||||
|
||||
# endif /* __GNUC__ */
|
||||
|
||||
#endif /* !HAVE_AUTOCONF */
|
||||
|
||||
|
||||
#endif /* _C99_COMPAT_H_ */
|
||||
|
@@ -185,27 +185,4 @@ fpclassify(double x)
|
||||
#endif
|
||||
|
||||
|
||||
/* Since C++11, the following functions are part of the std namespace. Their C
|
||||
* counteparts should still exist in the global namespace, however cmath
|
||||
* undefines those functions, which in glibc 2.23, are defined as macros rather
|
||||
* than functions as in glibc 2.22.
|
||||
*/
|
||||
#if __cplusplus >= 201103L && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 23))
|
||||
#include <cmath>
|
||||
|
||||
using std::fpclassify;
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
using std::isnan;
|
||||
using std::isnormal;
|
||||
using std::signbit;
|
||||
using std::isgreater;
|
||||
using std::isgreaterequal;
|
||||
using std::isless;
|
||||
using std::islessequal;
|
||||
using std::islessgreater;
|
||||
using std::isunordered;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* #define _C99_MATH_H_ */
|
||||
|
@@ -29,11 +29,7 @@
|
||||
#define D3DADAPTER9DRM_NAME "drm"
|
||||
/* current version */
|
||||
#define D3DADAPTER9DRM_MAJOR 0
|
||||
#define D3DADAPTER9DRM_MINOR 1
|
||||
|
||||
/* version 0.0: Initial release
|
||||
* 0.1: All IDirect3D objects can be assumed to have a pointer to the
|
||||
* internal vtable in second position of the structure */
|
||||
#define D3DADAPTER9DRM_MINOR 0
|
||||
|
||||
struct D3DAdapter9DRM
|
||||
{
|
||||
|
@@ -71,10 +71,6 @@ typedef struct ID3DPresentVtbl
|
||||
HRESULT (WINAPI *GetWindowInfo)(ID3DPresent *This, HWND hWnd, int *width, int *height, int *depth);
|
||||
/* Available since version 1.1 */
|
||||
BOOL (WINAPI *GetWindowOccluded)(ID3DPresent *This);
|
||||
/* Available since version 1.2 */
|
||||
BOOL (WINAPI *ResolutionMismatch)(ID3DPresent *This);
|
||||
HANDLE (WINAPI *CreateThread)(ID3DPresent *This, void *pThreadfunc, void *pParam);
|
||||
BOOL (WINAPI *WaitForThread)(ID3DPresent *This, HANDLE thread);
|
||||
} ID3DPresentVtbl;
|
||||
|
||||
struct ID3DPresent
|
||||
@@ -103,9 +99,6 @@ struct ID3DPresent
|
||||
#define ID3DPresent_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
|
||||
#define ID3DPresent_GetWindowInfo(p,a,b,c,d) (p)->lpVtbl->GetWindowSize(p,a,b,c,d)
|
||||
#define ID3DPresent_GetWindowOccluded(p) (p)->lpVtbl->GetWindowOccluded(p)
|
||||
#define ID3DPresent_ResolutionMismatch(p) (p)->lpVtbl->ResolutionMismatch(p)
|
||||
#define ID3DPresent_CreateThread(p,a,b) (p)->lpVtbl->CreateThread(p,a,b)
|
||||
#define ID3DPresent_WaitForThread(p,a) (p)->lpVtbl->WaitForThread(p,a)
|
||||
|
||||
typedef struct ID3DPresentGroupVtbl
|
||||
{
|
||||
|
@@ -156,12 +156,10 @@ 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(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(0x22B0, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) HD Graphics (Cherryview)")
|
||||
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)")
|
||||
|
@@ -182,26 +182,4 @@ CHIPSET(0x9877, CARRIZO_, CARRIZO)
|
||||
|
||||
CHIPSET(0x7300, FIJI_, FIJI)
|
||||
|
||||
CHIPSET(0x67E0, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67E1, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67E3, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67E7, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67E8, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67E9, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67EB, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67EF, POLARIS11_, POLARIS11)
|
||||
CHIPSET(0x67FF, POLARIS11_, POLARIS11)
|
||||
|
||||
CHIPSET(0x67C0, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C1, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C2, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C4, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C7, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C8, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67C9, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67CA, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67CC, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67CF, POLARIS10_, POLARIS10)
|
||||
CHIPSET(0x67DF, POLARIS10_, POLARIS10)
|
||||
|
||||
CHIPSET(0x98E4, STONEY_, STONEY)
|
||||
|
@@ -1,85 +0,0 @@
|
||||
#ifndef VKICD_H
|
||||
#define VKICD_H
|
||||
|
||||
#include "vk_platform.h"
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
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;
|
||||
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;
|
||||
return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC;
|
||||
}
|
||||
|
||||
/*
|
||||
* Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that
|
||||
* contains the platform-specific connection and surface information.
|
||||
*/
|
||||
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,
|
||||
} VkIcdWsiPlatform;
|
||||
|
||||
typedef struct _VkIcdSurfaceBase {
|
||||
VkIcdWsiPlatform platform;
|
||||
} VkIcdSurfaceBase;
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
typedef struct _VkIcdSurfaceMir {
|
||||
VkIcdSurfaceBase base;
|
||||
MirConnection* connection;
|
||||
MirSurface* mirSurface;
|
||||
} VkIcdSurfaceMir;
|
||||
#endif // VK_USE_PLATFORM_MIR_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||
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 _VkIcdSurfaceWin32 {
|
||||
VkIcdSurfaceBase base;
|
||||
HINSTANCE hinstance;
|
||||
HWND hwnd;
|
||||
} VkIcdSurfaceWin32;
|
||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||
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 _VkIcdSurfaceXlib {
|
||||
VkIcdSurfaceBase base;
|
||||
Display* dpy;
|
||||
Window window;
|
||||
} VkIcdSurfaceXlib;
|
||||
#endif // VK_USE_PLATFORM_XLIB_KHR
|
||||
|
||||
#endif // VKICD_H
|
@@ -1,127 +0,0 @@
|
||||
//
|
||||
// File: vk_platform.h
|
||||
//
|
||||
/*
|
||||
** Copyright (c) 2014-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
|
||||
** "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:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** 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.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef VK_PLATFORM_H_
|
||||
#define VK_PLATFORM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
|
||||
/*
|
||||
***************************************************************************************************
|
||||
* Platform-specific directives and type declarations
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* Platform-specific calling convention macros.
|
||||
*
|
||||
* Platforms should define these so that Vulkan clients call Vulkan commands
|
||||
* with the same calling conventions that the Vulkan implementation expects.
|
||||
*
|
||||
* VKAPI_ATTR - Placed before the return type in function declarations.
|
||||
* Useful for C++11 and GCC/Clang-style function attribute syntax.
|
||||
* VKAPI_CALL - Placed after the return type in function declarations.
|
||||
* Useful for MSVC-style calling convention syntax.
|
||||
* VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
|
||||
*
|
||||
* Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
|
||||
* Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
|
||||
*/
|
||||
#if defined(_WIN32)
|
||||
// On Windows, Vulkan commands use the stdcall convention
|
||||
#define VKAPI_ATTR
|
||||
#define VKAPI_CALL __stdcall
|
||||
#define VKAPI_PTR VKAPI_CALL
|
||||
#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
|
||||
#else
|
||||
// On other platforms, use the default calling convention
|
||||
#define VKAPI_ATTR
|
||||
#define VKAPI_CALL
|
||||
#define VKAPI_PTR
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if !defined(VK_NO_STDINT_H)
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||
typedef signed __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif // !defined(VK_NO_STDINT_H)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif // __cplusplus
|
||||
|
||||
// Platform-specific headers required by platform window system extensions.
|
||||
// These are enabled prior to #including "vulkan.h". The same enable then
|
||||
// controls inclusion of the extension interfaces in vulkan.h.
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
#include <android/native_window.h>
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
#include <mir_toolkit/client_types.h>
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||
#include <wayland-client.h>
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
||||
#include <X11/Xlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||
#include <xcb/xcb.h>
|
||||
#endif
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2015 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (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.
|
||||
*/
|
||||
|
||||
#ifndef __VULKAN_INTEL_H__
|
||||
#define __VULKAN_INTEL_H__
|
||||
|
||||
#include "vulkan.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
|
||||
#define VK_STRUCTURE_TYPE_DMA_BUF_IMAGE_CREATE_INFO_INTEL 1024
|
||||
typedef struct VkDmaBufImageCreateInfo_
|
||||
{
|
||||
VkStructureType sType; // Must be VK_STRUCTURE_TYPE_DMA_BUF_IMAGE_CREATE_INFO_INTEL
|
||||
const void* pNext; // Pointer to next structure.
|
||||
int fd;
|
||||
VkFormat format;
|
||||
VkExtent3D extent; // Depth must be 1
|
||||
uint32_t strideInBytes;
|
||||
} VkDmaBufImageCreateInfo;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateDmaBufImageINTEL)(VkDevice device, const VkDmaBufImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMem, VkImage* pImage);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDmaBufImageINTEL(
|
||||
VkDevice _device,
|
||||
const VkDmaBufImageCreateInfo* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkDeviceMemory* pMem,
|
||||
VkImage* pImage);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif // __VULKAN_INTEL_H__
|
@@ -12,9 +12,9 @@ all-local : .install-gallium-links
|
||||
link_dir=$(top_builddir)/$(LIB_DIR)/egl; \
|
||||
fi; \
|
||||
$(MKDIR_P) $$link_dir; \
|
||||
file_list="$(dri_LTLIBRARIES:%.la=.libs/%.so)"; \
|
||||
file_list+="$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
file_list+="$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)"; \
|
||||
file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so); \
|
||||
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; \
|
||||
|
@@ -53,7 +53,6 @@
|
||||
# optimize
|
||||
# packed
|
||||
# pure
|
||||
# returns_nonnull
|
||||
# unused
|
||||
# used
|
||||
# visibility
|
||||
@@ -77,9 +76,6 @@
|
||||
|
||||
#serial 2
|
||||
|
||||
# mattst88:
|
||||
# Added support for returns_nonnull attribute
|
||||
|
||||
AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
||||
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
|
||||
|
||||
@@ -179,9 +175,6 @@ AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
||||
[pure], [
|
||||
int foo( void ) __attribute__(($1));
|
||||
],
|
||||
[returns_nonnull], [
|
||||
int *foo( void ) __attribute__(($1));
|
||||
],
|
||||
[unused], [
|
||||
int foo( void ) __attribute__(($1));
|
||||
],
|
||||
|
@@ -30,10 +30,11 @@ Custom builders and methods.
|
||||
#
|
||||
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
import modulefinder
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
||||
@@ -43,13 +44,6 @@ import fixes
|
||||
|
||||
import source_list
|
||||
|
||||
# the get_implicit_deps() method changed between 2.4 and 2.5: now it expects
|
||||
# a callable that takes a scanner as argument and returns a path, rather than
|
||||
# a path directly. We want to support both, so we need to detect the SCons version,
|
||||
# for which no API is provided by SCons 8-P
|
||||
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')))
|
||||
|
||||
def quietCommandLines(env):
|
||||
# Quiet command lines
|
||||
# See also http://www.scons.org/wiki/HidingCommandLinesInOutput
|
||||
@@ -99,19 +93,27 @@ def createConvenienceLibBuilder(env):
|
||||
return convenience_lib
|
||||
|
||||
|
||||
# TODO: handle import statements with multiple modules
|
||||
# TODO: handle from import statements
|
||||
import_re = re.compile(r'^\s*import\s+(\S+)\s*$', re.M)
|
||||
|
||||
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()
|
||||
source_dir = node.get_dir()
|
||||
finder = modulefinder.ModuleFinder()
|
||||
finder.run_script(node.abspath)
|
||||
imports = import_re.findall(contents)
|
||||
results = []
|
||||
for name, mod in finder.modules.iteritems():
|
||||
if mod.__file__ is None:
|
||||
continue
|
||||
assert os.path.exists(mod.__file__)
|
||||
results.append(env.File(mod.__file__))
|
||||
for imp in imports:
|
||||
for dir in path:
|
||||
file = os.path.join(str(dir), imp.replace('.', os.sep) + '.py')
|
||||
if os.path.exists(file):
|
||||
results.append(env.File(file))
|
||||
break
|
||||
file = os.path.join(str(dir), imp.replace('.', os.sep), '__init__.py')
|
||||
if os.path.exists(file):
|
||||
results.append(env.File(file))
|
||||
break
|
||||
#print node, map(str, results)
|
||||
return results
|
||||
|
||||
python_scanner = SCons.Scanner.Scanner(function = python_scan, skeys = ['.py'])
|
||||
@@ -136,7 +138,7 @@ def code_generate(env, script, target, source, command):
|
||||
|
||||
# Explicitly mark that the generated code depends on the generator,
|
||||
# and on implicitly imported python modules
|
||||
path = (script_src.get_dir(),) if scons_version < (2, 5, 0) else lambda x: script_src
|
||||
path = (script_src.get_dir(),)
|
||||
deps = [script_src]
|
||||
deps += script_src.get_implicit_deps(env, python_scanner, path)
|
||||
env.Depends(code, deps)
|
||||
|
110
scons/gallium.py
110
scons/gallium.py
@@ -82,6 +82,11 @@ def install_shared_library(env, sources, version = ()):
|
||||
return targets
|
||||
|
||||
|
||||
def createInstallMethods(env):
|
||||
env.AddMethod(install_program, 'InstallProgram')
|
||||
env.AddMethod(install_shared_library, 'InstallSharedLibrary')
|
||||
|
||||
|
||||
def msvc2013_compat(env):
|
||||
if env['gcc']:
|
||||
env.Append(CCFLAGS = [
|
||||
@@ -89,20 +94,8 @@ def msvc2013_compat(env):
|
||||
'-Werror=pointer-arith',
|
||||
])
|
||||
|
||||
|
||||
def unit_test(env, test_name, program_target, args=None):
|
||||
env.InstallProgram(program_target)
|
||||
|
||||
cmd = [program_target[0].abspath]
|
||||
if args is not None:
|
||||
cmd += args
|
||||
cmd = ' '.join(cmd)
|
||||
|
||||
# http://www.scons.org/wiki/UnitTests
|
||||
action = SCons.Action.Action(cmd, " Running $SOURCE ...")
|
||||
alias = env.Alias(test_name, program_target, action)
|
||||
env.AlwaysBuild(alias)
|
||||
env.Depends('check', alias)
|
||||
def createMSVCCompatMethods(env):
|
||||
env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
|
||||
|
||||
|
||||
def num_jobs():
|
||||
@@ -171,6 +164,16 @@ def generate(env):
|
||||
# Allow override compiler and specify additional flags from environment
|
||||
if os.environ.has_key('CC'):
|
||||
env['CC'] = os.environ['CC']
|
||||
# Update CCVERSION to match
|
||||
pipe = SCons.Action._subproc(env, [env['CC'], '--version'],
|
||||
stdin = 'devnull',
|
||||
stderr = 'devnull',
|
||||
stdout = subprocess.PIPE)
|
||||
if pipe.wait() == 0:
|
||||
line = pipe.stdout.readline()
|
||||
match = re.search(r'[0-9]+(\.[0-9]+)+', line)
|
||||
if match:
|
||||
env['CCVERSION'] = match.group(0)
|
||||
if os.environ.has_key('CFLAGS'):
|
||||
env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
|
||||
if os.environ.has_key('CXX'):
|
||||
@@ -183,15 +186,14 @@ def generate(env):
|
||||
# Detect gcc/clang not by executable name, but through pre-defined macros
|
||||
# as autoconf does, to avoid drawing wrong conclusions when using tools
|
||||
# that overrice CC/CXX like scan-build.
|
||||
env['gcc_compat'] = 0
|
||||
env['gcc'] = 0
|
||||
env['clang'] = 0
|
||||
env['msvc'] = 0
|
||||
if host_platform.system() == 'Windows':
|
||||
env['msvc'] = check_cc(env, 'MSVC', 'defined(_MSC_VER)', '/E')
|
||||
if not env['msvc']:
|
||||
env['gcc_compat'] = check_cc(env, 'GCC', 'defined(__GNUC__)')
|
||||
env['clang'] = check_cc(env, 'Clang', '__clang__')
|
||||
env['gcc'] = env['gcc_compat'] and not env['clang']
|
||||
env['gcc'] = check_cc(env, 'GCC', 'defined(__GNUC__) && !defined(__clang__)')
|
||||
env['clang'] = check_cc(env, 'Clang', '__clang__')
|
||||
env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) == 'cc'
|
||||
env['icc'] = 'icc' == os.path.basename(env['CC'])
|
||||
|
||||
@@ -204,7 +206,7 @@ def generate(env):
|
||||
platform = env['platform']
|
||||
x86 = env['machine'] == 'x86'
|
||||
ppc = env['machine'] == 'ppc'
|
||||
gcc_compat = env['gcc_compat']
|
||||
gcc_compat = env['gcc'] or env['clang']
|
||||
msvc = env['msvc']
|
||||
suncc = env['suncc']
|
||||
icc = env['icc']
|
||||
@@ -290,11 +292,7 @@ def generate(env):
|
||||
|
||||
# C preprocessor options
|
||||
cppdefines = []
|
||||
cppdefines += [
|
||||
'__STDC_LIMIT_MACROS',
|
||||
'__STDC_CONSTANT_MACROS',
|
||||
'HAVE_NO_AUTOCONF',
|
||||
]
|
||||
cppdefines += ['__STDC_LIMIT_MACROS', '__STDC_CONSTANT_MACROS']
|
||||
if env['build'] in ('debug', 'checked'):
|
||||
cppdefines += ['DEBUG']
|
||||
else:
|
||||
@@ -309,6 +307,8 @@ def generate(env):
|
||||
'_BSD_SOURCE',
|
||||
'_GNU_SOURCE',
|
||||
'_DEFAULT_SOURCE',
|
||||
'HAVE_PTHREAD',
|
||||
'HAVE_POSIX_MEMALIGN',
|
||||
]
|
||||
if env['platform'] == 'darwin':
|
||||
cppdefines += [
|
||||
@@ -329,6 +329,11 @@ def generate(env):
|
||||
if env['platform'] in ('linux', 'darwin'):
|
||||
cppdefines += ['HAVE_XLOCALE_H']
|
||||
|
||||
if env['platform'] == 'haiku':
|
||||
cppdefines += [
|
||||
'HAVE_PTHREAD',
|
||||
'HAVE_POSIX_MEMALIGN'
|
||||
]
|
||||
if platform == 'windows':
|
||||
cppdefines += [
|
||||
'WIN32',
|
||||
@@ -362,6 +367,26 @@ def generate(env):
|
||||
print 'warning: Floating-point textures enabled.'
|
||||
print 'warning: Please consult docs/patents.txt with your lawyer before building Mesa.'
|
||||
cppdefines += ['TEXTURE_FLOAT_ENABLED']
|
||||
if gcc_compat:
|
||||
ccversion = env['CCVERSION']
|
||||
cppdefines += [
|
||||
'HAVE___BUILTIN_EXPECT',
|
||||
'HAVE___BUILTIN_FFS',
|
||||
'HAVE___BUILTIN_FFSLL',
|
||||
'HAVE_FUNC_ATTRIBUTE_FLATTEN',
|
||||
'HAVE_FUNC_ATTRIBUTE_UNUSED',
|
||||
# GCC 3.0
|
||||
'HAVE_FUNC_ATTRIBUTE_FORMAT',
|
||||
'HAVE_FUNC_ATTRIBUTE_PACKED',
|
||||
# GCC 3.4
|
||||
'HAVE___BUILTIN_CTZ',
|
||||
'HAVE___BUILTIN_POPCOUNT',
|
||||
'HAVE___BUILTIN_POPCOUNTLL',
|
||||
'HAVE___BUILTIN_CLZ',
|
||||
'HAVE___BUILTIN_CLZLL',
|
||||
]
|
||||
if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.5'):
|
||||
cppdefines += ['HAVE___BUILTIN_UNREACHABLE']
|
||||
env.Append(CPPDEFINES = cppdefines)
|
||||
|
||||
# C compiler options
|
||||
@@ -369,8 +394,13 @@ def generate(env):
|
||||
cxxflags = [] # C++
|
||||
ccflags = [] # C & C++
|
||||
if gcc_compat:
|
||||
ccversion = env['CCVERSION']
|
||||
if env['build'] == 'debug':
|
||||
ccflags += ['-O0']
|
||||
elif env['gcc'] and ccversion.startswith('4.2.'):
|
||||
# gcc 4.2.x optimizer is broken
|
||||
print "warning: gcc 4.2.x optimizer is broken -- disabling optimizations"
|
||||
ccflags += ['-O0']
|
||||
else:
|
||||
ccflags += ['-O3']
|
||||
if env['gcc']:
|
||||
@@ -380,7 +410,7 @@ def generate(env):
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
ccflags += ['-fno-strict-aliasing']
|
||||
ccflags += ['-g']
|
||||
if env['build'] in ('checked', 'profile') or env['asan']:
|
||||
if env['build'] in ('checked', 'profile'):
|
||||
# See http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#Which_options_should_I_pass_to_gcc_when_compiling_for_profiling?
|
||||
ccflags += [
|
||||
'-fno-omit-frame-pointer',
|
||||
@@ -451,13 +481,13 @@ def generate(env):
|
||||
'/O2', # optimize for speed
|
||||
]
|
||||
if env['build'] == 'release':
|
||||
if not env['clang']:
|
||||
ccflags += [
|
||||
'/GL', # enable whole program optimization
|
||||
]
|
||||
ccflags += [
|
||||
'/GL', # enable whole program optimization
|
||||
]
|
||||
else:
|
||||
ccflags += [
|
||||
'/Oy-', # disable frame pointer omission
|
||||
'/GL-', # disable whole program optimization
|
||||
]
|
||||
ccflags += [
|
||||
'/W3', # warning level
|
||||
@@ -471,10 +501,6 @@ def generate(env):
|
||||
'/wd4800', # forcing value to bool 'true' or 'false' (performance warning)
|
||||
'/wd4996', # disable deprecated POSIX name warnings
|
||||
]
|
||||
if env['clang']:
|
||||
ccflags += [
|
||||
'-Wno-microsoft-enum-value', # enumerator value is not representable in underlying type 'int'
|
||||
]
|
||||
if env['machine'] == 'x86':
|
||||
ccflags += [
|
||||
'/arch:SSE2', # use the SSE2 instructions (default since MSVC 2012)
|
||||
@@ -514,16 +540,6 @@ def generate(env):
|
||||
# scan-build will produce more comprehensive output
|
||||
env.Append(CCFLAGS = ['--analyze'])
|
||||
|
||||
# https://github.com/google/sanitizers/wiki/AddressSanitizer
|
||||
if env['asan']:
|
||||
if gcc_compat:
|
||||
env.Append(CCFLAGS = [
|
||||
'-fsanitize=address',
|
||||
])
|
||||
env.Append(LINKFLAGS = [
|
||||
'-fsanitize=address',
|
||||
])
|
||||
|
||||
# Assembler options
|
||||
if gcc_compat:
|
||||
if env['machine'] == 'x86':
|
||||
@@ -561,7 +577,7 @@ def generate(env):
|
||||
shlinkflags += ['-Wl,--enable-stdcall-fixup']
|
||||
#shlinkflags += ['-Wl,--kill-at']
|
||||
if msvc:
|
||||
if env['build'] == 'release' and not env['clang']:
|
||||
if env['build'] == 'release':
|
||||
# enable Link-time Code Generation
|
||||
linkflags += ['/LTCG']
|
||||
env.Append(ARFLAGS = ['/LTCG'])
|
||||
@@ -641,10 +657,8 @@ def generate(env):
|
||||
|
||||
# Custom builders and methods
|
||||
env.Tool('custom')
|
||||
env.AddMethod(install_program, 'InstallProgram')
|
||||
env.AddMethod(install_shared_library, 'InstallSharedLibrary')
|
||||
env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
|
||||
env.AddMethod(unit_test, 'UnitTest')
|
||||
createInstallMethods(env)
|
||||
createMSVCCompatMethods(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'])
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -19,41 +19,11 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
.PHONY: git_sha1.h.tmp
|
||||
git_sha1.h.tmp:
|
||||
@# Don't assume that $(top_srcdir)/.git is a directory. It may be
|
||||
@# a gitlink file if $(top_srcdir) is a submodule checkout or a linked
|
||||
@# worktree.
|
||||
@# If we are building from a release tarball copy the bundled header.
|
||||
@touch git_sha1.h.tmp
|
||||
@if test -e $(top_srcdir)/.git; then \
|
||||
if which git > /dev/null; then \
|
||||
git --git-dir=$(top_srcdir)/.git log -n 1 --oneline | \
|
||||
sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
|
||||
> git_sha1.h.tmp ; \
|
||||
fi \
|
||||
fi
|
||||
|
||||
git_sha1.h: git_sha1.h.tmp
|
||||
@echo "updating git_sha1.h"
|
||||
@if ! cmp -s git_sha1.h.tmp git_sha1.h; then \
|
||||
mv git_sha1.h.tmp git_sha1.h ;\
|
||||
else \
|
||||
rm git_sha1.h.tmp ;\
|
||||
fi
|
||||
|
||||
BUILT_SOURCES = git_sha1.h
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
SUBDIRS = . gtest util mapi/glapi/gen mapi
|
||||
|
||||
# include only conditionally ?
|
||||
SUBDIRS += compiler
|
||||
|
||||
if HAVE_INTEL_DRIVERS
|
||||
SUBDIRS += intel
|
||||
endif
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += mesa
|
||||
endif
|
||||
@@ -64,30 +34,18 @@ if HAVE_DRI_GLX
|
||||
SUBDIRS += glx
|
||||
endif
|
||||
|
||||
## Optionally required by GBM and EGL
|
||||
if HAVE_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland/wayland-drm
|
||||
if HAVE_EGL_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland/wayland-egl egl/wayland/wayland-drm
|
||||
endif
|
||||
|
||||
## Optionally required by EGL (aka PLATFORM_GBM)
|
||||
if HAVE_GBM
|
||||
SUBDIRS += gbm
|
||||
endif
|
||||
|
||||
## Optionally required by EGL
|
||||
if HAVE_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland/wayland-egl
|
||||
endif
|
||||
|
||||
if HAVE_EGL
|
||||
SUBDIRS += egl
|
||||
endif
|
||||
|
||||
## Requires the i965 compiler (part of mesa) and wayland-drm
|
||||
if HAVE_INTEL_VULKAN
|
||||
SUBDIRS += intel/vulkan
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM
|
||||
SUBDIRS += gallium
|
||||
endif
|
||||
|
4
src/compiler/.gitignore
vendored
4
src/compiler/.gitignore
vendored
@@ -1,5 +1 @@
|
||||
glsl_compiler
|
||||
subtest-cr
|
||||
subtest-cr-lf
|
||||
subtest-lf
|
||||
subtest-lf-cr
|
||||
|
@@ -43,6 +43,25 @@ LOCAL_MODULE := libmesa_compiler
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
include $(LOCAL_PATH)/Android.glsl.mk
|
||||
# ---------------------------------------
|
||||
# Build libmesa_nir
|
||||
# ---------------------------------------
|
||||
|
||||
include $(LOCAL_PATH)/Android.nir.mk
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(NIR_FILES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/mapi \
|
||||
$(MESA_TOP)/src/mesa \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libmesa_compiler
|
||||
|
||||
LOCAL_MODULE := libmesa_nir
|
||||
|
||||
include $(LOCAL_PATH)/Android.gen.mk
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
@@ -1,49 +0,0 @@
|
||||
# Mesa 3-D graphics library
|
||||
#
|
||||
# Copyright (C) 2015 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
# ---------------------------------------
|
||||
# Build libmesa_nir
|
||||
# ---------------------------------------
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(NIR_FILES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/mapi \
|
||||
$(MESA_TOP)/src/mesa \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libmesa_compiler
|
||||
|
||||
LOCAL_MODULE := libmesa_nir
|
||||
|
||||
include $(LOCAL_PATH)/Android.nir.gen.mk
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
@@ -31,8 +31,6 @@ AM_CPPFLAGS = \
|
||||
-I$(top_builddir)/src/compiler/glsl\
|
||||
-I$(top_srcdir)/src/compiler/glsl\
|
||||
-I$(top_srcdir)/src/compiler/glsl/glcpp\
|
||||
-I$(top_builddir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gtest/include \
|
||||
@@ -56,8 +54,272 @@ BUILT_SOURCES =
|
||||
CLEANFILES =
|
||||
EXTRA_DIST = SConscript
|
||||
|
||||
|
||||
EXTRA_DIST += glsl/tests glsl/glcpp/tests glsl/README \
|
||||
glsl/TODO glsl/glcpp/README \
|
||||
glsl/glsl_lexer.ll \
|
||||
glsl/glsl_parser.yy \
|
||||
glsl/glcpp/glcpp-lex.l \
|
||||
glsl/glcpp/glcpp-parse.y \
|
||||
glsl/Makefile.sources \
|
||||
glsl/SConscript
|
||||
|
||||
TESTS += glsl/glcpp/tests/glcpp-test \
|
||||
glsl/glcpp/tests/glcpp-test-cr-lf \
|
||||
glsl/tests/blob-test \
|
||||
glsl/tests/general-ir-test \
|
||||
glsl/tests/optimization-test \
|
||||
glsl/tests/sampler-types-test \
|
||||
glsl/tests/uniform-initializer-test
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
export PYTHON2=$(PYTHON2); \
|
||||
export PYTHON_FLAGS=$(PYTHON_FLAGS);
|
||||
|
||||
check_PROGRAMS += \
|
||||
glsl/glcpp/glcpp \
|
||||
glsl/glsl_test \
|
||||
glsl/tests/blob-test \
|
||||
glsl/tests/general-ir-test \
|
||||
glsl/tests/sampler-types-test \
|
||||
glsl/tests/uniform-initializer-test
|
||||
|
||||
noinst_PROGRAMS = glsl_compiler
|
||||
|
||||
glsl_tests_blob_test_SOURCES = \
|
||||
glsl/tests/blob_test.c
|
||||
glsl_tests_blob_test_LDADD = \
|
||||
glsl/libglsl.la
|
||||
|
||||
glsl_tests_general_ir_test_SOURCES = \
|
||||
glsl/standalone_scaffolding.cpp \
|
||||
glsl/tests/builtin_variable_test.cpp \
|
||||
glsl/tests/invalidate_locations_test.cpp \
|
||||
glsl/tests/general_ir_test.cpp \
|
||||
glsl/tests/varyings_test.cpp
|
||||
glsl_tests_general_ir_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_general_ir_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_tests_uniform_initializer_test_SOURCES = \
|
||||
glsl/tests/copy_constant_to_storage_tests.cpp \
|
||||
glsl/tests/set_uniform_initializer_tests.cpp \
|
||||
glsl/tests/uniform_initializer_utils.cpp \
|
||||
glsl/tests/uniform_initializer_utils.h
|
||||
glsl_tests_uniform_initializer_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_uniform_initializer_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_tests_sampler_types_test_SOURCES = \
|
||||
glsl/tests/sampler_types_test.cpp
|
||||
glsl_tests_sampler_types_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_sampler_types_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
noinst_LTLIBRARIES += glsl/libglsl.la glsl/libglcpp.la
|
||||
|
||||
glsl_libglcpp_la_LIBADD = \
|
||||
$(top_builddir)/src/util/libmesautil.la
|
||||
glsl_libglcpp_la_SOURCES = \
|
||||
glsl/glcpp/glcpp-lex.c \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-parse.h \
|
||||
$(LIBGLCPP_FILES)
|
||||
|
||||
glsl_glcpp_glcpp_SOURCES = \
|
||||
glsl/glcpp/glcpp.c
|
||||
glsl_glcpp_glcpp_LDADD = \
|
||||
glsl/libglcpp.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
-lm
|
||||
|
||||
glsl_libglsl_la_LIBADD = \
|
||||
nir/libnir.la \
|
||||
glsl/libglcpp.la
|
||||
|
||||
glsl_libglsl_la_SOURCES = \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_parser.h \
|
||||
$(LIBGLSL_FILES)
|
||||
|
||||
|
||||
glsl_compiler_SOURCES = \
|
||||
$(GLSL_COMPILER_CXX_FILES)
|
||||
|
||||
glsl_compiler_LDADD = \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(top_builddir)/src/util/libmesautil.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_glsl_test_SOURCES = \
|
||||
glsl/standalone_scaffolding.cpp \
|
||||
glsl/test.cpp \
|
||||
glsl/test_optpass.cpp \
|
||||
glsl/test_optpass.h
|
||||
|
||||
glsl_glsl_test_LDADD = \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
# We write our own rules for yacc and lex below. We'd rather use automake,
|
||||
# but automake makes it especially difficult for a number of reasons:
|
||||
#
|
||||
# * < automake-1.12 generates .h files from .yy and .ypp files, but
|
||||
# >=automake-1.12 generates .hh and .hpp files respectively. There's no
|
||||
# good way of making a project that uses C++ yacc files compatible with
|
||||
# both versions of automake. Strong work automake developers.
|
||||
#
|
||||
# * Since we're generating code from .l/.y files in a subdirectory (glcpp/)
|
||||
# we'd like the resulting generated code to also go in glcpp/ for purposes
|
||||
# of distribution. Automake gives no way to do this.
|
||||
#
|
||||
# * Since we're building multiple yacc parsers into one library (and via one
|
||||
# Makefile) we have to use per-target YFLAGS. Using per-target YFLAGS causes
|
||||
# automake to name the resulting generated code as <library-name>_filename.c.
|
||||
# Frankly, that's ugly and we don't want a libglcpp_glcpp_parser.h file.
|
||||
|
||||
# In order to make build output print "LEX" and "YACC", we reproduce the
|
||||
# automake variables below.
|
||||
|
||||
AM_V_LEX = $(am__v_LEX_$(V))
|
||||
am__v_LEX_ = $(am__v_LEX_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_LEX_0 = @echo " LEX " $@;
|
||||
am__v_LEX_1 =
|
||||
|
||||
AM_V_YACC = $(am__v_YACC_$(V))
|
||||
am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_YACC_0 = @echo " YACC " $@;
|
||||
am__v_YACC_1 =
|
||||
|
||||
MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
|
||||
YACC_GEN = $(AM_V_YACC)$(YACC) $(YFLAGS)
|
||||
LEX_GEN = $(AM_V_LEX)$(LEX) $(LFLAGS)
|
||||
|
||||
include Makefile.glsl.am
|
||||
glsl/glsl_parser.cpp glsl/glsl_parser.h: glsl/glsl_parser.yy
|
||||
$(MKDIR_GEN)
|
||||
$(YACC_GEN) -o $@ -p "_mesa_glsl_" --defines=$(builddir)/glsl/glsl_parser.h $(srcdir)/glsl/glsl_parser.yy
|
||||
|
||||
include Makefile.nir.am
|
||||
glsl/glsl_lexer.cpp: glsl/glsl_lexer.ll
|
||||
$(MKDIR_GEN)
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glsl/glsl_lexer.ll
|
||||
|
||||
glsl/glcpp/glcpp-parse.c glsl/glcpp/glcpp-parse.h: glsl/glcpp/glcpp-parse.y
|
||||
$(MKDIR_GEN)
|
||||
$(YACC_GEN) -o $@ -p "glcpp_parser_" --defines=$(builddir)/glsl/glcpp/glcpp-parse.h $(srcdir)/glsl/glcpp/glcpp-parse.y
|
||||
|
||||
glsl/glcpp/glcpp-lex.c: glsl/glcpp/glcpp-lex.l
|
||||
$(MKDIR_GEN)
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glsl/glcpp/glcpp-lex.l
|
||||
|
||||
# Only the parsers (specifically the header files generated at the same time)
|
||||
# need to be in BUILT_SOURCES. Though if we list the parser headers YACC is
|
||||
# called for the .c/.cpp file and the .h files. By listing the .c/.cpp files
|
||||
# YACC is only executed once for each parser. The rest of the generated code
|
||||
# will be created at the appropriate times according to standard automake
|
||||
# dependency rules.
|
||||
BUILT_SOURCES += \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-lex.c
|
||||
CLEANFILES += \
|
||||
glsl/glcpp/glcpp-parse.h \
|
||||
glsl/glsl_parser.h \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-lex.c
|
||||
|
||||
clean-local:
|
||||
$(RM) -r subtest-cr subtest-cr-lf subtest-lf subtest-lf-cr
|
||||
|
||||
dist-hook:
|
||||
$(RM) glsl/glcpp/tests/*.out
|
||||
$(RM) glsl/glcpp/tests/subtest*/*.out
|
||||
|
||||
noinst_LTLIBRARIES += nir/libnir.la
|
||||
|
||||
nir_libnir_la_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS) \
|
||||
-I$(top_builddir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/compiler/nir
|
||||
|
||||
nir_libnir_la_LIBADD = \
|
||||
libcompiler.la
|
||||
|
||||
nir_libnir_la_SOURCES = \
|
||||
$(NIR_FILES) \
|
||||
$(NIR_GENERATED_FILES)
|
||||
|
||||
PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
|
||||
|
||||
nir/nir_builder_opcodes.h: nir/nir_opcodes.py nir/nir_builder_opcodes_h.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_builder_opcodes_h.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_constant_expressions.c: nir/nir_opcodes.py nir/nir_constant_expressions.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_constant_expressions.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opcodes.h: nir/nir_opcodes.py nir/nir_opcodes_h.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opcodes_h.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opcodes.c: nir/nir_opcodes.py nir/nir_opcodes_c.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opcodes_c.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opt_algebraic.c: nir/nir_opt_algebraic.py nir/nir_algebraic.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opt_algebraic.py > $@ || ($(RM) $@; false)
|
||||
|
||||
|
||||
check_PROGRAMS += nir/tests/control_flow_tests
|
||||
|
||||
nir_tests_control_flow_tests_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS) \
|
||||
-I$(top_builddir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/compiler/nir
|
||||
|
||||
nir_tests_control_flow_tests_SOURCES = \
|
||||
nir/tests/control_flow_tests.cpp
|
||||
nir_tests_control_flow_tests_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
nir_tests_control_flow_tests_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
nir/libnir.la \
|
||||
$(top_builddir)/src/util/libmesautil.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
|
||||
TESTS += nir/tests/control_flow_tests
|
||||
|
||||
|
||||
BUILT_SOURCES += $(NIR_GENERATED_FILES)
|
||||
CLEANFILES += $(NIR_GENERATED_FILES)
|
||||
|
||||
EXTRA_DIST += \
|
||||
nir/nir_algebraic.py \
|
||||
nir/nir_builder_opcodes_h.py \
|
||||
nir/nir_constant_expressions.py \
|
||||
nir/nir_opcodes.py \
|
||||
nir/nir_opcodes_c.py \
|
||||
nir/nir_opcodes_h.py \
|
||||
nir/nir_opt_algebraic.py \
|
||||
nir/tests \
|
||||
nir/Makefile.sources
|
||||
|
@@ -1,90 +0,0 @@
|
||||
#
|
||||
# Copyright © 2012 Jon TURNEY
|
||||
# Copyright (C) 2015 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (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.
|
||||
|
||||
noinst_LTLIBRARIES += nir/libnir.la
|
||||
|
||||
nir_libnir_la_LIBADD = \
|
||||
libcompiler.la
|
||||
|
||||
nir_libnir_la_SOURCES = \
|
||||
$(NIR_FILES) \
|
||||
$(SPIRV_FILES) \
|
||||
$(NIR_GENERATED_FILES)
|
||||
|
||||
PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
|
||||
|
||||
nir/nir_builder_opcodes.h: nir/nir_opcodes.py nir/nir_builder_opcodes_h.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_builder_opcodes_h.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_constant_expressions.c: nir/nir_opcodes.py nir/nir_constant_expressions.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_constant_expressions.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opcodes.h: nir/nir_opcodes.py nir/nir_opcodes_h.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opcodes_h.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opcodes.c: nir/nir_opcodes.py nir/nir_opcodes_c.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opcodes_c.py > $@ || ($(RM) $@; false)
|
||||
|
||||
nir/nir_opt_algebraic.c: nir/nir_opt_algebraic.py nir/nir_algebraic.py
|
||||
$(MKDIR_GEN)
|
||||
$(PYTHON_GEN) $(srcdir)/nir/nir_opt_algebraic.py > $@ || ($(RM) $@; false)
|
||||
|
||||
|
||||
check_PROGRAMS += nir/tests/control_flow_tests
|
||||
|
||||
nir_tests_control_flow_tests_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS) \
|
||||
-I$(top_builddir)/src/compiler/nir \
|
||||
-I$(top_srcdir)/src/compiler/nir
|
||||
|
||||
nir_tests_control_flow_tests_SOURCES = \
|
||||
nir/tests/control_flow_tests.cpp
|
||||
nir_tests_control_flow_tests_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
nir_tests_control_flow_tests_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
nir/libnir.la \
|
||||
$(top_builddir)/src/util/libmesautil.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
|
||||
TESTS += nir/tests/control_flow_tests
|
||||
|
||||
|
||||
BUILT_SOURCES += $(NIR_GENERATED_FILES)
|
||||
CLEANFILES += $(NIR_GENERATED_FILES)
|
||||
|
||||
EXTRA_DIST += \
|
||||
nir/nir_algebraic.py \
|
||||
nir/nir_builder_opcodes_h.py \
|
||||
nir/nir_constant_expressions.py \
|
||||
nir/nir_opcodes.py \
|
||||
nir/nir_opcodes_c.py \
|
||||
nir/nir_opcodes_h.py \
|
||||
nir/nir_opt_algebraic.py \
|
||||
nir/tests \
|
||||
SConscript.nir
|
@@ -25,8 +25,6 @@ LIBGLSL_FILES = \
|
||||
glsl/glsl_parser_extras.h \
|
||||
glsl/glsl_symbol_table.cpp \
|
||||
glsl/glsl_symbol_table.h \
|
||||
glsl/glsl_to_nir.cpp \
|
||||
glsl/glsl_to_nir.h \
|
||||
glsl/hir_field_selection.cpp \
|
||||
glsl/ir_basic_block.cpp \
|
||||
glsl/ir_basic_block.h \
|
||||
@@ -79,10 +77,10 @@ LIBGLSL_FILES = \
|
||||
glsl/loop_unroll.cpp \
|
||||
glsl/lower_buffer_access.cpp \
|
||||
glsl/lower_buffer_access.h \
|
||||
glsl/lower_clip_distance.cpp \
|
||||
glsl/lower_const_arrays_to_uniforms.cpp \
|
||||
glsl/lower_discard.cpp \
|
||||
glsl/lower_discard_flow.cpp \
|
||||
glsl/lower_distance.cpp \
|
||||
glsl/lower_if_to_cond_assign.cpp \
|
||||
glsl/lower_instructions.cpp \
|
||||
glsl/lower_jumps.cpp \
|
||||
@@ -131,7 +129,6 @@ LIBGLSL_FILES = \
|
||||
glsl/opt_tree_grafting.cpp \
|
||||
glsl/opt_vectorize.cpp \
|
||||
glsl/program.h \
|
||||
glsl/propagate_invariance.cpp \
|
||||
glsl/s_expression.cpp \
|
||||
glsl/s_expression.h
|
||||
|
||||
@@ -140,8 +137,7 @@ LIBGLSL_FILES = \
|
||||
GLSL_COMPILER_CXX_FILES = \
|
||||
glsl/standalone_scaffolding.cpp \
|
||||
glsl/standalone_scaffolding.h \
|
||||
glsl/standalone.cpp \
|
||||
glsl/standalone.h
|
||||
glsl/main.cpp
|
||||
|
||||
# libglsl generated sources
|
||||
LIBGLSL_GENERATED_CXX_FILES = \
|
||||
@@ -166,6 +162,8 @@ NIR_GENERATED_FILES = \
|
||||
nir/nir_opt_algebraic.c
|
||||
|
||||
NIR_FILES = \
|
||||
nir/glsl_to_nir.cpp \
|
||||
nir/glsl_to_nir.h \
|
||||
nir/nir.c \
|
||||
nir/nir.h \
|
||||
nir/nir_array.h \
|
||||
@@ -177,34 +175,23 @@ NIR_FILES = \
|
||||
nir/nir_control_flow_private.h \
|
||||
nir/nir_dominance.c \
|
||||
nir/nir_from_ssa.c \
|
||||
nir/nir_gather_info.c \
|
||||
nir/nir_gs_count_vertices.c \
|
||||
nir/nir_inline_functions.c \
|
||||
nir/nir_instr_set.c \
|
||||
nir/nir_instr_set.h \
|
||||
nir/nir_intrinsics.c \
|
||||
nir/nir_intrinsics.h \
|
||||
nir/nir_instr_set.c \
|
||||
nir/nir_instr_set.h \
|
||||
nir/nir_liveness.c \
|
||||
nir/nir_lower_alu_to_scalar.c \
|
||||
nir/nir_lower_atomics.c \
|
||||
nir/nir_lower_bitmap.c \
|
||||
nir/nir_lower_clamp_color_outputs.c \
|
||||
nir/nir_lower_clip.c \
|
||||
nir/nir_lower_double_ops.c \
|
||||
nir/nir_lower_double_packing.c \
|
||||
nir/nir_lower_drawpixels.c \
|
||||
nir/nir_lower_global_vars_to_local.c \
|
||||
nir/nir_lower_gs_intrinsics.c \
|
||||
nir/nir_lower_load_const_to_scalar.c \
|
||||
nir/nir_lower_locals_to_regs.c \
|
||||
nir/nir_lower_idiv.c \
|
||||
nir/nir_lower_indirect_derefs.c \
|
||||
nir/nir_lower_io.c \
|
||||
nir/nir_lower_io_to_temporaries.c \
|
||||
nir/nir_lower_io_types.c \
|
||||
nir/nir_lower_passthrough_edgeflags.c \
|
||||
nir/nir_lower_outputs_to_temporaries.c \
|
||||
nir/nir_lower_phis_to_scalar.c \
|
||||
nir/nir_lower_returns.c \
|
||||
nir/nir_lower_samplers.c \
|
||||
nir/nir_lower_system_values.c \
|
||||
nir/nir_lower_tex.c \
|
||||
@@ -213,8 +200,6 @@ NIR_FILES = \
|
||||
nir/nir_lower_vars_to_ssa.c \
|
||||
nir/nir_lower_var_copies.c \
|
||||
nir/nir_lower_vec_to_movs.c \
|
||||
nir/nir_lower_wpos_center.c \
|
||||
nir/nir_lower_wpos_ytransform.c \
|
||||
nir/nir_metadata.c \
|
||||
nir/nir_move_vec_src_uses_to_dest.c \
|
||||
nir/nir_normalize_cubemap_coords.c \
|
||||
@@ -228,12 +213,8 @@ NIR_FILES = \
|
||||
nir/nir_opt_peephole_select.c \
|
||||
nir/nir_opt_remove_phis.c \
|
||||
nir/nir_opt_undef.c \
|
||||
nir/nir_phi_builder.c \
|
||||
nir/nir_phi_builder.h \
|
||||
nir/nir_print.c \
|
||||
nir/nir_propagate_invariant.c \
|
||||
nir/nir_remove_dead_variables.c \
|
||||
nir/nir_repair_ssa.c \
|
||||
nir/nir_search.c \
|
||||
nir/nir_search.h \
|
||||
nir/nir_split_var_copies.c \
|
||||
@@ -243,16 +224,3 @@ NIR_FILES = \
|
||||
nir/nir_vla.h \
|
||||
nir/nir_worklist.c \
|
||||
nir/nir_worklist.h
|
||||
|
||||
SPIRV_FILES = \
|
||||
spirv/GLSL.std.450.h \
|
||||
spirv/nir_spirv.h \
|
||||
spirv/spirv.h \
|
||||
spirv/spirv_info.h \
|
||||
spirv/spirv_info.c \
|
||||
spirv/spirv_to_nir.c \
|
||||
spirv/vtn_alu.c \
|
||||
spirv/vtn_cfg.c \
|
||||
spirv/vtn_glsl450.c \
|
||||
spirv/vtn_private.h \
|
||||
spirv/vtn_variables.c
|
||||
|
@@ -21,5 +21,4 @@ compiler = env.ConvenienceLibrary(
|
||||
)
|
||||
Export('compiler')
|
||||
|
||||
SConscript('SConscript.glsl')
|
||||
SConscript('SConscript.nir')
|
||||
SConscript('glsl/SConscript')
|
||||
|
@@ -1,73 +0,0 @@
|
||||
import common
|
||||
|
||||
Import('*')
|
||||
|
||||
from sys import executable as python_cmd
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.MSVC2013Compat()
|
||||
|
||||
env.Prepend(CPPPATH = [
|
||||
'#include',
|
||||
'#src',
|
||||
'#src/mapi',
|
||||
'#src/mesa',
|
||||
'#src/gallium/include',
|
||||
'#src/gallium/auxiliary',
|
||||
'#src/compiler/nir',
|
||||
])
|
||||
|
||||
# Make generated headers reachable from the include path.
|
||||
env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
|
||||
|
||||
# nir generated sources
|
||||
|
||||
nir_builder_opcodes_h = env.CodeGenerate(
|
||||
target = 'nir/nir_builder_opcodes.h',
|
||||
script = 'nir/nir_builder_opcodes_h.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'nir/nir_constant_expressions.c',
|
||||
script = 'nir/nir_constant_expressions.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'nir/nir_opcodes.h',
|
||||
script = 'nir/nir_opcodes_h.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'nir/nir_opcodes.c',
|
||||
script = 'nir/nir_opcodes_c.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'nir/nir_opt_algebraic.c',
|
||||
script = 'nir/nir_opt_algebraic.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
# parse Makefile.sources
|
||||
source_lists = env.ParseSourceList('Makefile.sources')
|
||||
|
||||
nir_sources = source_lists['NIR_FILES']
|
||||
nir_sources += source_lists['NIR_GENERATED_FILES']
|
||||
|
||||
nir = env.ConvenienceLibrary(
|
||||
target = 'nir',
|
||||
source = nir_sources,
|
||||
)
|
||||
|
||||
env.Alias('nir', nir)
|
||||
Export('nir')
|
@@ -32,10 +32,8 @@ intermediates := $(call local-generated-sources-dir)
|
||||
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES)
|
||||
|
||||
LOCAL_C_INCLUDES += \
|
||||
$(intermediates)/glsl \
|
||||
$(intermediates)/glsl/glcpp \
|
||||
$(LOCAL_PATH)/glsl \
|
||||
$(LOCAL_PATH)/glsl/glcpp \
|
||||
$(intermediates)/glcpp \
|
||||
$(LOCAL_PATH)/glcpp \
|
||||
|
||||
LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
|
||||
$(LIBGLCPP_GENERATED_FILES) \
|
||||
@@ -67,14 +65,14 @@ define local-yy-to-cpp-and-h
|
||||
rm -f $(@:$1=$(YACC_HEADER_SUFFIX))
|
||||
endef
|
||||
|
||||
$(intermediates)/glsl/glsl_lexer.cpp: $(LOCAL_PATH)/glsl/glsl_lexer.ll
|
||||
$(intermediates)/glsl_lexer.cpp: $(LOCAL_PATH)/glsl_lexer.ll
|
||||
$(call local-l-or-ll-to-c-or-cpp)
|
||||
|
||||
$(intermediates)/glsl/glsl_parser.cpp: $(LOCAL_PATH)/glsl/glsl_parser.yy
|
||||
$(intermediates)/glsl_parser.cpp: $(LOCAL_PATH)/glsl_parser.yy
|
||||
$(call local-yy-to-cpp-and-h,.cpp)
|
||||
|
||||
$(intermediates)/glsl/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-lex.l
|
||||
$(intermediates)/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glcpp/glcpp-lex.l
|
||||
$(call local-l-or-ll-to-c-or-cpp)
|
||||
|
||||
$(intermediates)/glsl/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-parse.y
|
||||
$(intermediates)/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glcpp/glcpp-parse.y
|
||||
$(call glsl_local-y-to-c-and-h)
|
@@ -43,13 +43,33 @@ LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libmesa_compiler \
|
||||
libmesa_nir
|
||||
LOCAL_STATIC_LIBRARIES := libmesa_compiler
|
||||
|
||||
LOCAL_MODULE := libmesa_glsl
|
||||
|
||||
include $(LOCAL_PATH)/Android.glsl.gen.mk
|
||||
include $(LOCAL_PATH)/Android.gen.mk
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
# ---------------------------------------
|
||||
# Build glsl_compiler
|
||||
# ---------------------------------------
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(GLSL_COMPILER_CXX_FILES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/mapi \
|
||||
$(MESA_TOP)/src/mesa \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := libmesa_glsl libmesa_glsl_utils libmesa_util libmesa_compiler
|
||||
|
||||
LOCAL_MODULE_TAGS := eng
|
||||
LOCAL_MODULE := glsl_compiler
|
||||
|
||||
include $(MESA_COMMON_MK)
|
||||
include $(BUILD_EXECUTABLE)
|
@@ -1,6 +1,4 @@
|
||||
#
|
||||
# Copyright © 2012 Jon TURNEY
|
||||
# Copyright (C) 2015 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
@@ -21,130 +19,140 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
EXTRA_DIST += glsl/tests glsl/glcpp/tests glsl/README \
|
||||
glsl/TODO glsl/glcpp/README \
|
||||
glsl/glsl_lexer.ll \
|
||||
glsl/glsl_parser.yy \
|
||||
glsl/glcpp/glcpp-lex.l \
|
||||
glsl/glcpp/glcpp-parse.y \
|
||||
SConscript.glsl
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/mapi \
|
||||
-I$(top_srcdir)/src/mesa/ \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/glsl/glcpp \
|
||||
-I$(top_srcdir)/src/gtest/include \
|
||||
$(DEFINES)
|
||||
AM_CFLAGS = \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(MSVC2013_COMPAT_CFLAGS)
|
||||
AM_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS) \
|
||||
$(MSVC2013_COMPAT_CXXFLAGS)
|
||||
|
||||
TESTS += glsl/glcpp/tests/glcpp-test \
|
||||
glsl/glcpp/tests/glcpp-test-cr-lf \
|
||||
glsl/tests/blob-test \
|
||||
glsl/tests/general-ir-test \
|
||||
glsl/tests/optimization-test \
|
||||
glsl/tests/sampler-types-test \
|
||||
glsl/tests/uniform-initializer-test \
|
||||
glsl/tests/warnings-test
|
||||
EXTRA_DIST = tests glcpp/tests README TODO glcpp/README \
|
||||
glsl_lexer.ll \
|
||||
glsl_parser.yy \
|
||||
glcpp/glcpp-lex.l \
|
||||
glcpp/glcpp-parse.y \
|
||||
SConscript
|
||||
|
||||
include Makefile.sources
|
||||
|
||||
TESTS = glcpp/tests/glcpp-test \
|
||||
glcpp/tests/glcpp-test-cr-lf \
|
||||
tests/blob-test \
|
||||
tests/general-ir-test \
|
||||
tests/optimization-test \
|
||||
tests/sampler-types-test \
|
||||
tests/uniform-initializer-test
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
export PYTHON2=$(PYTHON2); \
|
||||
export PYTHON_FLAGS=$(PYTHON_FLAGS);
|
||||
|
||||
check_PROGRAMS += \
|
||||
glsl/glcpp/glcpp \
|
||||
glsl/glsl_test \
|
||||
glsl/tests/blob-test \
|
||||
glsl/tests/general-ir-test \
|
||||
glsl/tests/sampler-types-test \
|
||||
glsl/tests/uniform-initializer-test
|
||||
noinst_LTLIBRARIES = libglsl.la libglcpp.la
|
||||
check_PROGRAMS = \
|
||||
glcpp/glcpp \
|
||||
glsl_test \
|
||||
tests/blob-test \
|
||||
tests/general-ir-test \
|
||||
tests/sampler-types-test \
|
||||
tests/uniform-initializer-test
|
||||
|
||||
noinst_PROGRAMS = glsl_compiler
|
||||
|
||||
glsl_tests_blob_test_SOURCES = \
|
||||
glsl/tests/blob_test.c
|
||||
glsl_tests_blob_test_LDADD = \
|
||||
glsl/libglsl.la
|
||||
tests_blob_test_SOURCES = \
|
||||
tests/blob_test.c
|
||||
tests_blob_test_LDADD = \
|
||||
$(top_builddir)/src/glsl/libglsl.la
|
||||
|
||||
glsl_tests_general_ir_test_SOURCES = \
|
||||
glsl/tests/builtin_variable_test.cpp \
|
||||
glsl/tests/invalidate_locations_test.cpp \
|
||||
glsl/tests/general_ir_test.cpp \
|
||||
glsl/tests/varyings_test.cpp
|
||||
glsl_tests_general_ir_test_CFLAGS = \
|
||||
tests_general_ir_test_SOURCES = \
|
||||
standalone_scaffolding.cpp \
|
||||
tests/builtin_variable_test.cpp \
|
||||
tests/invalidate_locations_test.cpp \
|
||||
tests/general_ir_test.cpp \
|
||||
tests/varyings_test.cpp
|
||||
tests_general_ir_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_general_ir_test_LDADD = \
|
||||
tests_general_ir_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
glsl/libstandalone.la \
|
||||
$(top_builddir)/src/glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_tests_uniform_initializer_test_SOURCES = \
|
||||
glsl/tests/copy_constant_to_storage_tests.cpp \
|
||||
glsl/tests/set_uniform_initializer_tests.cpp \
|
||||
glsl/tests/uniform_initializer_utils.cpp \
|
||||
glsl/tests/uniform_initializer_utils.h
|
||||
glsl_tests_uniform_initializer_test_CFLAGS = \
|
||||
tests_uniform_initializer_test_SOURCES = \
|
||||
tests/copy_constant_to_storage_tests.cpp \
|
||||
tests/set_uniform_initializer_tests.cpp \
|
||||
tests/uniform_initializer_utils.cpp \
|
||||
tests/uniform_initializer_utils.h
|
||||
tests_uniform_initializer_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_uniform_initializer_test_LDADD = \
|
||||
tests_uniform_initializer_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_tests_sampler_types_test_SOURCES = \
|
||||
glsl/tests/sampler_types_test.cpp
|
||||
glsl_tests_sampler_types_test_CFLAGS = \
|
||||
tests_sampler_types_test_SOURCES = \
|
||||
tests/sampler_types_test.cpp
|
||||
tests_sampler_types_test_CFLAGS = \
|
||||
$(PTHREAD_CFLAGS)
|
||||
glsl_tests_sampler_types_test_LDADD = \
|
||||
tests_sampler_types_test_LDADD = \
|
||||
$(top_builddir)/src/gtest/libgtest.la \
|
||||
glsl/libglsl.la \
|
||||
$(top_builddir)/src/glsl/libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
noinst_LTLIBRARIES += glsl/libglsl.la glsl/libglcpp.la glsl/libstandalone.la
|
||||
|
||||
glsl_libglcpp_la_LIBADD = \
|
||||
libglcpp_la_LIBADD = \
|
||||
$(top_builddir)/src/util/libmesautil.la
|
||||
glsl_libglcpp_la_SOURCES = \
|
||||
glsl/glcpp/glcpp-lex.c \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-parse.h \
|
||||
libglcpp_la_SOURCES = \
|
||||
glcpp/glcpp-lex.c \
|
||||
glcpp/glcpp-parse.c \
|
||||
glcpp/glcpp-parse.h \
|
||||
$(LIBGLCPP_FILES)
|
||||
|
||||
glsl_glcpp_glcpp_SOURCES = \
|
||||
glsl/glcpp/glcpp.c
|
||||
glsl_glcpp_glcpp_LDADD = \
|
||||
glsl/libglcpp.la \
|
||||
glcpp_glcpp_SOURCES = \
|
||||
glcpp/glcpp.c
|
||||
glcpp_glcpp_LDADD = \
|
||||
libglcpp.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
-lm
|
||||
|
||||
glsl_libglsl_la_LIBADD = \
|
||||
nir/libnir.la \
|
||||
glsl/libglcpp.la
|
||||
libglsl_la_LIBADD = \
|
||||
$(top_builddir)/src/compiler/nir/libnir.la \
|
||||
libglcpp.la
|
||||
|
||||
glsl_libglsl_la_SOURCES = \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_parser.h \
|
||||
libglsl_la_SOURCES = \
|
||||
glsl_lexer.cpp \
|
||||
glsl_parser.cpp \
|
||||
glsl_parser.h \
|
||||
$(LIBGLSL_FILES)
|
||||
|
||||
|
||||
glsl_libstandalone_la_SOURCES = \
|
||||
glsl_compiler_SOURCES = \
|
||||
$(GLSL_COMPILER_CXX_FILES)
|
||||
|
||||
glsl_libstandalone_la_LIBADD = \
|
||||
glsl/libglsl.la \
|
||||
glsl_compiler_LDADD = \
|
||||
libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(top_builddir)/src/util/libmesautil.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
glsl_compiler_SOURCES = \
|
||||
glsl/main.cpp
|
||||
glsl_test_SOURCES = \
|
||||
standalone_scaffolding.cpp \
|
||||
test.cpp \
|
||||
test_optpass.cpp \
|
||||
test_optpass.h
|
||||
|
||||
glsl_compiler_LDADD = \
|
||||
glsl/libstandalone.la
|
||||
|
||||
glsl_glsl_test_SOURCES = \
|
||||
glsl/test.cpp \
|
||||
glsl/test_optpass.cpp \
|
||||
glsl/test_optpass.h
|
||||
|
||||
glsl_glsl_test_LDADD = \
|
||||
glsl/libglsl.la \
|
||||
glsl/libstandalone.la \
|
||||
glsl_test_LDADD = \
|
||||
libglsl.la \
|
||||
$(top_builddir)/src/libglsl_util.la \
|
||||
$(PTHREAD_LIBS)
|
||||
|
||||
@@ -178,24 +186,23 @@ am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_YACC_0 = @echo " YACC " $@;
|
||||
am__v_YACC_1 =
|
||||
|
||||
MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
|
||||
YACC_GEN = $(AM_V_YACC)$(YACC) $(YFLAGS)
|
||||
LEX_GEN = $(AM_V_LEX)$(LEX) $(LFLAGS)
|
||||
|
||||
glsl/glsl_parser.cpp glsl/glsl_parser.h: glsl/glsl_parser.yy
|
||||
$(MKDIR_GEN)
|
||||
$(YACC_GEN) -o $@ -p "_mesa_glsl_" --defines=$(builddir)/glsl/glsl_parser.h $(srcdir)/glsl/glsl_parser.yy
|
||||
glsl_parser.cpp glsl_parser.h: glsl_parser.yy
|
||||
$(YACC_GEN) -o $@ -p "_mesa_glsl_" --defines=$(builddir)/glsl_parser.h $(srcdir)/glsl_parser.yy
|
||||
|
||||
glsl/glsl_lexer.cpp: glsl/glsl_lexer.ll
|
||||
$(MKDIR_GEN)
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glsl/glsl_lexer.ll
|
||||
glsl_lexer.cpp: glsl_lexer.ll
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glsl_lexer.ll
|
||||
|
||||
glsl/glcpp/glcpp-parse.c glsl/glcpp/glcpp-parse.h: glsl/glcpp/glcpp-parse.y
|
||||
glcpp/glcpp-parse.c glcpp/glcpp-parse.h: glcpp/glcpp-parse.y
|
||||
$(MKDIR_GEN)
|
||||
$(YACC_GEN) -o $@ -p "glcpp_parser_" --defines=$(builddir)/glsl/glcpp/glcpp-parse.h $(srcdir)/glsl/glcpp/glcpp-parse.y
|
||||
$(YACC_GEN) -o $@ -p "glcpp_parser_" --defines=$(builddir)/glcpp/glcpp-parse.h $(srcdir)/glcpp/glcpp-parse.y
|
||||
|
||||
glsl/glcpp/glcpp-lex.c: glsl/glcpp/glcpp-lex.l
|
||||
glcpp/glcpp-lex.c: glcpp/glcpp-lex.l
|
||||
$(MKDIR_GEN)
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glsl/glcpp/glcpp-lex.l
|
||||
$(LEX_GEN) -o $@ $(srcdir)/glcpp/glcpp-lex.l
|
||||
|
||||
# Only the parsers (specifically the header files generated at the same time)
|
||||
# need to be in BUILT_SOURCES. Though if we list the parser headers YACC is
|
||||
@@ -203,22 +210,19 @@ glsl/glcpp/glcpp-lex.c: glsl/glcpp/glcpp-lex.l
|
||||
# YACC is only executed once for each parser. The rest of the generated code
|
||||
# will be created at the appropriate times according to standard automake
|
||||
# dependency rules.
|
||||
BUILT_SOURCES += \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-lex.c
|
||||
CLEANFILES += \
|
||||
glsl/glcpp/glcpp-parse.h \
|
||||
glsl/glsl_parser.h \
|
||||
glsl/glsl_parser.cpp \
|
||||
glsl/glsl_lexer.cpp \
|
||||
glsl/glcpp/glcpp-parse.c \
|
||||
glsl/glcpp/glcpp-lex.c
|
||||
BUILT_SOURCES = \
|
||||
glsl_parser.cpp \
|
||||
glsl_lexer.cpp \
|
||||
glcpp/glcpp-parse.c \
|
||||
glcpp/glcpp-lex.c
|
||||
CLEANFILES = \
|
||||
glcpp/glcpp-parse.h \
|
||||
glsl_parser.h \
|
||||
$(BUILT_SOURCES)
|
||||
|
||||
clean-local:
|
||||
$(RM) -r subtest-cr subtest-cr-lf subtest-lf subtest-lf-cr
|
||||
|
||||
dist-hook:
|
||||
$(RM) glsl/glcpp/tests/*.out
|
||||
$(RM) glsl/glcpp/tests/subtest*/*.out
|
||||
$(RM) glcpp/tests/*.out
|
||||
$(RM) glcpp/tests/subtest*/*.out
|
222
src/compiler/glsl/Makefile.sources
Normal file
222
src/compiler/glsl/Makefile.sources
Normal file
@@ -0,0 +1,222 @@
|
||||
# shared source lists for Makefile, SConscript, and Android.mk
|
||||
|
||||
# libglcpp
|
||||
|
||||
LIBGLCPP_FILES = \
|
||||
glcpp/glcpp.h \
|
||||
glcpp/pp.c
|
||||
|
||||
LIBGLCPP_GENERATED_FILES = \
|
||||
glcpp/glcpp-lex.c \
|
||||
glcpp/glcpp-parse.c
|
||||
|
||||
NIR_GENERATED_FILES = \
|
||||
nir/nir_builder_opcodes.h \
|
||||
nir/nir_constant_expressions.c \
|
||||
nir/nir_opcodes.c \
|
||||
nir/nir_opcodes.h \
|
||||
nir/nir_opt_algebraic.c
|
||||
|
||||
NIR_FILES = \
|
||||
nir/nir.c \
|
||||
nir/nir.h \
|
||||
nir/nir_array.h \
|
||||
nir/nir_builder.h \
|
||||
nir/nir_clone.c \
|
||||
nir/nir_constant_expressions.h \
|
||||
nir/nir_control_flow.c \
|
||||
nir/nir_control_flow.h \
|
||||
nir/nir_control_flow_private.h \
|
||||
nir/nir_dominance.c \
|
||||
nir/nir_from_ssa.c \
|
||||
nir/nir_gs_count_vertices.c \
|
||||
nir/nir_intrinsics.c \
|
||||
nir/nir_intrinsics.h \
|
||||
nir/nir_instr_set.c \
|
||||
nir/nir_instr_set.h \
|
||||
nir/nir_liveness.c \
|
||||
nir/nir_lower_alu_to_scalar.c \
|
||||
nir/nir_lower_atomics.c \
|
||||
nir/nir_lower_clip.c \
|
||||
nir/nir_lower_global_vars_to_local.c \
|
||||
nir/nir_lower_gs_intrinsics.c \
|
||||
nir/nir_lower_load_const_to_scalar.c \
|
||||
nir/nir_lower_locals_to_regs.c \
|
||||
nir/nir_lower_idiv.c \
|
||||
nir/nir_lower_io.c \
|
||||
nir/nir_lower_outputs_to_temporaries.c \
|
||||
nir/nir_lower_phis_to_scalar.c \
|
||||
nir/nir_lower_samplers.c \
|
||||
nir/nir_lower_system_values.c \
|
||||
nir/nir_lower_tex.c \
|
||||
nir/nir_lower_to_source_mods.c \
|
||||
nir/nir_lower_two_sided_color.c \
|
||||
nir/nir_lower_vars_to_ssa.c \
|
||||
nir/nir_lower_var_copies.c \
|
||||
nir/nir_lower_vec_to_movs.c \
|
||||
nir/nir_metadata.c \
|
||||
nir/nir_move_vec_src_uses_to_dest.c \
|
||||
nir/nir_normalize_cubemap_coords.c \
|
||||
nir/nir_opt_constant_folding.c \
|
||||
nir/nir_opt_copy_propagate.c \
|
||||
nir/nir_opt_cse.c \
|
||||
nir/nir_opt_dce.c \
|
||||
nir/nir_opt_dead_cf.c \
|
||||
nir/nir_opt_gcm.c \
|
||||
nir/nir_opt_global_to_local.c \
|
||||
nir/nir_opt_peephole_select.c \
|
||||
nir/nir_opt_remove_phis.c \
|
||||
nir/nir_opt_undef.c \
|
||||
nir/nir_print.c \
|
||||
nir/nir_remove_dead_variables.c \
|
||||
nir/nir_search.c \
|
||||
nir/nir_search.h \
|
||||
nir/nir_split_var_copies.c \
|
||||
nir/nir_sweep.c \
|
||||
nir/nir_to_ssa.c \
|
||||
nir/nir_validate.c \
|
||||
nir/nir_vla.h \
|
||||
nir/nir_worklist.c \
|
||||
nir/nir_worklist.h
|
||||
|
||||
# libglsl
|
||||
|
||||
LIBGLSL_FILES = \
|
||||
ast.h \
|
||||
ast_array_index.cpp \
|
||||
ast_expr.cpp \
|
||||
ast_function.cpp \
|
||||
ast_to_hir.cpp \
|
||||
ast_type.cpp \
|
||||
blob.c \
|
||||
blob.h \
|
||||
builtin_functions.cpp \
|
||||
builtin_types.cpp \
|
||||
builtin_variables.cpp \
|
||||
glsl_parser_extras.cpp \
|
||||
glsl_parser_extras.h \
|
||||
glsl_symbol_table.cpp \
|
||||
glsl_symbol_table.h \
|
||||
hir_field_selection.cpp \
|
||||
ir_basic_block.cpp \
|
||||
ir_basic_block.h \
|
||||
ir_builder.cpp \
|
||||
ir_builder.h \
|
||||
ir_clone.cpp \
|
||||
ir_constant_expression.cpp \
|
||||
ir.cpp \
|
||||
ir.h \
|
||||
ir_equals.cpp \
|
||||
ir_expression_flattening.cpp \
|
||||
ir_expression_flattening.h \
|
||||
ir_function_can_inline.cpp \
|
||||
ir_function_detect_recursion.cpp \
|
||||
ir_function_inlining.h \
|
||||
ir_function.cpp \
|
||||
ir_hierarchical_visitor.cpp \
|
||||
ir_hierarchical_visitor.h \
|
||||
ir_hv_accept.cpp \
|
||||
ir_import_prototypes.cpp \
|
||||
ir_optimization.h \
|
||||
ir_print_visitor.cpp \
|
||||
ir_print_visitor.h \
|
||||
ir_reader.cpp \
|
||||
ir_reader.h \
|
||||
ir_rvalue_visitor.cpp \
|
||||
ir_rvalue_visitor.h \
|
||||
ir_set_program_inouts.cpp \
|
||||
ir_uniform.h \
|
||||
ir_validate.cpp \
|
||||
ir_variable_refcount.cpp \
|
||||
ir_variable_refcount.h \
|
||||
ir_visitor.h \
|
||||
linker.cpp \
|
||||
linker.h \
|
||||
link_atomics.cpp \
|
||||
link_functions.cpp \
|
||||
link_interface_blocks.cpp \
|
||||
link_uniforms.cpp \
|
||||
link_uniform_initializers.cpp \
|
||||
link_uniform_block_active_visitor.cpp \
|
||||
link_uniform_block_active_visitor.h \
|
||||
link_uniform_blocks.cpp \
|
||||
link_varyings.cpp \
|
||||
link_varyings.h \
|
||||
list.h \
|
||||
loop_analysis.cpp \
|
||||
loop_analysis.h \
|
||||
loop_controls.cpp \
|
||||
loop_unroll.cpp \
|
||||
lower_buffer_access.cpp \
|
||||
lower_buffer_access.h \
|
||||
lower_clip_distance.cpp \
|
||||
lower_const_arrays_to_uniforms.cpp \
|
||||
lower_discard.cpp \
|
||||
lower_discard_flow.cpp \
|
||||
lower_if_to_cond_assign.cpp \
|
||||
lower_instructions.cpp \
|
||||
lower_jumps.cpp \
|
||||
lower_mat_op_to_vec.cpp \
|
||||
lower_noise.cpp \
|
||||
lower_offset_array.cpp \
|
||||
lower_packed_varyings.cpp \
|
||||
lower_named_interface_blocks.cpp \
|
||||
lower_packing_builtins.cpp \
|
||||
lower_subroutine.cpp \
|
||||
lower_tess_level.cpp \
|
||||
lower_texture_projection.cpp \
|
||||
lower_variable_index_to_cond_assign.cpp \
|
||||
lower_vec_index_to_cond_assign.cpp \
|
||||
lower_vec_index_to_swizzle.cpp \
|
||||
lower_vector.cpp \
|
||||
lower_vector_derefs.cpp \
|
||||
lower_vector_insert.cpp \
|
||||
lower_vertex_id.cpp \
|
||||
lower_output_reads.cpp \
|
||||
lower_shared_reference.cpp \
|
||||
lower_ubo_reference.cpp \
|
||||
opt_algebraic.cpp \
|
||||
opt_array_splitting.cpp \
|
||||
opt_conditional_discard.cpp \
|
||||
opt_constant_folding.cpp \
|
||||
opt_constant_propagation.cpp \
|
||||
opt_constant_variable.cpp \
|
||||
opt_copy_propagation.cpp \
|
||||
opt_copy_propagation_elements.cpp \
|
||||
opt_dead_builtin_variables.cpp \
|
||||
opt_dead_builtin_varyings.cpp \
|
||||
opt_dead_code.cpp \
|
||||
opt_dead_code_local.cpp \
|
||||
opt_dead_functions.cpp \
|
||||
opt_flatten_nested_if_blocks.cpp \
|
||||
opt_flip_matrices.cpp \
|
||||
opt_function_inlining.cpp \
|
||||
opt_if_simplification.cpp \
|
||||
opt_minmax.cpp \
|
||||
opt_noop_swizzle.cpp \
|
||||
opt_rebalance_tree.cpp \
|
||||
opt_redundant_jumps.cpp \
|
||||
opt_structure_splitting.cpp \
|
||||
opt_swizzle_swizzle.cpp \
|
||||
opt_tree_grafting.cpp \
|
||||
opt_vectorize.cpp \
|
||||
program.h \
|
||||
s_expression.cpp \
|
||||
s_expression.h
|
||||
|
||||
# glsl to nir pass
|
||||
GLSL_TO_NIR_FILES = \
|
||||
nir/glsl_to_nir.cpp \
|
||||
nir/glsl_to_nir.h
|
||||
|
||||
# glsl_compiler
|
||||
|
||||
GLSL_COMPILER_CXX_FILES = \
|
||||
standalone_scaffolding.cpp \
|
||||
standalone_scaffolding.h \
|
||||
main.cpp
|
||||
|
||||
# libglsl generated sources
|
||||
LIBGLSL_GENERATED_CXX_FILES = \
|
||||
glsl_lexer.cpp \
|
||||
glsl_parser.cpp
|
@@ -15,17 +15,14 @@ env.Prepend(CPPPATH = [
|
||||
'#src/mesa',
|
||||
'#src/gallium/include',
|
||||
'#src/gallium/auxiliary',
|
||||
'#src/compiler/glsl',
|
||||
'#src/compiler/glsl/glcpp',
|
||||
'#src/compiler/nir',
|
||||
'#src/glsl',
|
||||
'#src/glsl/glcpp',
|
||||
])
|
||||
|
||||
env.Prepend(LIBS = [mesautil])
|
||||
|
||||
# Make glcpp-parse.h and glsl_parser.h reachable from the include path.
|
||||
env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
|
||||
# Make NIR headers reachable from the include path.
|
||||
env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
|
||||
env.Append(CPPPATH = [Dir('.').abspath, Dir('glcpp').abspath])
|
||||
|
||||
glcpp_env = env.Clone()
|
||||
glcpp_env.Append(YACCFLAGS = [
|
||||
@@ -35,7 +32,7 @@ glcpp_env.Append(YACCFLAGS = [
|
||||
|
||||
glsl_env = env.Clone()
|
||||
glsl_env.Append(YACCFLAGS = [
|
||||
'--defines=%s' % File('glsl/glsl_parser.h').abspath,
|
||||
'--defines=%s' % File('glsl_parser.h').abspath,
|
||||
'-p', '_mesa_glsl_',
|
||||
])
|
||||
|
||||
@@ -43,10 +40,10 @@ glsl_env.Append(YACCFLAGS = [
|
||||
# "glsl_parser.h", causing glsl_parser.cpp to be regenerated every time
|
||||
glsl_env['YACCHXXFILESUFFIX'] = '.h'
|
||||
|
||||
glcpp_lexer = glcpp_env.CFile('glsl/glcpp/glcpp-lex.c', 'glsl/glcpp/glcpp-lex.l')
|
||||
glcpp_parser = glcpp_env.CFile('glsl/glcpp/glcpp-parse.c', 'glsl/glcpp/glcpp-parse.y')
|
||||
glsl_lexer = glsl_env.CXXFile('glsl/glsl_lexer.cpp', 'glsl/glsl_lexer.ll')
|
||||
glsl_parser = glsl_env.CXXFile('glsl/glsl_parser.cpp', 'glsl/glsl_parser.yy')
|
||||
glcpp_lexer = glcpp_env.CFile('glcpp/glcpp-lex.c', 'glcpp/glcpp-lex.l')
|
||||
glcpp_parser = glcpp_env.CFile('glcpp/glcpp-parse.c', 'glcpp/glcpp-parse.y')
|
||||
glsl_lexer = glsl_env.CXXFile('glsl_lexer.cpp', 'glsl_lexer.ll')
|
||||
glsl_parser = glsl_env.CXXFile('glsl_parser.cpp', 'glsl_parser.yy')
|
||||
|
||||
# common generated sources
|
||||
glsl_sources = [
|
||||
@@ -54,7 +51,7 @@ glsl_sources = [
|
||||
glcpp_parser[0],
|
||||
glsl_lexer,
|
||||
glsl_parser[0],
|
||||
]
|
||||
]
|
||||
|
||||
# parse Makefile.sources
|
||||
source_lists = env.ParseSourceList('Makefile.sources')
|
||||
@@ -69,20 +66,20 @@ if env['msvc']:
|
||||
|
||||
# Copy these files to avoid generation object files into src/mesa/program
|
||||
env.Prepend(CPPPATH = ['#src/mesa/main'])
|
||||
env.Command('glsl/imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE'))
|
||||
# Copy these files to avoid generation object files into src/mesa/program
|
||||
env.Prepend(CPPPATH = ['#src/mesa/program'])
|
||||
env.Command('glsl/prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('glsl/symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('glsl/dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE'))
|
||||
env.Command('dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TARGET', '$SOURCE'))
|
||||
|
||||
compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES'])
|
||||
|
||||
mesa_objs = env.StaticObject([
|
||||
'glsl/imports.c',
|
||||
'glsl/prog_hash_table.c',
|
||||
'glsl/symbol_table.c',
|
||||
'glsl/dummy_errors.c',
|
||||
'imports.c',
|
||||
'prog_hash_table.c',
|
||||
'symbol_table.c',
|
||||
'dummy_errors.c',
|
||||
])
|
||||
|
||||
compiler_objs += mesa_objs
|
||||
@@ -112,8 +109,6 @@ if env['platform'] == 'windows':
|
||||
|
||||
env.Prepend(LIBS = [compiler, glsl])
|
||||
|
||||
compiler_objs += env.StaticObject("glsl/main.cpp")
|
||||
|
||||
glsl_compiler = env.Program(
|
||||
target = 'glsl_compiler',
|
||||
source = compiler_objs,
|
||||
@@ -121,7 +116,7 @@ glsl_compiler = env.Program(
|
||||
env.Alias('glsl_compiler', glsl_compiler)
|
||||
|
||||
glcpp = env.Program(
|
||||
target = 'glsl/glcpp/glcpp',
|
||||
source = ['glsl/glcpp/glcpp.c'] + mesa_objs,
|
||||
target = 'glcpp/glcpp',
|
||||
source = ['glcpp/glcpp.c'] + mesa_objs,
|
||||
)
|
||||
env.Alias('glcpp', glcpp)
|
@@ -126,8 +126,6 @@ public:
|
||||
|
||||
exec_node link;
|
||||
|
||||
virtual void set_is_lhs(bool);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* The only constructor is protected so that only derived class objects can
|
||||
@@ -216,7 +214,6 @@ public:
|
||||
subexpressions[2] = NULL;
|
||||
primary_expression.identifier = identifier;
|
||||
this->non_lvalue_description = NULL;
|
||||
this->is_lhs = false;
|
||||
}
|
||||
|
||||
static const char *operator_string(enum ast_operators op);
|
||||
@@ -266,11 +263,6 @@ public:
|
||||
* This pointer may be \c NULL.
|
||||
*/
|
||||
const char *non_lvalue_description;
|
||||
|
||||
void set_is_lhs(bool new_value);
|
||||
|
||||
private:
|
||||
bool is_lhs;
|
||||
};
|
||||
|
||||
class ast_expression_bin : public ast_expression {
|
||||
@@ -368,8 +360,7 @@ public:
|
||||
|
||||
bool process_qualifier_constant(struct _mesa_glsl_parse_state *state,
|
||||
const char *qual_indentifier,
|
||||
unsigned *value, bool can_be_zero,
|
||||
bool must_match = false);
|
||||
unsigned *value, bool can_be_zero);
|
||||
|
||||
void merge_qualifier(ast_layout_expression *l_expr)
|
||||
{
|
||||
@@ -488,12 +479,6 @@ struct ast_type_qualifier {
|
||||
unsigned pixel_center_integer:1;
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* Flag set if GL_ARB_enhanced_layouts "align" layout qualifier is
|
||||
* used.
|
||||
*/
|
||||
unsigned explicit_align:1;
|
||||
|
||||
/**
|
||||
* Flag set if GL_ARB_explicit_attrib_location "location" layout
|
||||
* qualifier is used.
|
||||
@@ -505,12 +490,6 @@ struct ast_type_qualifier {
|
||||
*/
|
||||
unsigned explicit_index:1;
|
||||
|
||||
/**
|
||||
* Flag set if GL_ARB_enhanced_layouts "component" layout
|
||||
* qualifier is used.
|
||||
*/
|
||||
unsigned explicit_component:1;
|
||||
|
||||
/**
|
||||
* Flag set if GL_ARB_shading_language_420pack "binding" layout
|
||||
* qualifier is used.
|
||||
@@ -571,15 +550,6 @@ struct ast_type_qualifier {
|
||||
unsigned explicit_stream:1; /**< stream value assigned explicitly by shader code */
|
||||
/** \} */
|
||||
|
||||
/** \name Layout qualifiers for GL_ARB_enhanced_layouts */
|
||||
/** \{ */
|
||||
unsigned explicit_xfb_offset:1; /**< xfb_offset value assigned explicitly by shader code */
|
||||
unsigned xfb_buffer:1; /**< Has xfb_buffer value assigned */
|
||||
unsigned explicit_xfb_buffer:1; /**< xfb_buffer value assigned explicitly by shader code */
|
||||
unsigned xfb_stride:1; /**< Is xfb_stride value yet to be merged with global values */
|
||||
unsigned explicit_xfb_stride:1; /**< xfb_stride value assigned explicitly by shader code */
|
||||
/** \} */
|
||||
|
||||
/** \name Layout qualifiers for GL_ARB_tessellation_shader */
|
||||
/** \{ */
|
||||
/* tess eval input layout */
|
||||
@@ -607,11 +577,6 @@ struct ast_type_qualifier {
|
||||
/** Precision of the type (highp/medium/lowp). */
|
||||
unsigned precision:2;
|
||||
|
||||
/**
|
||||
* Alignment specified via GL_ARB_enhanced_layouts "align" layout qualifier
|
||||
*/
|
||||
ast_expression *align;
|
||||
|
||||
/** Geometry shader invocations for GL_ARB_gpu_shader5. */
|
||||
ast_layout_expression *invocations;
|
||||
|
||||
@@ -630,29 +595,12 @@ struct ast_type_qualifier {
|
||||
*/
|
||||
ast_expression *index;
|
||||
|
||||
/**
|
||||
* Component specified via GL_ARB_enhaced_layouts
|
||||
*
|
||||
* \note
|
||||
* This field is only valid if \c explicit_component is set.
|
||||
*/
|
||||
ast_expression *component;
|
||||
|
||||
/** Maximum output vertices in GLSL 1.50 geometry shaders. */
|
||||
ast_layout_expression *max_vertices;
|
||||
|
||||
/** Stream in GLSL 1.50 geometry shaders. */
|
||||
ast_expression *stream;
|
||||
|
||||
/** xfb_buffer specified via the GL_ARB_enhanced_layouts keyword. */
|
||||
ast_expression *xfb_buffer;
|
||||
|
||||
/** xfb_stride specified via the GL_ARB_enhanced_layouts keyword. */
|
||||
ast_expression *xfb_stride;
|
||||
|
||||
/** global xfb_stride values for each buffer */
|
||||
ast_layout_expression *out_xfb_stride[MAX_FEEDBACK_BUFFERS];
|
||||
|
||||
/**
|
||||
* Input or output primitive type in GLSL 1.50 geometry shaders
|
||||
* and tessellation shaders.
|
||||
@@ -668,9 +616,8 @@ struct ast_type_qualifier {
|
||||
ast_expression *binding;
|
||||
|
||||
/**
|
||||
* Offset specified via GL_ARB_shader_atomic_counter's or
|
||||
* GL_ARB_enhanced_layouts "offset" keyword, or by GL_ARB_enhanced_layouts
|
||||
* "xfb_offset" keyword.
|
||||
* Offset specified via GL_ARB_shader_atomic_counter's "offset"
|
||||
* keyword.
|
||||
*
|
||||
* \note
|
||||
* This field is only valid if \c explicit_offset is set.
|
||||
@@ -753,11 +700,6 @@ struct ast_type_qualifier {
|
||||
const ast_type_qualifier &q,
|
||||
ast_node* &node, bool create_node);
|
||||
|
||||
bool validate_flags(YYLTYPE *loc,
|
||||
_mesa_glsl_parse_state *state,
|
||||
const char *message,
|
||||
const ast_type_qualifier &allowed_flags);
|
||||
|
||||
ast_subroutine_list *subroutine_list;
|
||||
};
|
||||
|
||||
@@ -1119,9 +1061,10 @@ public:
|
||||
|
||||
class ast_interface_block : public ast_node {
|
||||
public:
|
||||
ast_interface_block(const char *instance_name,
|
||||
ast_interface_block(ast_type_qualifier layout,
|
||||
const char *instance_name,
|
||||
ast_array_specifier *array_specifier)
|
||||
: block_name(NULL), instance_name(instance_name),
|
||||
: layout(layout), block_name(NULL), instance_name(instance_name),
|
||||
array_specifier(array_specifier)
|
||||
{
|
||||
}
|
||||
@@ -1246,10 +1189,4 @@ extern void _mesa_ast_process_interface_block(YYLTYPE *locp,
|
||||
ast_interface_block *const block,
|
||||
const struct ast_type_qualifier &q);
|
||||
|
||||
extern bool
|
||||
process_qualifier_constant(struct _mesa_glsl_parse_state *state,
|
||||
YYLTYPE *loc,
|
||||
const char *qual_indentifier,
|
||||
ast_expression *const_expression,
|
||||
unsigned *value);
|
||||
#endif /* AST_H */
|
||||
|
@@ -92,12 +92,12 @@ update_max_array_access(ir_rvalue *ir, int idx, YYLTYPE *loc,
|
||||
deref_record->record->type->field_index(deref_record->field);
|
||||
assert(field_index < deref_var->var->get_interface_type()->length);
|
||||
|
||||
int *const max_ifc_array_access =
|
||||
unsigned *const max_ifc_array_access =
|
||||
deref_var->var->get_max_ifc_array_access();
|
||||
|
||||
assert(max_ifc_array_access != NULL);
|
||||
|
||||
if (idx > max_ifc_array_access[field_index]) {
|
||||
if (idx > (int)max_ifc_array_access[field_index]) {
|
||||
max_ifc_array_access[field_index] = idx;
|
||||
|
||||
/* Check whether this access will, as a side effect, implicitly
|
||||
@@ -236,23 +236,14 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
|
||||
_mesa_glsl_error(&loc, state, "unsized array index must be constant");
|
||||
}
|
||||
} else if (array->type->without_array()->is_interface()
|
||||
&& ((array->variable_referenced()->data.mode == ir_var_uniform
|
||||
&& !state->is_version(400, 320)
|
||||
&& !state->ARB_gpu_shader5_enable
|
||||
&& !state->EXT_gpu_shader5_enable
|
||||
&& !state->OES_gpu_shader5_enable) ||
|
||||
(array->variable_referenced()->data.mode == ir_var_shader_storage
|
||||
&& !state->is_version(400, 0)
|
||||
&& !state->ARB_gpu_shader5_enable))) {
|
||||
/* Page 50 in section 4.3.9 of the OpenGL ES 3.10 spec says:
|
||||
*
|
||||
* "All indices used to index a uniform or shader storage block
|
||||
* array must be constant integral expressions."
|
||||
*
|
||||
* But OES_gpu_shader5 (and ESSL 3.20) relax this to allow indexing
|
||||
* on uniform blocks but not shader storage blocks.
|
||||
*
|
||||
*/
|
||||
&& (array->variable_referenced()->data.mode == ir_var_uniform ||
|
||||
array->variable_referenced()->data.mode == ir_var_shader_storage)
|
||||
&& !state->is_version(400, 0) && !state->ARB_gpu_shader5_enable) {
|
||||
/* Page 50 in section 4.3.9 of the OpenGL ES 3.10 spec says:
|
||||
*
|
||||
* "All indices used to index a uniform or shader storage block
|
||||
* array must be constant integral expressions."
|
||||
*/
|
||||
_mesa_glsl_error(&loc, state, "%s block array index must be constant",
|
||||
array->variable_referenced()->data.mode
|
||||
== ir_var_uniform ? "uniform" : "shader storage");
|
||||
@@ -288,10 +279,7 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
|
||||
* dynamically uniform expression is undefined.
|
||||
*/
|
||||
if (array->type->without_array()->is_sampler()) {
|
||||
if (!state->is_version(400, 320) &&
|
||||
!state->ARB_gpu_shader5_enable &&
|
||||
!state->EXT_gpu_shader5_enable &&
|
||||
!state->OES_gpu_shader5_enable) {
|
||||
if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable) {
|
||||
if (state->is_version(130, 300))
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"sampler arrays indexed with non-constant "
|
||||
|
@@ -43,12 +43,6 @@ process_parameters(exec_list *instructions, exec_list *actual_parameters,
|
||||
unsigned count = 0;
|
||||
|
||||
foreach_list_typed(ast_node, ast, link, parameters) {
|
||||
/* We need to process the parameters first in order to know if we can
|
||||
* raise or not a unitialized warning. Calling set_is_lhs silence the
|
||||
* warning for now. Raising the warning or not will be checked at
|
||||
* verify_parameter_modes.
|
||||
*/
|
||||
ast->set_is_lhs(true);
|
||||
ir_rvalue *result = ast->hir(instructions, state);
|
||||
|
||||
ir_constant *const constant = result->constant_expression_value();
|
||||
@@ -214,30 +208,20 @@ verify_parameter_modes(_mesa_glsl_parse_state *state,
|
||||
|
||||
/* Verify that shader_in parameters are shader inputs */
|
||||
if (formal->data.must_be_shader_input) {
|
||||
const ir_rvalue *val = actual;
|
||||
|
||||
// GLSL 4.40 allows swizzles, while earlier GLSL versions do not.
|
||||
if (val->ir_type == ir_type_swizzle) {
|
||||
if (!state->is_version(440, 0)) {
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"parameter `%s` must not be swizzled",
|
||||
formal->name);
|
||||
return false;
|
||||
}
|
||||
val = ((ir_swizzle *)val)->val;
|
||||
}
|
||||
|
||||
while (val->ir_type == ir_type_dereference_array) {
|
||||
val = ((ir_dereference_array *)val)->array;
|
||||
}
|
||||
|
||||
if (!val->as_dereference_variable() ||
|
||||
val->variable_referenced()->data.mode != ir_var_shader_in) {
|
||||
ir_variable *var = actual->variable_referenced();
|
||||
if (var && var->data.mode != ir_var_shader_in) {
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"parameter `%s` must be a shader input",
|
||||
formal->name);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (actual->ir_type == ir_type_swizzle) {
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"parameter `%s` must not be swizzled",
|
||||
formal->name);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify that 'out' and 'inout' actual parameters are lvalues. */
|
||||
@@ -263,16 +247,6 @@ verify_parameter_modes(_mesa_glsl_parse_state *state,
|
||||
}
|
||||
|
||||
ir_variable *var = actual->variable_referenced();
|
||||
|
||||
if (var && formal->data.mode == ir_var_function_inout) {
|
||||
if ((var->data.mode == ir_var_auto || var->data.mode == ir_var_shader_out) &&
|
||||
!var->data.assigned &&
|
||||
!is_gl_identifier(var->name)) {
|
||||
_mesa_glsl_warning(&loc, state, "`%s' used uninitialized",
|
||||
var->name);
|
||||
}
|
||||
}
|
||||
|
||||
if (var)
|
||||
var->data.assigned = true;
|
||||
|
||||
@@ -289,18 +263,6 @@ verify_parameter_modes(_mesa_glsl_parse_state *state,
|
||||
mode, formal->name);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
assert(formal->data.mode == ir_var_function_in ||
|
||||
formal->data.mode == ir_var_const_in);
|
||||
ir_variable *var = actual->variable_referenced();
|
||||
if (var) {
|
||||
if ((var->data.mode == ir_var_auto || var->data.mode == ir_var_shader_out) &&
|
||||
!var->data.assigned &&
|
||||
!is_gl_identifier(var->name)) {
|
||||
_mesa_glsl_warning(&loc, state, "`%s' used uninitialized",
|
||||
var->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (formal->type->is_image() &&
|
||||
@@ -1571,7 +1533,7 @@ emit_inline_matrix_constructor(const glsl_type *type,
|
||||
for (unsigned i = 1; i < last_row; i++)
|
||||
swiz[i] = i;
|
||||
|
||||
const unsigned write_mask = (1U << last_row) - 1;
|
||||
const unsigned write_mask = (1U << last_row) - 1;
|
||||
|
||||
for (unsigned i = 0; i < last_col; i++) {
|
||||
ir_dereference *const lhs =
|
||||
@@ -1728,7 +1690,7 @@ process_record_constructor(exec_list *instructions,
|
||||
constructor_type->fields.structure[i].name,
|
||||
ir->type->name,
|
||||
constructor_type->fields.structure[i].type->name);
|
||||
return ir_rvalue::error_value(ctx);
|
||||
return ir_rvalue::error_value(ctx);;
|
||||
}
|
||||
|
||||
node = node->next;
|
||||
@@ -1765,10 +1727,6 @@ ast_function_expression::handle_method(exec_list *instructions,
|
||||
const char *method;
|
||||
method = field->primary_expression.identifier;
|
||||
|
||||
/* This would prevent to raise "uninitialized variable" warnings when
|
||||
* calling array.length.
|
||||
*/
|
||||
field->subexpressions[0]->set_is_lhs(true);
|
||||
op = field->subexpressions[0]->hir(instructions, state);
|
||||
if (strcmp(method, "length") == 0) {
|
||||
if (!this->expressions.is_empty()) {
|
||||
@@ -1857,12 +1815,6 @@ ast_function_expression::hir(exec_list *instructions,
|
||||
return ir_rvalue::error_value(ctx);
|
||||
}
|
||||
|
||||
if (constructor_type->is_subroutine()) {
|
||||
_mesa_glsl_error(& loc, state, "subroutine name cannot be a constructor `%s'",
|
||||
constructor_type->name);
|
||||
return ir_rvalue::error_value(ctx);
|
||||
}
|
||||
|
||||
if (constructor_type->is_array()) {
|
||||
if (!state->check_version(120, 300, &loc,
|
||||
"array constructors forbidden")) {
|
||||
@@ -2078,10 +2030,6 @@ ast_function_expression::hir(exec_list *instructions,
|
||||
func_name = id->primary_expression.identifier;
|
||||
}
|
||||
|
||||
/* an error was emitted earlier */
|
||||
if (!func_name)
|
||||
return ir_rvalue::error_value(ctx);
|
||||
|
||||
ir_function_signature *sig =
|
||||
match_function_by_name(func_name, &actual_parameters, state);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -73,17 +73,12 @@ ast_type_qualifier::has_layout() const
|
||||
|| this->flags.q.column_major
|
||||
|| this->flags.q.row_major
|
||||
|| this->flags.q.packed
|
||||
|| this->flags.q.explicit_align
|
||||
|| this->flags.q.explicit_component
|
||||
|| this->flags.q.explicit_location
|
||||
|| this->flags.q.explicit_image_format
|
||||
|| this->flags.q.explicit_index
|
||||
|| this->flags.q.explicit_binding
|
||||
|| this->flags.q.explicit_offset
|
||||
|| this->flags.q.explicit_stream
|
||||
|| this->flags.q.explicit_xfb_buffer
|
||||
|| this->flags.q.explicit_xfb_offset
|
||||
|| this->flags.q.explicit_xfb_stride;
|
||||
|| this->flags.q.explicit_stream;
|
||||
}
|
||||
|
||||
bool
|
||||
@@ -139,29 +134,6 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
|
||||
stream_layout_mask.flags.i = 0;
|
||||
stream_layout_mask.flags.q.stream = 1;
|
||||
|
||||
/* FIXME: We should probably do interface and function param validation
|
||||
* separately.
|
||||
*/
|
||||
ast_type_qualifier input_layout_mask;
|
||||
input_layout_mask.flags.i = 0;
|
||||
input_layout_mask.flags.q.centroid = 1;
|
||||
/* Function params can have constant */
|
||||
input_layout_mask.flags.q.constant = 1;
|
||||
input_layout_mask.flags.q.explicit_component = 1;
|
||||
input_layout_mask.flags.q.explicit_location = 1;
|
||||
input_layout_mask.flags.q.flat = 1;
|
||||
input_layout_mask.flags.q.in = 1;
|
||||
input_layout_mask.flags.q.invariant = 1;
|
||||
input_layout_mask.flags.q.noperspective = 1;
|
||||
input_layout_mask.flags.q.origin_upper_left = 1;
|
||||
/* Function params 'inout' will set this */
|
||||
input_layout_mask.flags.q.out = 1;
|
||||
input_layout_mask.flags.q.patch = 1;
|
||||
input_layout_mask.flags.q.pixel_center_integer = 1;
|
||||
input_layout_mask.flags.q.precise = 1;
|
||||
input_layout_mask.flags.q.sample = 1;
|
||||
input_layout_mask.flags.q.smooth = 1;
|
||||
|
||||
/* Uniform block layout qualifiers get to overwrite each
|
||||
* other (rightmost having priority), while all other
|
||||
* qualifiers currently don't allow duplicates.
|
||||
@@ -175,12 +147,9 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
|
||||
/* Geometry shaders can have several layout qualifiers
|
||||
* assigning different stream values.
|
||||
*/
|
||||
if (state->stage == MESA_SHADER_GEOMETRY) {
|
||||
if (state->stage == MESA_SHADER_GEOMETRY)
|
||||
allowed_duplicates_mask.flags.i |=
|
||||
stream_layout_mask.flags.i;
|
||||
input_layout_mask.flags.i |=
|
||||
stream_layout_mask.flags.i;
|
||||
}
|
||||
|
||||
if (is_single_layout_merge && !state->has_enhanced_layouts() &&
|
||||
(this->flags.i & q.flags.i & ~allowed_duplicates_mask.flags.i) != 0) {
|
||||
@@ -237,43 +206,6 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
|
||||
}
|
||||
}
|
||||
|
||||
if (state->has_enhanced_layouts()) {
|
||||
if (!this->flags.q.explicit_xfb_buffer) {
|
||||
if (q.flags.q.xfb_buffer) {
|
||||
this->flags.q.xfb_buffer = 1;
|
||||
this->xfb_buffer = q.xfb_buffer;
|
||||
} else if (!this->flags.q.xfb_buffer && this->flags.q.out) {
|
||||
/* Assign global xfb_buffer value */
|
||||
this->flags.q.xfb_buffer = 1;
|
||||
this->xfb_buffer = state->out_qualifier->xfb_buffer;
|
||||
}
|
||||
}
|
||||
|
||||
if (q.flags.q.explicit_xfb_stride)
|
||||
this->xfb_stride = q.xfb_stride;
|
||||
|
||||
/* Merge all we xfb_stride qualifiers into the global out */
|
||||
if (q.flags.q.explicit_xfb_stride || this->flags.q.xfb_stride) {
|
||||
|
||||
/* Set xfb_stride flag to 0 to avoid adding duplicates every time
|
||||
* there is a merge.
|
||||
*/
|
||||
this->flags.q.xfb_stride = 0;
|
||||
|
||||
unsigned buff_idx;
|
||||
if (process_qualifier_constant(state, loc, "xfb_buffer",
|
||||
this->xfb_buffer, &buff_idx)) {
|
||||
if (state->out_qualifier->out_xfb_stride[buff_idx]) {
|
||||
state->out_qualifier->out_xfb_stride[buff_idx]->merge_qualifier(
|
||||
new(state) ast_layout_expression(*loc, this->xfb_stride));
|
||||
} else {
|
||||
state->out_qualifier->out_xfb_stride[buff_idx] =
|
||||
new(state) ast_layout_expression(*loc, this->xfb_stride);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (q.flags.q.vertices) {
|
||||
if (this->vertices) {
|
||||
this->vertices->merge_qualifier(q.vertices);
|
||||
@@ -326,29 +258,16 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
|
||||
|
||||
this->flags.i |= q.flags.i;
|
||||
|
||||
if (this->flags.q.in &&
|
||||
(this->flags.i & ~input_layout_mask.flags.i) != 0) {
|
||||
_mesa_glsl_error(loc, state,
|
||||
"invalid input layout qualifier used");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (q.flags.q.explicit_align)
|
||||
this->align = q.align;
|
||||
|
||||
if (q.flags.q.explicit_location)
|
||||
this->location = q.location;
|
||||
|
||||
if (q.flags.q.explicit_index)
|
||||
this->index = q.index;
|
||||
|
||||
if (q.flags.q.explicit_component)
|
||||
this->component = q.component;
|
||||
|
||||
if (q.flags.q.explicit_binding)
|
||||
this->binding = q.binding;
|
||||
|
||||
if (q.flags.q.explicit_offset || q.flags.q.explicit_xfb_offset)
|
||||
if (q.flags.q.explicit_offset)
|
||||
this->offset = q.offset;
|
||||
|
||||
if (q.precision != ast_precision_none)
|
||||
@@ -370,8 +289,6 @@ ast_type_qualifier::merge_out_qualifier(YYLTYPE *loc,
|
||||
{
|
||||
void *mem_ctx = state;
|
||||
const bool r = this->merge_qualifier(loc, state, q, false);
|
||||
ast_type_qualifier valid_out_mask;
|
||||
valid_out_mask.flags.i = 0;
|
||||
|
||||
if (state->stage == MESA_SHADER_GEOMETRY) {
|
||||
if (q.flags.q.prim_type) {
|
||||
@@ -390,45 +307,13 @@ ast_type_qualifier::merge_out_qualifier(YYLTYPE *loc,
|
||||
|
||||
/* Allow future assigments of global out's stream id value */
|
||||
this->flags.q.explicit_stream = 0;
|
||||
|
||||
valid_out_mask.flags.q.stream = 1;
|
||||
valid_out_mask.flags.q.explicit_stream = 1;
|
||||
valid_out_mask.flags.q.explicit_xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.explicit_xfb_stride = 1;
|
||||
valid_out_mask.flags.q.xfb_stride = 1;
|
||||
valid_out_mask.flags.q.max_vertices = 1;
|
||||
valid_out_mask.flags.q.prim_type = 1;
|
||||
} else if (state->stage == MESA_SHADER_TESS_CTRL) {
|
||||
if (create_node) {
|
||||
node = new(mem_ctx) ast_tcs_output_layout(*loc);
|
||||
}
|
||||
valid_out_mask.flags.q.vertices = 1;
|
||||
valid_out_mask.flags.q.explicit_xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.explicit_xfb_stride = 1;
|
||||
valid_out_mask.flags.q.xfb_stride = 1;
|
||||
} else if (state->stage == MESA_SHADER_TESS_EVAL ||
|
||||
state->stage == MESA_SHADER_VERTEX) {
|
||||
valid_out_mask.flags.q.explicit_xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.xfb_buffer = 1;
|
||||
valid_out_mask.flags.q.explicit_xfb_stride = 1;
|
||||
valid_out_mask.flags.q.xfb_stride = 1;
|
||||
} else {
|
||||
_mesa_glsl_error(loc, state, "out layout qualifiers only valid in "
|
||||
"geometry, tessellation and vertex shaders");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Allow future assigments of global out's */
|
||||
this->flags.q.explicit_xfb_buffer = 0;
|
||||
this->flags.q.explicit_xfb_stride = 0;
|
||||
|
||||
/* Generate an error when invalid input layout qualifiers are used. */
|
||||
if ((q.flags.i & ~valid_out_mask.flags.i) != 0) {
|
||||
_mesa_glsl_error(loc, state,
|
||||
"invalid output layout qualifiers used");
|
||||
return false;
|
||||
"tessellation control or geometry shaders");
|
||||
}
|
||||
|
||||
return r;
|
||||
@@ -589,97 +474,11 @@ ast_type_qualifier::merge_in_qualifier(YYLTYPE *loc,
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the current type qualifier has any illegal flags.
|
||||
*
|
||||
* If so, print an error message, followed by a list of illegal flags.
|
||||
*
|
||||
* \param message The error message to print.
|
||||
* \param allowed_flags A list of valid flags.
|
||||
*/
|
||||
bool
|
||||
ast_type_qualifier::validate_flags(YYLTYPE *loc,
|
||||
_mesa_glsl_parse_state *state,
|
||||
const char *message,
|
||||
const ast_type_qualifier &allowed_flags)
|
||||
{
|
||||
ast_type_qualifier bad;
|
||||
bad.flags.i = this->flags.i & ~allowed_flags.flags.i;
|
||||
if (bad.flags.i == 0)
|
||||
return true;
|
||||
|
||||
_mesa_glsl_error(loc, state,
|
||||
"%s:"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
|
||||
"%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
|
||||
message,
|
||||
bad.flags.q.invariant ? " invariant" : "",
|
||||
bad.flags.q.precise ? " precise" : "",
|
||||
bad.flags.q.constant ? " constant" : "",
|
||||
bad.flags.q.attribute ? " attribute" : "",
|
||||
bad.flags.q.varying ? " varying" : "",
|
||||
bad.flags.q.in ? " in" : "",
|
||||
bad.flags.q.out ? " out" : "",
|
||||
bad.flags.q.centroid ? " centroid" : "",
|
||||
bad.flags.q.sample ? " sample" : "",
|
||||
bad.flags.q.patch ? " patch" : "",
|
||||
bad.flags.q.uniform ? " uniform" : "",
|
||||
bad.flags.q.buffer ? " buffer" : "",
|
||||
bad.flags.q.shared_storage ? " shared_storage" : "",
|
||||
bad.flags.q.smooth ? " smooth" : "",
|
||||
bad.flags.q.flat ? " flat" : "",
|
||||
bad.flags.q.noperspective ? " noperspective" : "",
|
||||
bad.flags.q.origin_upper_left ? " origin_upper_left" : "",
|
||||
bad.flags.q.pixel_center_integer ? " pixel_center_integer" : "",
|
||||
bad.flags.q.explicit_align ? " align" : "",
|
||||
bad.flags.q.explicit_location ? " location" : "",
|
||||
bad.flags.q.explicit_index ? " index" : "",
|
||||
bad.flags.q.explicit_binding ? " binding" : "",
|
||||
bad.flags.q.explicit_offset ? " offset" : "",
|
||||
bad.flags.q.depth_any ? " depth_any" : "",
|
||||
bad.flags.q.depth_greater ? " depth_greater" : "",
|
||||
bad.flags.q.depth_less ? " depth_less" : "",
|
||||
bad.flags.q.depth_unchanged ? " depth_unchanged" : "",
|
||||
bad.flags.q.std140 ? " std140" : "",
|
||||
bad.flags.q.std430 ? " std430" : "",
|
||||
bad.flags.q.shared ? " shared" : "",
|
||||
bad.flags.q.packed ? " packed" : "",
|
||||
bad.flags.q.column_major ? " column_major" : "",
|
||||
bad.flags.q.row_major ? " row_major" : "",
|
||||
bad.flags.q.prim_type ? " prim_type" : "",
|
||||
bad.flags.q.max_vertices ? " max_vertices" : "",
|
||||
bad.flags.q.local_size ? " local_size" : "",
|
||||
bad.flags.q.early_fragment_tests ? " early_fragment_tests" : "",
|
||||
bad.flags.q.explicit_image_format ? " image_format" : "",
|
||||
bad.flags.q.coherent ? " coherent" : "",
|
||||
bad.flags.q._volatile ? " _volatile" : "",
|
||||
bad.flags.q.restrict_flag ? " restrict_flag" : "",
|
||||
bad.flags.q.read_only ? " read_only" : "",
|
||||
bad.flags.q.write_only ? " write_only" : "",
|
||||
bad.flags.q.invocations ? " invocations" : "",
|
||||
bad.flags.q.stream ? " stream" : "",
|
||||
bad.flags.q.explicit_stream ? " stream" : "",
|
||||
bad.flags.q.explicit_xfb_offset ? " xfb_offset" : "",
|
||||
bad.flags.q.xfb_buffer ? " xfb_buffer" : "",
|
||||
bad.flags.q.explicit_xfb_buffer ? " xfb_buffer" : "",
|
||||
bad.flags.q.xfb_stride ? " xfb_stride" : "",
|
||||
bad.flags.q.explicit_xfb_stride ? " xfb_stride" : "",
|
||||
bad.flags.q.vertex_spacing ? " vertex_spacing" : "",
|
||||
bad.flags.q.ordering ? " ordering" : "",
|
||||
bad.flags.q.point_mode ? " point_mode" : "",
|
||||
bad.flags.q.vertices ? " vertices" : "",
|
||||
bad.flags.q.subroutine ? " subroutine" : "",
|
||||
bad.flags.q.subroutine_def ? " subroutine_def" : "");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
ast_layout_expression::process_qualifier_constant(struct _mesa_glsl_parse_state *state,
|
||||
const char *qual_indentifier,
|
||||
unsigned *value,
|
||||
bool can_be_zero,
|
||||
bool must_match)
|
||||
bool can_be_zero)
|
||||
{
|
||||
int min_value = 0;
|
||||
bool first_pass = true;
|
||||
@@ -712,19 +511,12 @@ ast_layout_expression::process_qualifier_constant(struct _mesa_glsl_parse_state
|
||||
return false;
|
||||
}
|
||||
|
||||
/* From section 4.4 "Layout Qualifiers" of the GLSL 4.50 spec:
|
||||
* "When the same layout-qualifier-name occurs multiple times,
|
||||
* in a single declaration, the last occurrence overrides the
|
||||
* former occurrence(s)."
|
||||
*/
|
||||
if (!first_pass) {
|
||||
if ((must_match || !state->has_420pack()) && *value != const_int->value.u[0]) {
|
||||
YYLTYPE loc = const_expression->get_location();
|
||||
_mesa_glsl_error(&loc, state, "%s layout qualifier does not "
|
||||
"match previous declaration (%d vs %d)",
|
||||
qual_indentifier, *value, const_int->value.i[0]);
|
||||
return false;
|
||||
}
|
||||
if (!first_pass && *value != const_int->value.u[0]) {
|
||||
YYLTYPE loc = const_expression->get_location();
|
||||
_mesa_glsl_error(&loc, state, "%s layout qualifier does not "
|
||||
"match previous declaration (%d vs %d)",
|
||||
qual_indentifier, *value, const_int->value.i[0]);
|
||||
return false;
|
||||
} else {
|
||||
first_pass = false;
|
||||
*value = const_int->value.u[0];
|
||||
@@ -741,44 +533,3 @@ ast_layout_expression::process_qualifier_constant(struct _mesa_glsl_parse_state
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
process_qualifier_constant(struct _mesa_glsl_parse_state *state,
|
||||
YYLTYPE *loc,
|
||||
const char *qual_indentifier,
|
||||
ast_expression *const_expression,
|
||||
unsigned *value)
|
||||
{
|
||||
exec_list dummy_instructions;
|
||||
|
||||
if (const_expression == NULL) {
|
||||
*value = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
ir_rvalue *const ir = const_expression->hir(&dummy_instructions, state);
|
||||
|
||||
ir_constant *const const_int = ir->constant_expression_value();
|
||||
if (const_int == NULL || !const_int->type->is_integer()) {
|
||||
_mesa_glsl_error(loc, state, "%s must be an integral constant "
|
||||
"expression", qual_indentifier);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (const_int->value.i[0] < 0) {
|
||||
_mesa_glsl_error(loc, state, "%s layout qualifier is invalid (%d < 0)",
|
||||
qual_indentifier, const_int->value.u[0]);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* If the location is const (and we've verified that
|
||||
* it is) then no instructions should have been emitted
|
||||
* when we converted it to HIR. If they were emitted,
|
||||
* then either the location isn't const after all, or
|
||||
* we are emitting unnecessary instructions.
|
||||
*/
|
||||
assert(dummy_instructions.is_empty());
|
||||
|
||||
*value = const_int->value.u[0];
|
||||
return true;
|
||||
}
|
||||
|
@@ -129,6 +129,12 @@ v130_fs_only(const _mesa_glsl_parse_state *state)
|
||||
state->stage == MESA_SHADER_FRAGMENT;
|
||||
}
|
||||
|
||||
static bool
|
||||
v140(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(140, 0);
|
||||
}
|
||||
|
||||
static bool
|
||||
v140_or_es3(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
@@ -142,6 +148,12 @@ v400_fs_only(const _mesa_glsl_parse_state *state)
|
||||
state->stage == MESA_SHADER_FRAGMENT;
|
||||
}
|
||||
|
||||
static bool
|
||||
es31(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(0, 310);
|
||||
}
|
||||
|
||||
static bool
|
||||
texture_rectangle(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
@@ -177,14 +189,6 @@ v110_lod(const _mesa_glsl_parse_state *state)
|
||||
return !state->es_shader && lod_exists_in_stage(state);
|
||||
}
|
||||
|
||||
static bool
|
||||
texture_buffer(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(140, 320) ||
|
||||
state->EXT_texture_buffer_enable ||
|
||||
state->OES_texture_buffer_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_texture_lod(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
@@ -210,7 +214,6 @@ static bool
|
||||
shader_integer_mix(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(450, 310) ||
|
||||
state->ARB_ES3_1_compatibility_enable ||
|
||||
(v130(state) && state->EXT_shader_integer_mix_enable);
|
||||
}
|
||||
|
||||
@@ -235,21 +238,6 @@ gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
return state->is_version(400, 0) || state->ARB_gpu_shader5_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
gpu_shader5_es(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(400, 320) ||
|
||||
state->ARB_gpu_shader5_enable ||
|
||||
state->EXT_gpu_shader5_enable ||
|
||||
state->OES_gpu_shader5_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
es31_not_gs5(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->is_version(0, 310) && !gpu_shader5_es(state);
|
||||
}
|
||||
|
||||
static bool
|
||||
gpu_shader5_or_es31(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
@@ -265,12 +253,10 @@ shader_packing_or_es31_or_gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
}
|
||||
|
||||
static bool
|
||||
fs_interpolate_at(const _mesa_glsl_parse_state *state)
|
||||
fs_gpu_shader5(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->stage == MESA_SHADER_FRAGMENT &&
|
||||
(state->is_version(400, 320) ||
|
||||
state->ARB_gpu_shader5_enable ||
|
||||
state->OES_shader_multisample_interpolation_enable);
|
||||
(state->is_version(400, 0) || state->ARB_gpu_shader5_enable);
|
||||
}
|
||||
|
||||
|
||||
@@ -374,10 +360,8 @@ texture_gather_or_es31(const _mesa_glsl_parse_state *state)
|
||||
static bool
|
||||
texture_gather_only_or_es31(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return !state->is_version(400, 320) &&
|
||||
return !state->is_version(400, 0) &&
|
||||
!state->ARB_gpu_shader5_enable &&
|
||||
!state->EXT_gpu_shader5_enable &&
|
||||
!state->OES_gpu_shader5_enable &&
|
||||
(state->ARB_texture_gather_enable ||
|
||||
state->is_version(0, 310));
|
||||
}
|
||||
@@ -436,12 +420,6 @@ shader_atomic_counters(const _mesa_glsl_parse_state *state)
|
||||
return state->has_atomic_counters();
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_atomic_counter_ops(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->ARB_shader_atomic_counter_ops_enable;
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_clock(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
@@ -470,17 +448,8 @@ shader_image_load_store(const _mesa_glsl_parse_state *state)
|
||||
static bool
|
||||
shader_image_atomic(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return (state->is_version(420, 320) ||
|
||||
state->ARB_shader_image_load_store_enable ||
|
||||
state->OES_shader_image_atomic_enable);
|
||||
}
|
||||
|
||||
static bool
|
||||
shader_image_atomic_exchange_float(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return (state->is_version(450, 320) ||
|
||||
state->ARB_ES3_1_compatibility_enable ||
|
||||
state->OES_shader_image_atomic_enable);
|
||||
return (state->is_version(420, 0) ||
|
||||
state->ARB_shader_image_load_store_enable);
|
||||
}
|
||||
|
||||
static bool
|
||||
@@ -590,7 +559,7 @@ private:
|
||||
ir_dereference_array *array_ref(ir_variable *var, int i);
|
||||
ir_swizzle *matrix_elt(ir_variable *var, int col, int row);
|
||||
|
||||
ir_expression *asin_expr(ir_variable *x, float p0, float p1);
|
||||
ir_expression *asin_expr(ir_variable *x);
|
||||
void do_atan(ir_factory &body, const glsl_type *type, ir_variable *res, operand y_over_x);
|
||||
|
||||
/**
|
||||
@@ -608,6 +577,17 @@ private:
|
||||
unsigned num_arguments,
|
||||
unsigned flags);
|
||||
|
||||
enum image_function_flags {
|
||||
IMAGE_FUNCTION_EMIT_STUB = (1 << 0),
|
||||
IMAGE_FUNCTION_RETURNS_VOID = (1 << 1),
|
||||
IMAGE_FUNCTION_HAS_VECTOR_DATA_TYPE = (1 << 2),
|
||||
IMAGE_FUNCTION_SUPPORTS_FLOAT_DATA_TYPE = (1 << 3),
|
||||
IMAGE_FUNCTION_READ_ONLY = (1 << 4),
|
||||
IMAGE_FUNCTION_WRITE_ONLY = (1 << 5),
|
||||
IMAGE_FUNCTION_AVAIL_ATOMIC = (1 << 6),
|
||||
IMAGE_FUNCTION_MS_ONLY = (1 << 7),
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a new image built-in function for all known image types.
|
||||
* \p flags is a bitfield of \c image_function_flags flags.
|
||||
@@ -804,14 +784,8 @@ private:
|
||||
B1(interpolateAtSample)
|
||||
|
||||
ir_function_signature *_atomic_counter_intrinsic(builtin_available_predicate avail);
|
||||
ir_function_signature *_atomic_counter_intrinsic1(builtin_available_predicate avail);
|
||||
ir_function_signature *_atomic_counter_intrinsic2(builtin_available_predicate avail);
|
||||
ir_function_signature *_atomic_counter_op(const char *intrinsic,
|
||||
builtin_available_predicate avail);
|
||||
ir_function_signature *_atomic_counter_op1(const char *intrinsic,
|
||||
builtin_available_predicate avail);
|
||||
ir_function_signature *_atomic_counter_op2(const char *intrinsic,
|
||||
builtin_available_predicate avail);
|
||||
|
||||
ir_function_signature *_atomic_intrinsic2(builtin_available_predicate avail,
|
||||
const glsl_type *type);
|
||||
@@ -862,18 +836,6 @@ private:
|
||||
/** @} */
|
||||
};
|
||||
|
||||
enum image_function_flags {
|
||||
IMAGE_FUNCTION_EMIT_STUB = (1 << 0),
|
||||
IMAGE_FUNCTION_RETURNS_VOID = (1 << 1),
|
||||
IMAGE_FUNCTION_HAS_VECTOR_DATA_TYPE = (1 << 2),
|
||||
IMAGE_FUNCTION_SUPPORTS_FLOAT_DATA_TYPE = (1 << 3),
|
||||
IMAGE_FUNCTION_READ_ONLY = (1 << 4),
|
||||
IMAGE_FUNCTION_WRITE_ONLY = (1 << 5),
|
||||
IMAGE_FUNCTION_AVAIL_ATOMIC = (1 << 6),
|
||||
IMAGE_FUNCTION_MS_ONLY = (1 << 7),
|
||||
IMAGE_FUNCTION_AVAIL_ATOMIC_EXCHANGE = (1 << 8)
|
||||
};
|
||||
|
||||
} /* anonymous namespace */
|
||||
|
||||
/**
|
||||
@@ -986,59 +948,48 @@ builtin_builder::create_intrinsics()
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_sub",
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_min",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_max",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_and",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_or",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_xor",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_exchange",
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic2(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic1(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("__intrinsic_atomic_comp_swap",
|
||||
_atomic_intrinsic3(buffer_atomics_supported,
|
||||
glsl_type::uint_type),
|
||||
_atomic_intrinsic3(buffer_atomics_supported,
|
||||
glsl_type::int_type),
|
||||
_atomic_counter_intrinsic2(shader_atomic_counter_ops),
|
||||
NULL);
|
||||
|
||||
add_image_functions(false);
|
||||
@@ -1110,10 +1061,10 @@ builtin_builder::create_builtins()
|
||||
|
||||
#define FDGS5(NAME) \
|
||||
add_function(#NAME, \
|
||||
_##NAME(gpu_shader5_es, glsl_type::float_type), \
|
||||
_##NAME(gpu_shader5_es, glsl_type::vec2_type), \
|
||||
_##NAME(gpu_shader5_es, glsl_type::vec3_type), \
|
||||
_##NAME(gpu_shader5_es, glsl_type::vec4_type), \
|
||||
_##NAME(gpu_shader5, glsl_type::float_type), \
|
||||
_##NAME(gpu_shader5, glsl_type::vec2_type), \
|
||||
_##NAME(gpu_shader5, glsl_type::vec3_type), \
|
||||
_##NAME(gpu_shader5, glsl_type::vec4_type), \
|
||||
_##NAME(fp64, glsl_type::double_type), \
|
||||
_##NAME(fp64, glsl_type::dvec2_type), \
|
||||
_##NAME(fp64, glsl_type::dvec3_type), \
|
||||
@@ -1587,9 +1538,9 @@ builtin_builder::create_builtins()
|
||||
_textureSize(v130, glsl_type::ivec2_type, glsl_type::usampler2DRect_type),
|
||||
_textureSize(v130, glsl_type::ivec2_type, glsl_type::sampler2DRectShadow_type),
|
||||
|
||||
_textureSize(texture_buffer, glsl_type::int_type, glsl_type::samplerBuffer_type),
|
||||
_textureSize(texture_buffer, glsl_type::int_type, glsl_type::isamplerBuffer_type),
|
||||
_textureSize(texture_buffer, glsl_type::int_type, glsl_type::usamplerBuffer_type),
|
||||
_textureSize(v140, glsl_type::int_type, glsl_type::samplerBuffer_type),
|
||||
_textureSize(v140, glsl_type::int_type, glsl_type::isamplerBuffer_type),
|
||||
_textureSize(v140, glsl_type::int_type, glsl_type::usamplerBuffer_type),
|
||||
_textureSize(texture_multisample, glsl_type::ivec2_type, glsl_type::sampler2DMS_type),
|
||||
_textureSize(texture_multisample, glsl_type::ivec2_type, glsl_type::isampler2DMS_type),
|
||||
_textureSize(texture_multisample, glsl_type::ivec2_type, glsl_type::usampler2DMS_type),
|
||||
@@ -1756,13 +1707,6 @@ builtin_builder::create_builtins()
|
||||
_texture(ir_tex, v130, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
|
||||
_texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler1DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
/* The next one was forgotten in GLSL 1.30 spec. It's from
|
||||
* EXT_gpu_shader4 originally. It was added in 4.30 with the
|
||||
* wrong syntax. This was corrected in 4.40. 4.30 indicates
|
||||
* that it was intended to be included previously, so allow it
|
||||
* in 1.30.
|
||||
*/
|
||||
_texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec4_type, TEX_OFFSET),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::float_type, TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::float_type, TEX_OFFSET),
|
||||
@@ -1821,26 +1765,26 @@ builtin_builder::create_builtins()
|
||||
|
||||
_texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler2DRectShadow_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec2_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec3_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler3D_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::float_type, glsl_type::sampler1DShadow_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::float_type, glsl_type::sampler2DShadow_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::float_type, glsl_type::sampler1DShadow_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
_texture(ir_txb, v130, glsl_type::float_type, glsl_type::sampler2DShadow_type, glsl_type::vec4_type, TEX_PROJECT),
|
||||
NULL);
|
||||
|
||||
add_function("texelFetch",
|
||||
@@ -1868,9 +1812,9 @@ builtin_builder::create_builtins()
|
||||
_texelFetch(v130, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::ivec3_type),
|
||||
_texelFetch(v130, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::ivec3_type),
|
||||
|
||||
_texelFetch(texture_buffer, glsl_type::vec4_type, glsl_type::samplerBuffer_type, glsl_type::int_type),
|
||||
_texelFetch(texture_buffer, glsl_type::ivec4_type, glsl_type::isamplerBuffer_type, glsl_type::int_type),
|
||||
_texelFetch(texture_buffer, glsl_type::uvec4_type, glsl_type::usamplerBuffer_type, glsl_type::int_type),
|
||||
_texelFetch(v140, glsl_type::vec4_type, glsl_type::samplerBuffer_type, glsl_type::int_type),
|
||||
_texelFetch(v140, glsl_type::ivec4_type, glsl_type::isamplerBuffer_type, glsl_type::int_type),
|
||||
_texelFetch(v140, glsl_type::uvec4_type, glsl_type::usamplerBuffer_type, glsl_type::int_type),
|
||||
|
||||
_texelFetch(texture_multisample, glsl_type::vec4_type, glsl_type::sampler2DMS_type, glsl_type::ivec2_type),
|
||||
_texelFetch(texture_multisample, glsl_type::ivec4_type, glsl_type::isampler2DMS_type, glsl_type::ivec2_type),
|
||||
@@ -1939,26 +1883,26 @@ builtin_builder::create_builtins()
|
||||
|
||||
_texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler2DRectShadow_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec2_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler1D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec3_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::uvec4_type, glsl_type::usampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::vec4_type, glsl_type::sampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::ivec4_type, glsl_type::isampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::uvec4_type, glsl_type::usampler3D_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::float_type, glsl_type::sampler1DShadow_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130_fs_only, glsl_type::float_type, glsl_type::sampler2DShadow_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::float_type, glsl_type::sampler1DShadow_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
_texture(ir_txb, v130, glsl_type::float_type, glsl_type::sampler2DShadow_type, glsl_type::vec4_type, TEX_PROJECT | TEX_OFFSET),
|
||||
NULL);
|
||||
|
||||
add_function("textureLodOffset",
|
||||
@@ -2581,62 +2525,62 @@ builtin_builder::create_builtins()
|
||||
_texture(ir_tg4, texture_gather_only_or_es31, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
_texture(ir_tg4, texture_gather_only_or_es31, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
_texture(ir_tg4, es31, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET_NONCONST),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DRectShadow_type, glsl_type::vec2_type, TEX_OFFSET_NONCONST),
|
||||
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET),
|
||||
_texture(ir_tg4, es31_not_gs5, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
_texture(ir_tg4, es31, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET),
|
||||
_texture(ir_tg4, es31, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET),
|
||||
NULL);
|
||||
|
||||
add_function("textureGatherOffsets",
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
@@ -2646,8 +2590,8 @@ builtin_builder::create_builtins()
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, glsl_type::isampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, glsl_type::usampler2DRect_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY | TEX_COMPONENT),
|
||||
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5_es, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DShadow_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET_ARRAY),
|
||||
_texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, glsl_type::sampler2DRectShadow_type, glsl_type::vec2_type, TEX_OFFSET_ARRAY),
|
||||
NULL);
|
||||
|
||||
@@ -2750,43 +2694,6 @@ builtin_builder::create_builtins()
|
||||
shader_atomic_counters),
|
||||
NULL);
|
||||
|
||||
add_function("atomicCounterAddARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_add",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterSubtractARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_sub",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterMinARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_min",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterMaxARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_max",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterAndARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_and",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterOrARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_or",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterXorARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_xor",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterExchangeARB",
|
||||
_atomic_counter_op1("__intrinsic_atomic_exchange",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
add_function("atomicCounterCompSwapARB",
|
||||
_atomic_counter_op2("__intrinsic_atomic_comp_swap",
|
||||
shader_atomic_counter_ops),
|
||||
NULL);
|
||||
|
||||
add_function("atomicAdd",
|
||||
_atomic_op2("__intrinsic_atomic_add",
|
||||
buffer_atomics_supported,
|
||||
@@ -3074,9 +2981,7 @@ builtin_builder::add_image_functions(bool glsl)
|
||||
add_image_function((glsl ? "imageAtomicExchange" :
|
||||
"__intrinsic_image_atomic_exchange"),
|
||||
"__intrinsic_image_atomic_exchange",
|
||||
&builtin_builder::_image_prototype, 1,
|
||||
(flags | IMAGE_FUNCTION_AVAIL_ATOMIC_EXCHANGE |
|
||||
IMAGE_FUNCTION_SUPPORTS_FLOAT_DATA_TYPE));
|
||||
&builtin_builder::_image_prototype, 1, atom_flags);
|
||||
|
||||
add_image_function((glsl ? "imageAtomicCompSwap" :
|
||||
"__intrinsic_image_atomic_comp_swap"),
|
||||
@@ -3285,7 +3190,7 @@ builtin_builder::_tan(const glsl_type *type)
|
||||
}
|
||||
|
||||
ir_expression *
|
||||
builtin_builder::asin_expr(ir_variable *x, float p0, float p1)
|
||||
builtin_builder::asin_expr(ir_variable *x)
|
||||
{
|
||||
return mul(sign(x),
|
||||
sub(imm(M_PI_2f),
|
||||
@@ -3294,8 +3199,8 @@ builtin_builder::asin_expr(ir_variable *x, float p0, float p1)
|
||||
mul(abs(x),
|
||||
add(imm(M_PI_4f - 1.0f),
|
||||
mul(abs(x),
|
||||
add(imm(p0),
|
||||
mul(abs(x), imm(p1))))))))));
|
||||
add(imm(0.086566724f),
|
||||
mul(abs(x), imm(-0.03102955f))))))))));
|
||||
}
|
||||
|
||||
ir_call *
|
||||
@@ -3324,7 +3229,7 @@ builtin_builder::_asin(const glsl_type *type)
|
||||
ir_variable *x = in_var(type, "x");
|
||||
MAKE_SIG(type, always_available, 1, x);
|
||||
|
||||
body.emit(ret(asin_expr(x, 0.086566724f, -0.03102955f)));
|
||||
body.emit(ret(asin_expr(x)));
|
||||
|
||||
return sig;
|
||||
}
|
||||
@@ -3335,7 +3240,7 @@ builtin_builder::_acos(const glsl_type *type)
|
||||
ir_variable *x = in_var(type, "x");
|
||||
MAKE_SIG(type, always_available, 1, x);
|
||||
|
||||
body.emit(ret(sub(imm(M_PI_2f), asin_expr(x, 0.08132463f, -0.02363318f))));
|
||||
body.emit(ret(sub(imm(M_PI_2f), asin_expr(x))));
|
||||
|
||||
return sig;
|
||||
}
|
||||
@@ -5176,7 +5081,7 @@ builtin_builder::_interpolateAtCentroid(const glsl_type *type)
|
||||
{
|
||||
ir_variable *interpolant = in_var(type, "interpolant");
|
||||
interpolant->data.must_be_shader_input = 1;
|
||||
MAKE_SIG(type, fs_interpolate_at, 1, interpolant);
|
||||
MAKE_SIG(type, fs_gpu_shader5, 1, interpolant);
|
||||
|
||||
body.emit(ret(interpolate_at_centroid(interpolant)));
|
||||
|
||||
@@ -5189,7 +5094,7 @@ builtin_builder::_interpolateAtOffset(const glsl_type *type)
|
||||
ir_variable *interpolant = in_var(type, "interpolant");
|
||||
interpolant->data.must_be_shader_input = 1;
|
||||
ir_variable *offset = in_var(glsl_type::vec2_type, "offset");
|
||||
MAKE_SIG(type, fs_interpolate_at, 2, interpolant, offset);
|
||||
MAKE_SIG(type, fs_gpu_shader5, 2, interpolant, offset);
|
||||
|
||||
body.emit(ret(interpolate_at_offset(interpolant, offset)));
|
||||
|
||||
@@ -5202,7 +5107,7 @@ builtin_builder::_interpolateAtSample(const glsl_type *type)
|
||||
ir_variable *interpolant = in_var(type, "interpolant");
|
||||
interpolant->data.must_be_shader_input = 1;
|
||||
ir_variable *sample_num = in_var(glsl_type::int_type, "sample_num");
|
||||
MAKE_SIG(type, fs_interpolate_at, 2, interpolant, sample_num);
|
||||
MAKE_SIG(type, fs_gpu_shader5, 2, interpolant, sample_num);
|
||||
|
||||
body.emit(ret(interpolate_at_sample(interpolant, sample_num)));
|
||||
|
||||
@@ -5217,25 +5122,6 @@ builtin_builder::_atomic_counter_intrinsic(builtin_available_predicate avail)
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_counter_intrinsic1(builtin_available_predicate avail)
|
||||
{
|
||||
ir_variable *counter = in_var(glsl_type::atomic_uint_type, "counter");
|
||||
ir_variable *data = in_var(glsl_type::uint_type, "data");
|
||||
MAKE_INTRINSIC(glsl_type::uint_type, avail, 2, counter, data);
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_counter_intrinsic2(builtin_available_predicate avail)
|
||||
{
|
||||
ir_variable *counter = in_var(glsl_type::atomic_uint_type, "counter");
|
||||
ir_variable *compare = in_var(glsl_type::uint_type, "compare");
|
||||
ir_variable *data = in_var(glsl_type::uint_type, "data");
|
||||
MAKE_INTRINSIC(glsl_type::uint_type, avail, 3, counter, compare, data);
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_intrinsic2(builtin_available_predicate avail,
|
||||
const glsl_type *type)
|
||||
@@ -5271,37 +5157,6 @@ builtin_builder::_atomic_counter_op(const char *intrinsic,
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_counter_op1(const char *intrinsic,
|
||||
builtin_available_predicate avail)
|
||||
{
|
||||
ir_variable *counter = in_var(glsl_type::atomic_uint_type, "atomic_counter");
|
||||
ir_variable *data = in_var(glsl_type::uint_type, "data");
|
||||
MAKE_SIG(glsl_type::uint_type, avail, 2, counter, data);
|
||||
|
||||
ir_variable *retval = body.make_temp(glsl_type::uint_type, "atomic_retval");
|
||||
body.emit(call(shader->symbols->get_function(intrinsic), retval,
|
||||
sig->parameters));
|
||||
body.emit(ret(retval));
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_counter_op2(const char *intrinsic,
|
||||
builtin_available_predicate avail)
|
||||
{
|
||||
ir_variable *counter = in_var(glsl_type::atomic_uint_type, "atomic_counter");
|
||||
ir_variable *compare = in_var(glsl_type::uint_type, "compare");
|
||||
ir_variable *data = in_var(glsl_type::uint_type, "data");
|
||||
MAKE_SIG(glsl_type::uint_type, avail, 3, counter, compare, data);
|
||||
|
||||
ir_variable *retval = body.make_temp(glsl_type::uint_type, "atomic_retval");
|
||||
body.emit(call(shader->symbols->get_function(intrinsic), retval,
|
||||
sig->parameters));
|
||||
body.emit(ret(retval));
|
||||
return sig;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_atomic_op2(const char *intrinsic,
|
||||
builtin_available_predicate avail,
|
||||
@@ -5377,21 +5232,6 @@ builtin_builder::_mid3(const glsl_type *type)
|
||||
return sig;
|
||||
}
|
||||
|
||||
static builtin_available_predicate
|
||||
get_image_available_predicate(const glsl_type *type, unsigned flags)
|
||||
{
|
||||
if ((flags & IMAGE_FUNCTION_AVAIL_ATOMIC_EXCHANGE) &&
|
||||
type->sampled_type == GLSL_TYPE_FLOAT)
|
||||
return shader_image_atomic_exchange_float;
|
||||
|
||||
else if (flags & (IMAGE_FUNCTION_AVAIL_ATOMIC_EXCHANGE |
|
||||
IMAGE_FUNCTION_AVAIL_ATOMIC))
|
||||
return shader_image_atomic;
|
||||
|
||||
else
|
||||
return shader_image_load_store;
|
||||
}
|
||||
|
||||
ir_function_signature *
|
||||
builtin_builder::_image_prototype(const glsl_type *image_type,
|
||||
unsigned num_arguments,
|
||||
@@ -5409,9 +5249,10 @@ builtin_builder::_image_prototype(const glsl_type *image_type,
|
||||
ir_variable *coord = in_var(
|
||||
glsl_type::ivec(image_type->coordinate_components()), "coord");
|
||||
|
||||
ir_function_signature *sig = new_sig(
|
||||
ret_type, get_image_available_predicate(image_type, flags),
|
||||
2, image, coord);
|
||||
const builtin_available_predicate avail =
|
||||
(flags & IMAGE_FUNCTION_AVAIL_ATOMIC ? shader_image_atomic :
|
||||
shader_image_load_store);
|
||||
ir_function_signature *sig = new_sig(ret_type, avail, 2, image, coord);
|
||||
|
||||
/* Sample index for multisample images. */
|
||||
if (image_type->sampler_dimensionality == GLSL_SAMPLER_DIM_MS)
|
||||
|
@@ -179,9 +179,9 @@ static const struct builtin_type_versions {
|
||||
T(sampler2DArray, 130, 300)
|
||||
T(samplerCubeArray, 400, 999)
|
||||
T(sampler2DRect, 140, 999)
|
||||
T(samplerBuffer, 140, 320)
|
||||
T(samplerBuffer, 140, 999)
|
||||
T(sampler2DMS, 150, 310)
|
||||
T(sampler2DMSArray, 150, 320)
|
||||
T(sampler2DMSArray, 150, 999)
|
||||
|
||||
T(isampler1D, 130, 999)
|
||||
T(isampler2D, 130, 300)
|
||||
@@ -191,9 +191,9 @@ static const struct builtin_type_versions {
|
||||
T(isampler2DArray, 130, 300)
|
||||
T(isamplerCubeArray, 400, 999)
|
||||
T(isampler2DRect, 140, 999)
|
||||
T(isamplerBuffer, 140, 320)
|
||||
T(isamplerBuffer, 140, 999)
|
||||
T(isampler2DMS, 150, 310)
|
||||
T(isampler2DMSArray, 150, 320)
|
||||
T(isampler2DMSArray, 150, 999)
|
||||
|
||||
T(usampler1D, 130, 999)
|
||||
T(usampler2D, 130, 300)
|
||||
@@ -203,9 +203,9 @@ static const struct builtin_type_versions {
|
||||
T(usampler2DArray, 130, 300)
|
||||
T(usamplerCubeArray, 400, 999)
|
||||
T(usampler2DRect, 140, 999)
|
||||
T(usamplerBuffer, 140, 320)
|
||||
T(usamplerBuffer, 140, 999)
|
||||
T(usampler2DMS, 150, 310)
|
||||
T(usampler2DMSArray, 150, 320)
|
||||
T(usampler2DMSArray, 150, 999)
|
||||
|
||||
T(sampler1DShadow, 110, 999)
|
||||
T(sampler2DShadow, 110, 300)
|
||||
@@ -222,7 +222,7 @@ static const struct builtin_type_versions {
|
||||
T(image3D, 420, 310)
|
||||
T(image2DRect, 420, 999)
|
||||
T(imageCube, 420, 310)
|
||||
T(imageBuffer, 420, 320)
|
||||
T(imageBuffer, 420, 999)
|
||||
T(image1DArray, 420, 999)
|
||||
T(image2DArray, 420, 310)
|
||||
T(imageCubeArray, 420, 999)
|
||||
@@ -233,7 +233,7 @@ static const struct builtin_type_versions {
|
||||
T(iimage3D, 420, 310)
|
||||
T(iimage2DRect, 420, 999)
|
||||
T(iimageCube, 420, 310)
|
||||
T(iimageBuffer, 420, 320)
|
||||
T(iimageBuffer, 420, 999)
|
||||
T(iimage1DArray, 420, 999)
|
||||
T(iimage2DArray, 420, 310)
|
||||
T(iimageCubeArray, 420, 999)
|
||||
@@ -244,7 +244,7 @@ static const struct builtin_type_versions {
|
||||
T(uimage3D, 420, 310)
|
||||
T(uimage2DRect, 420, 999)
|
||||
T(uimageCube, 420, 310)
|
||||
T(uimageBuffer, 420, 320)
|
||||
T(uimageBuffer, 420, 999)
|
||||
T(uimage1DArray, 420, 999)
|
||||
T(uimage2DArray, 420, 310)
|
||||
T(uimageCubeArray, 420, 999)
|
||||
@@ -305,13 +305,11 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
|
||||
add_type(symbols, glsl_type::usamplerCubeArray_type);
|
||||
}
|
||||
|
||||
if (state->ARB_texture_multisample_enable) {
|
||||
if (state->ARB_texture_multisample_enable ||
|
||||
state->OES_texture_storage_multisample_2d_array_enable) {
|
||||
add_type(symbols, glsl_type::sampler2DMS_type);
|
||||
add_type(symbols, glsl_type::isampler2DMS_type);
|
||||
add_type(symbols, glsl_type::usampler2DMS_type);
|
||||
}
|
||||
if (state->ARB_texture_multisample_enable ||
|
||||
state->OES_texture_storage_multisample_2d_array_enable) {
|
||||
add_type(symbols, glsl_type::sampler2DMSArray_type);
|
||||
add_type(symbols, glsl_type::isampler2DMSArray_type);
|
||||
add_type(symbols, glsl_type::usampler2DMSArray_type);
|
||||
@@ -373,16 +371,6 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
|
||||
add_type(symbols, glsl_type::uimage2DMSArray_type);
|
||||
}
|
||||
|
||||
if (state->EXT_texture_buffer_enable || state->OES_texture_buffer_enable) {
|
||||
add_type(symbols, glsl_type::samplerBuffer_type);
|
||||
add_type(symbols, glsl_type::isamplerBuffer_type);
|
||||
add_type(symbols, glsl_type::usamplerBuffer_type);
|
||||
|
||||
add_type(symbols, glsl_type::imageBuffer_type);
|
||||
add_type(symbols, glsl_type::iimageBuffer_type);
|
||||
add_type(symbols, glsl_type::uimageBuffer_type);
|
||||
}
|
||||
|
||||
if (state->has_atomic_counters()) {
|
||||
add_type(symbols, glsl_type::atomic_uint_type);
|
||||
}
|
||||
|
@@ -37,11 +37,6 @@ static const struct gl_builtin_uniform_element gl_NumSamples_elements[] = {
|
||||
{NULL, {STATE_NUM_SAMPLES, 0, 0}, SWIZZLE_XXXX}
|
||||
};
|
||||
|
||||
/* only for TCS */
|
||||
static const struct gl_builtin_uniform_element gl_PatchVerticesIn_elements[] = {
|
||||
{NULL, {STATE_INTERNAL, STATE_TCS_PATCH_VERTICES_IN}, SWIZZLE_XXXX}
|
||||
};
|
||||
|
||||
static const struct gl_builtin_uniform_element gl_DepthRange_elements[] = {
|
||||
{"near", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_XXXX},
|
||||
{"far", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_YYYY},
|
||||
@@ -239,7 +234,6 @@ static const struct gl_builtin_uniform_element gl_NormalMatrix_elements[] = {
|
||||
#define STATEVAR(name) {#name, name ## _elements, ARRAY_SIZE(name ## _elements)}
|
||||
|
||||
static const struct gl_builtin_uniform_desc _mesa_builtin_uniform_desc[] = {
|
||||
STATEVAR(gl_PatchVerticesIn),
|
||||
STATEVAR(gl_NumSamples),
|
||||
STATEVAR(gl_DepthRange),
|
||||
STATEVAR(gl_ClipPlane),
|
||||
@@ -308,7 +302,7 @@ public:
|
||||
const glsl_type *construct_interface_instance() const;
|
||||
|
||||
private:
|
||||
glsl_struct_field fields[11];
|
||||
glsl_struct_field fields[10];
|
||||
unsigned num_fields;
|
||||
};
|
||||
|
||||
@@ -329,7 +323,6 @@ per_vertex_accumulator::add_field(int slot, const glsl_type *type,
|
||||
this->fields[this->num_fields].name = name;
|
||||
this->fields[this->num_fields].matrix_layout = GLSL_MATRIX_LAYOUT_INHERITED;
|
||||
this->fields[this->num_fields].location = slot;
|
||||
this->fields[this->num_fields].offset = -1;
|
||||
this->fields[this->num_fields].interpolation = INTERP_QUALIFIER_NONE;
|
||||
this->fields[this->num_fields].centroid = 0;
|
||||
this->fields[this->num_fields].sample = 0;
|
||||
@@ -340,9 +333,6 @@ per_vertex_accumulator::add_field(int slot, const glsl_type *type,
|
||||
this->fields[this->num_fields].image_coherent = 0;
|
||||
this->fields[this->num_fields].image_volatile = 0;
|
||||
this->fields[this->num_fields].image_restrict = 0;
|
||||
this->fields[this->num_fields].explicit_xfb_buffer = 0;
|
||||
this->fields[this->num_fields].xfb_buffer = -1;
|
||||
this->fields[this->num_fields].xfb_stride = -1;
|
||||
this->num_fields++;
|
||||
}
|
||||
|
||||
@@ -533,16 +523,6 @@ builtin_variable_generator::add_variable(const char *name,
|
||||
return var;
|
||||
}
|
||||
|
||||
extern "C" const struct gl_builtin_uniform_desc *
|
||||
_mesa_glsl_get_builtin_uniform_desc(const char *name)
|
||||
{
|
||||
for (unsigned i = 0; _mesa_builtin_uniform_desc[i].name != NULL; i++) {
|
||||
if (strcmp(_mesa_builtin_uniform_desc[i].name, name) == 0) {
|
||||
return &_mesa_builtin_uniform_desc[i];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ir_variable *
|
||||
builtin_variable_generator::add_uniform(const glsl_type *type,
|
||||
@@ -550,9 +530,16 @@ builtin_variable_generator::add_uniform(const glsl_type *type,
|
||||
{
|
||||
ir_variable *const uni = add_variable(name, type, ir_var_uniform, -1);
|
||||
|
||||
unsigned i;
|
||||
for (i = 0; _mesa_builtin_uniform_desc[i].name != NULL; i++) {
|
||||
if (strcmp(_mesa_builtin_uniform_desc[i].name, name) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
assert(_mesa_builtin_uniform_desc[i].name != NULL);
|
||||
const struct gl_builtin_uniform_desc* const statevar =
|
||||
_mesa_glsl_get_builtin_uniform_desc(name);
|
||||
assert(statevar != NULL);
|
||||
&_mesa_builtin_uniform_desc[i];
|
||||
|
||||
const unsigned array_count = type->is_array() ? type->length : 1;
|
||||
|
||||
@@ -628,7 +615,7 @@ builtin_variable_generator::generate_constants()
|
||||
/* Max uniforms/varyings: GLSL ES counts these in units of vectors; desktop
|
||||
* GL counts them in units of "components" or "floats".
|
||||
*/
|
||||
if (state->is_version(410, 100)) {
|
||||
if (state->es_shader) {
|
||||
add_const("gl_MaxVertexUniformVectors",
|
||||
state->Const.MaxVertexUniformComponents / 4);
|
||||
add_const("gl_MaxFragmentUniformVectors",
|
||||
@@ -680,17 +667,10 @@ builtin_variable_generator::generate_constants()
|
||||
state->Const.MaxProgramTexelOffset);
|
||||
}
|
||||
|
||||
if (state->has_clip_distance()) {
|
||||
add_const("gl_MaxClipDistances", state->Const.MaxClipPlanes);
|
||||
}
|
||||
if (state->is_version(130, 0)) {
|
||||
add_const("gl_MaxClipDistances", state->Const.MaxClipPlanes);
|
||||
add_const("gl_MaxVaryingComponents", state->ctx->Const.MaxVarying * 4);
|
||||
}
|
||||
if (state->has_cull_distance()) {
|
||||
add_const("gl_MaxCullDistances", state->Const.MaxClipPlanes);
|
||||
add_const("gl_MaxCombinedClipAndCullDistances",
|
||||
state->Const.MaxClipPlanes);
|
||||
}
|
||||
|
||||
if (state->has_geometry_shader()) {
|
||||
add_const("gl_MaxVertexOutputComponents",
|
||||
@@ -831,13 +811,6 @@ builtin_variable_generator::generate_constants()
|
||||
*/
|
||||
}
|
||||
|
||||
if (state->has_enhanced_layouts()) {
|
||||
add_const("gl_MaxTransformFeedbackBuffers",
|
||||
state->Const.MaxTransformFeedbackBuffers);
|
||||
add_const("gl_MaxTransformFeedbackInterleavedComponents",
|
||||
state->Const.MaxTransformFeedbackInterleavedComponents);
|
||||
}
|
||||
|
||||
if (state->is_version(420, 310) ||
|
||||
state->ARB_shader_image_load_store_enable) {
|
||||
add_const("gl_MaxImageUnits",
|
||||
@@ -861,6 +834,11 @@ builtin_variable_generator::generate_constants()
|
||||
state->Const.MaxImageSamples);
|
||||
}
|
||||
|
||||
if (state->is_version(450, 310)) {
|
||||
add_const("gl_MaxCombinedShaderOutputResources",
|
||||
state->Const.MaxCombinedShaderOutputResources);
|
||||
}
|
||||
|
||||
if (state->is_version(400, 0) ||
|
||||
state->ARB_tessellation_shader_enable) {
|
||||
add_const("gl_MaxTessControlImageUniforms",
|
||||
@@ -870,12 +848,6 @@ builtin_variable_generator::generate_constants()
|
||||
}
|
||||
}
|
||||
|
||||
if (state->is_version(450, 310) ||
|
||||
state->ARB_ES3_1_compatibility_enable) {
|
||||
add_const("gl_MaxCombinedShaderOutputResources",
|
||||
state->Const.MaxCombinedShaderOutputResources);
|
||||
}
|
||||
|
||||
if (state->is_version(410, 0) ||
|
||||
state->ARB_viewport_array_enable)
|
||||
add_const("gl_MaxViewports", state->Const.MaxViewports);
|
||||
@@ -895,11 +867,6 @@ builtin_variable_generator::generate_constants()
|
||||
add_const("gl_MaxTessControlUniformComponents", state->Const.MaxTessControlUniformComponents);
|
||||
add_const("gl_MaxTessEvaluationUniformComponents", state->Const.MaxTessEvaluationUniformComponents);
|
||||
}
|
||||
|
||||
if (state->is_version(450, 320) ||
|
||||
state->OES_sample_variables_enable ||
|
||||
state->ARB_ES3_1_compatibility_enable)
|
||||
add_const("gl_MaxSamples", state->Const.MaxSamples);
|
||||
}
|
||||
|
||||
|
||||
@@ -909,9 +876,7 @@ builtin_variable_generator::generate_constants()
|
||||
void
|
||||
builtin_variable_generator::generate_uniforms()
|
||||
{
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_sample_shading_enable ||
|
||||
state->OES_sample_variables_enable)
|
||||
if (state->is_version(400, 0) || state->ARB_sample_shading_enable)
|
||||
add_uniform(int_t, "gl_NumSamples");
|
||||
add_uniform(type("gl_DepthRangeParameters"), "gl_DepthRange");
|
||||
add_uniform(array(vec4_t, VERT_ATTRIB_MAX), "gl_CurrentAttribVertMESA");
|
||||
@@ -1035,14 +1000,9 @@ void
|
||||
builtin_variable_generator::generate_tcs_special_vars()
|
||||
{
|
||||
add_system_value(SYSTEM_VALUE_PRIMITIVE_ID, int_t, "gl_PrimitiveID");
|
||||
add_system_value(SYSTEM_VALUE_VERTICES_IN, int_t, "gl_PatchVerticesIn");
|
||||
add_system_value(SYSTEM_VALUE_INVOCATION_ID, int_t, "gl_InvocationID");
|
||||
|
||||
if (state->ctx->Const.LowerTCSPatchVerticesIn) {
|
||||
add_uniform(int_t, "gl_PatchVerticesIn");
|
||||
} else {
|
||||
add_system_value(SYSTEM_VALUE_VERTICES_IN, int_t, "gl_PatchVerticesIn");
|
||||
}
|
||||
|
||||
add_output(VARYING_SLOT_TESS_LEVEL_OUTER, array(float_t, 4),
|
||||
"gl_TessLevelOuter")->data.patch = 1;
|
||||
add_output(VARYING_SLOT_TESS_LEVEL_INNER, array(float_t, 2),
|
||||
@@ -1169,9 +1129,7 @@ builtin_variable_generator::generate_fs_special_vars()
|
||||
var->enable_extension_warning("GL_AMD_shader_stencil_export");
|
||||
}
|
||||
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_sample_shading_enable ||
|
||||
state->OES_sample_variables_enable) {
|
||||
if (state->is_version(400, 0) || state->ARB_sample_shading_enable) {
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_ID, int_t, "gl_SampleID");
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_POS, vec2_t, "gl_SamplePosition");
|
||||
/* From the ARB_sample_shading specification:
|
||||
@@ -1184,9 +1142,7 @@ builtin_variable_generator::generate_fs_special_vars()
|
||||
add_output(FRAG_RESULT_SAMPLE_MASK, array(int_t, 1), "gl_SampleMask");
|
||||
}
|
||||
|
||||
if (state->is_version(400, 320) ||
|
||||
state->ARB_gpu_shader5_enable ||
|
||||
state->OES_sample_variables_enable) {
|
||||
if (state->is_version(400, 0) || state->ARB_gpu_shader5_enable) {
|
||||
add_system_value(SYSTEM_VALUE_SAMPLE_MASK_IN, array(int_t, 1), "gl_SampleMaskIn");
|
||||
}
|
||||
|
||||
@@ -1197,7 +1153,7 @@ builtin_variable_generator::generate_fs_special_vars()
|
||||
var->data.interpolation = INTERP_QUALIFIER_FLAT;
|
||||
}
|
||||
|
||||
if (state->is_version(450, 310) || state->ARB_ES3_1_compatibility_enable)
|
||||
if (state->is_version(450, 310)/* || state->ARB_ES3_1_compatibility_enable*/)
|
||||
add_system_value(SYSTEM_VALUE_HELPER_INVOCATION, bool_t, "gl_HelperInvocation");
|
||||
}
|
||||
|
||||
@@ -1212,15 +1168,8 @@ builtin_variable_generator::generate_cs_special_vars()
|
||||
"gl_LocalInvocationID");
|
||||
add_system_value(SYSTEM_VALUE_WORK_GROUP_ID, uvec3_t, "gl_WorkGroupID");
|
||||
add_system_value(SYSTEM_VALUE_NUM_WORK_GROUPS, uvec3_t, "gl_NumWorkGroups");
|
||||
if (state->ctx->Const.LowerCsDerivedVariables) {
|
||||
add_variable("gl_GlobalInvocationID", uvec3_t, ir_var_auto, 0);
|
||||
add_variable("gl_LocalInvocationIndex", uint_t, ir_var_auto, 0);
|
||||
} else {
|
||||
add_system_value(SYSTEM_VALUE_GLOBAL_INVOCATION_ID,
|
||||
uvec3_t, "gl_GlobalInvocationID");
|
||||
add_system_value(SYSTEM_VALUE_LOCAL_INVOCATION_INDEX,
|
||||
uint_t, "gl_LocalInvocationIndex");
|
||||
}
|
||||
add_variable("gl_GlobalInvocationID", uvec3_t, ir_var_auto, 0);
|
||||
add_variable("gl_LocalInvocationIndex", uint_t, ir_var_auto, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -1270,14 +1219,10 @@ builtin_variable_generator::generate_varyings()
|
||||
}
|
||||
}
|
||||
|
||||
if (state->has_clip_distance()) {
|
||||
if (state->is_version(130, 0)) {
|
||||
add_varying(VARYING_SLOT_CLIP_DIST0, array(float_t, 0),
|
||||
"gl_ClipDistance");
|
||||
}
|
||||
if (state->has_cull_distance()) {
|
||||
add_varying(VARYING_SLOT_CULL_DIST0, array(float_t, 0),
|
||||
"gl_CullDistance");
|
||||
}
|
||||
|
||||
if (compatibility) {
|
||||
add_varying(VARYING_SLOT_TEX0, array(vec4_t, 0), "gl_TexCoord");
|
||||
@@ -1449,16 +1394,16 @@ initialize_cs_derived_variables(gl_shader *shader,
|
||||
* These are initialized in the main function.
|
||||
*/
|
||||
void
|
||||
_mesa_glsl_initialize_derived_variables(struct gl_context *ctx,
|
||||
gl_shader *shader)
|
||||
_mesa_glsl_initialize_derived_variables(gl_shader *shader)
|
||||
{
|
||||
/* We only need to set CS variables currently. */
|
||||
if (shader->Stage == MESA_SHADER_COMPUTE &&
|
||||
ctx->Const.LowerCsDerivedVariables) {
|
||||
ir_function_signature *const main_sig =
|
||||
_mesa_get_main_function_signature(shader);
|
||||
if (shader->Stage != MESA_SHADER_COMPUTE)
|
||||
return;
|
||||
|
||||
if (main_sig != NULL)
|
||||
initialize_cs_derived_variables(shader, main_sig);
|
||||
}
|
||||
ir_function_signature *const main_sig =
|
||||
_mesa_get_main_function_signature(shader);
|
||||
if (main_sig == NULL)
|
||||
return;
|
||||
|
||||
initialize_cs_derived_variables(shader, main_sig);
|
||||
}
|
||||
|
@@ -120,11 +120,6 @@ void glcpp_set_column (int column_no , yyscan_t yyscanner);
|
||||
static int
|
||||
glcpp_lex_update_state_per_token (glcpp_parser_t *parser, int token)
|
||||
{
|
||||
if (token != NEWLINE && token != SPACE && token != HASH_TOKEN &&
|
||||
!parser->lexing_version_directive) {
|
||||
glcpp_parser_resolve_implicit_version(parser);
|
||||
}
|
||||
|
||||
/* After the first non-space token in a line, we won't
|
||||
* allow any '#' to introduce a directive. */
|
||||
if (token == NEWLINE) {
|
||||
@@ -290,7 +285,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
|
||||
<HASH>version{HSPACE}+ {
|
||||
BEGIN INITIAL;
|
||||
yyextra->space_tokens = 0;
|
||||
yyextra->lexing_version_directive = 1;
|
||||
RETURN_STRING_TOKEN (VERSION_TOKEN);
|
||||
}
|
||||
|
||||
@@ -320,9 +314,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
|
||||
|
||||
<HASH>{NEWLINE} {
|
||||
BEGIN INITIAL;
|
||||
yyextra->space_tokens = 0;
|
||||
yylineno++;
|
||||
yycolumn = 0;
|
||||
RETURN_TOKEN_NEVER_SKIP (NEWLINE);
|
||||
}
|
||||
|
||||
@@ -545,7 +536,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
|
||||
}
|
||||
yyextra->space_tokens = 1;
|
||||
yyextra->lexing_directive = 0;
|
||||
yyextra->lexing_version_directive = 0;
|
||||
yylineno++;
|
||||
yycolumn = 0;
|
||||
RETURN_TOKEN_NEVER_SKIP (NEWLINE);
|
||||
@@ -556,7 +546,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
|
||||
glcpp_error(yylloc, yyextra, "Unterminated comment");
|
||||
BEGIN DONE; /* Don't keep matching this rule forever. */
|
||||
yyextra->lexing_directive = 0;
|
||||
yyextra->lexing_version_directive = 0;
|
||||
if (! parser->last_token_was_newline)
|
||||
RETURN_TOKEN (NEWLINE);
|
||||
}
|
||||
|
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