Compare commits
98 Commits
cros-mesa-
...
mesa_3_4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5c8261f76 | ||
|
|
57db1be417 | ||
|
|
ebeb5da82c | ||
|
|
bd1b6ef5af | ||
|
|
672da3532f | ||
|
|
554cd6ba8c | ||
|
|
585b358204 | ||
|
|
1a87813f14 | ||
|
|
fab2936ea2 | ||
|
|
510d86231d | ||
|
|
183e09ee42 | ||
|
|
feb83f991e | ||
|
|
5c4f8bdfc7 | ||
|
|
16deaa9c49 | ||
|
|
12dbb90d4a | ||
|
|
0bf5284850 | ||
|
|
e3650179c6 | ||
|
|
c089afb55b | ||
|
|
bfaab253d1 | ||
|
|
4c782b7470 | ||
|
|
fceecc5bc1 | ||
|
|
cb5d29cd17 | ||
|
|
807544498a | ||
|
|
17f2610d03 | ||
|
|
00935d9eab | ||
|
|
c8c04359dd | ||
|
|
534bc2e2a9 | ||
|
|
82960fbf69 | ||
|
|
b0c8df81ab | ||
|
|
ceab228540 | ||
|
|
03614d2f33 | ||
|
|
e17c1d2202 | ||
|
|
e27b783426 | ||
|
|
18ef8e7c98 | ||
|
|
b34a9dab57 | ||
|
|
7a13c83663 | ||
|
|
d4e84664a5 | ||
|
|
29f19424ab | ||
|
|
813e8585a6 | ||
|
|
88337d5109 | ||
|
|
77a5bab1a3 | ||
|
|
de63653835 | ||
|
|
2f095b9b09 | ||
|
|
94b61f99c4 | ||
|
|
44b450728d | ||
|
|
bc2b379ad0 | ||
|
|
f35a545d4f | ||
|
|
0248965561 | ||
|
|
29fb6b3525 | ||
|
|
93bff74a02 | ||
|
|
211c30cbc9 | ||
|
|
1ef3d8407b | ||
|
|
b64ede6f45 | ||
|
|
a11f829108 | ||
|
|
5715ee5d5d | ||
|
|
08056a38ee | ||
|
|
2591e8f1db | ||
|
|
b92036499d | ||
|
|
60a0b0d7c6 | ||
|
|
c68f4fb958 | ||
|
|
b9a3c2b3ce | ||
|
|
2cddd4cd79 | ||
|
|
052512e2ec | ||
|
|
dc1e96acdc | ||
|
|
0eb94349b6 | ||
|
|
846101fe60 | ||
|
|
9af68b1222 | ||
|
|
5c4431cc0a | ||
|
|
308b5f2e0d | ||
|
|
013a664712 | ||
|
|
52eee51001 | ||
|
|
5d62414004 | ||
|
|
5917ec0983 | ||
|
|
06e32f455f | ||
|
|
0ead11e448 | ||
|
|
3edbaf7de6 | ||
|
|
e6d349d8e4 | ||
|
|
c25a8f9317 | ||
|
|
9f5ddba23f | ||
|
|
f5de04549e | ||
|
|
fb027ada34 | ||
|
|
e990e8c166 | ||
|
|
394ecbde83 | ||
|
|
7ea41a18a5 | ||
|
|
262112dafa | ||
|
|
e0fd3762ce | ||
|
|
1274afbe0b | ||
|
|
5f9760b572 | ||
|
|
107c1a4d40 | ||
|
|
809c5a7fc7 | ||
|
|
aaab86427a | ||
|
|
5e2c92b8b6 | ||
|
|
84e8b8ea5a | ||
|
|
051690168a | ||
|
|
652f3b41c1 | ||
|
|
c5e6547a95 | ||
|
|
bc8257a729 | ||
|
|
b353233325 |
@@ -1,18 +0,0 @@
|
|||||||
((nil . ((show-trailing-whitespace . t)))
|
|
||||||
(prog-mode
|
|
||||||
(indent-tabs-mode . nil)
|
|
||||||
(tab-width . 8)
|
|
||||||
(c-basic-offset . 3)
|
|
||||||
(c-file-style . "stroustrup")
|
|
||||||
(fill-column . 78)
|
|
||||||
(eval . (progn
|
|
||||||
(c-set-offset 'case-label '0)
|
|
||||||
(c-set-offset 'innamespace '0)
|
|
||||||
(c-set-offset 'inline-open '0)))
|
|
||||||
(whitespace-style face indentation)
|
|
||||||
(whitespace-line-column . 79)
|
|
||||||
(eval ignore-errors
|
|
||||||
(require 'whitespace)
|
|
||||||
(whitespace-mode 1)))
|
|
||||||
(makefile-mode (indent-tabs-mode . t))
|
|
||||||
)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# To use this config on you editor, follow the instructions at:
|
|
||||||
# http://editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
insert_final_newline = true
|
|
||||||
tab_width = 8
|
|
||||||
|
|
||||||
[*.{c,h,cpp,hpp,cc,hh}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 3
|
|
||||||
|
|
||||||
[{Makefile*,*.mk}]
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[{*.py,SCons*}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.pl]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.m4]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.yml]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.patch]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,4 +0,0 @@
|
|||||||
*.dsp -crlf
|
|
||||||
*.dsw -crlf
|
|
||||||
*.sln -crlf
|
|
||||||
*.vcproj -crlf
|
|
||||||
52
.gitignore
vendored
52
.gitignore
vendored
@@ -1,52 +0,0 @@
|
|||||||
*.a
|
|
||||||
*.dll
|
|
||||||
*.exe
|
|
||||||
*.ilk
|
|
||||||
*.la
|
|
||||||
*.lo
|
|
||||||
*.log
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
*.os
|
|
||||||
*.pc
|
|
||||||
*.pdb
|
|
||||||
*.pyc
|
|
||||||
*.pyo
|
|
||||||
*.so
|
|
||||||
*.so.*
|
|
||||||
*.sw[a-z]
|
|
||||||
*.tar
|
|
||||||
*.tar.bz2
|
|
||||||
*.tar.gz
|
|
||||||
*.tar.xz
|
|
||||||
*.trs
|
|
||||||
*.zip
|
|
||||||
*~
|
|
||||||
depend
|
|
||||||
depend.bak
|
|
||||||
bin/ltmain.sh
|
|
||||||
lib
|
|
||||||
lib64
|
|
||||||
configure
|
|
||||||
configure.lineno
|
|
||||||
autom4te.cache
|
|
||||||
aclocal.m4
|
|
||||||
config.log
|
|
||||||
config.status
|
|
||||||
cscope*
|
|
||||||
tags
|
|
||||||
.scon*
|
|
||||||
config.py
|
|
||||||
build
|
|
||||||
libtool
|
|
||||||
manifest.txt
|
|
||||||
.dir-locals.el
|
|
||||||
.deps/
|
|
||||||
.dirstamp
|
|
||||||
.libs/
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
.install-mesa-links
|
|
||||||
.install-gallium-links
|
|
||||||
/src/git_sha1.h
|
|
||||||
TAGS
|
|
||||||
464
.mailmap
464
.mailmap
@@ -1,464 +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 <chadversary@chromium.org> <chad@kiwitree.net>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
|
||||||
|
|
||||||
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>
|
|
||||||
|
|
||||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
|
||||||
|
|
||||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
|
||||||
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
|
||||||
|
|
||||||
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 <maraeo@gmail.com> <marek.olsak@amd.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>
|
|
||||||
112
.travis.yml
112
.travis.yml
@@ -1,112 +0,0 @@
|
|||||||
language: c
|
|
||||||
|
|
||||||
sudo: true
|
|
||||||
dist: trusty
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.ccache
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libdrm-dev
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libxcb-dri2-0-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- llvm-3.5-dev
|
|
||||||
# llvm-config is not in the dev package?
|
|
||||||
- llvm-3.5
|
|
||||||
# LLVM packaging is broken and misses this dep.
|
|
||||||
- libedit-dev
|
|
||||||
- scons
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
|
|
||||||
- XCB_RELEASES=http://xcb.freedesktop.org/dist
|
|
||||||
- XORGMACROS_VERSION=util-macros-1.19.0
|
|
||||||
- GLPROTO_VERSION=glproto-1.4.17
|
|
||||||
- DRI2PROTO_VERSION=dri2proto-2.8
|
|
||||||
- DRI3PROTO_VERSION=dri3proto-1.0
|
|
||||||
- PRESENTPROTO_VERSION=presentproto-1.0
|
|
||||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
|
||||||
- LIBDRM_VERSION=libdrm-2.4.74
|
|
||||||
- XCBPROTO_VERSION=xcb-proto-1.11
|
|
||||||
- LIBXCB_VERSION=libxcb-1.11
|
|
||||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
|
||||||
- PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
|
|
||||||
matrix:
|
|
||||||
- BUILD=make
|
|
||||||
- BUILD=scons
|
|
||||||
|
|
||||||
install:
|
|
||||||
- export PATH="/usr/lib/ccache:$PATH"
|
|
||||||
- pip install --user mako
|
|
||||||
|
|
||||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
|
||||||
# latest version from there.
|
|
||||||
- for line in `grep "^LIBDRM_.*_REQUIRED=" configure.ac`; do
|
|
||||||
old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
|
|
||||||
new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
|
|
||||||
if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
|
|
||||||
export LIBDRM_VERSION="libdrm-$new_ver";
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
|
|
||||||
# Install dependencies where we require specific versions (or where
|
|
||||||
# disallowed by Travis CI's package whitelisting).
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $XORGMACROS_VERSION.tar.bz2
|
|
||||||
- (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $GLPROTO_VERSION.tar.bz2
|
|
||||||
- (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $DRI2PROTO_VERSION.tar.bz2
|
|
||||||
- (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$DRI3PROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $DRI3PROTO_VERSION.tar.bz2
|
|
||||||
- (cd $DRI3PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$PRESENTPROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $PRESENTPROTO_VERSION.tar.bz2
|
|
||||||
- (cd $PRESENTPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $XCBPROTO_VERSION.tar.bz2
|
|
||||||
- (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBXCB_VERSION.tar.bz2
|
|
||||||
- (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
- (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBDRM_VERSION.tar.bz2
|
|
||||||
- (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-etnaviv-experimental-api && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
- (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
script:
|
|
||||||
- if test "x$BUILD" = xmake; then
|
|
||||||
./autogen.sh --enable-debug
|
|
||||||
--with-egl-platforms=x11,drm
|
|
||||||
--with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
|
|
||||||
--with-gallium-drivers=svga,swrast,vc4,virgl,r300,r600,etnaviv,imx
|
|
||||||
--disable-llvm-shared-libs
|
|
||||||
;
|
|
||||||
make && make check;
|
|
||||||
elif test x$BUILD = xscons; then
|
|
||||||
scons;
|
|
||||||
fi
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
# Mesa 3-D graphics library
|
|
||||||
#
|
|
||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
|
|
||||||
# Copyright (C) 2010-2011 LunarG 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.
|
|
||||||
|
|
||||||
ifeq ($(LOCAL_IS_HOST_MODULE),true)
|
|
||||||
LOCAL_CFLAGS += -D_GNU_SOURCE
|
|
||||||
endif
|
|
||||||
|
|
||||||
LOCAL_C_INCLUDES += \
|
|
||||||
$(MESA_TOP)/src \
|
|
||||||
$(MESA_TOP)/include
|
|
||||||
|
|
||||||
MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
|
|
||||||
# define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-Wno-unused-parameter \
|
|
||||||
-Wno-date-time \
|
|
||||||
-Wno-pointer-arith \
|
|
||||||
-Wno-missing-field-initializers \
|
|
||||||
-Wno-initializer-overrides \
|
|
||||||
-Wno-mismatched-tags \
|
|
||||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
|
||||||
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\" \
|
|
||||||
-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
|
|
||||||
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DENABLE_SHADER_CACHE \
|
|
||||||
-D__STDC_LIMIT_MACROS \
|
|
||||||
-DHAVE___BUILTIN_EXPECT \
|
|
||||||
-DHAVE___BUILTIN_FFS \
|
|
||||||
-DHAVE___BUILTIN_FFSLL \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_PACKED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_ALIAS \
|
|
||||||
-DHAVE___BUILTIN_CTZ \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNT \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNTLL \
|
|
||||||
-DHAVE___BUILTIN_CLZ \
|
|
||||||
-DHAVE___BUILTIN_CLZLL \
|
|
||||||
-DHAVE___BUILTIN_UNREACHABLE \
|
|
||||||
-DHAVE_PTHREAD=1 \
|
|
||||||
-DHAVE_DLOPEN \
|
|
||||||
-fvisibility=hidden \
|
|
||||||
-Wno-sign-compare
|
|
||||||
|
|
||||||
# mesa requires at least c99 compiler
|
|
||||||
LOCAL_CONLYFLAGS += \
|
|
||||||
-std=c99
|
|
||||||
|
|
||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DUSE_X86_ASM \
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(MESA_ENABLE_LLVM),true)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DHAVE_LLVM=0x0305 -DMESA_LLVM_VERSION_PATCH=2 \
|
|
||||||
-D__STDC_CONSTANT_MACROS \
|
|
||||||
-D__STDC_FORMAT_MACROS \
|
|
||||||
-D__STDC_LIMIT_MACROS
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
|
|
||||||
# add libdrm if there are hardware drivers
|
|
||||||
ifneq ($(filter-out swrast,$(MESA_GPU_DRIVERS)),)
|
|
||||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
|
|
||||||
LOCAL_SHARED_LIBRARIES += libdrm
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
LOCAL_CPPFLAGS += \
|
|
||||||
$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \
|
|
||||||
-Wno-error=non-virtual-dtor \
|
|
||||||
-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
|
|
||||||
|
|
||||||
ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
|
|
||||||
LOCAL_MODULE_TAGS := optional
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Quiet down the build system and remove any .h files from the sources
|
|
||||||
LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
|
|
||||||
110
Android.mk
110
Android.mk
@@ -1,110 +0,0 @@
|
|||||||
# Mesa 3-D graphics library
|
|
||||||
#
|
|
||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
|
|
||||||
# Copyright (C) 2010-2011 LunarG 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.
|
|
||||||
|
|
||||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
|
||||||
#
|
|
||||||
# classic drivers: i915 i965
|
|
||||||
# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vc4 virgl vmwgfx
|
|
||||||
#
|
|
||||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
|
||||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
|
||||||
|
|
||||||
MESA_TOP := $(call my-dir)
|
|
||||||
|
|
||||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
|
|
||||||
MESA_ANDROID_MINOR_VERSION := $(word 2, $(subst ., , $(PLATFORM_VERSION)))
|
|
||||||
MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSION)
|
|
||||||
ifeq ($(filter 1 2 3 4,$(MESA_ANDROID_MAJOR_VERSION)),)
|
|
||||||
MESA_LOLLIPOP_BUILD := true
|
|
||||||
else
|
|
||||||
define local-generated-sources-dir
|
|
||||||
$(call local-intermediates-dir)
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
|
|
||||||
MESA_DRI_MODULE_REL_PATH := dri
|
|
||||||
MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH)
|
|
||||||
MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH)
|
|
||||||
|
|
||||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
|
||||||
MESA_PYTHON2 := python
|
|
||||||
|
|
||||||
classic_drivers := i915 i965
|
|
||||||
gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx vc4 virgl
|
|
||||||
|
|
||||||
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
|
|
||||||
|
|
||||||
# warn about invalid drivers
|
|
||||||
invalid_drivers := $(filter-out \
|
|
||||||
$(classic_drivers) $(gallium_drivers), $(MESA_GPU_DRIVERS))
|
|
||||||
ifneq ($(invalid_drivers),)
|
|
||||||
$(warning invalid GPU drivers: $(invalid_drivers))
|
|
||||||
# tidy up
|
|
||||||
MESA_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(MESA_GPU_DRIVERS))
|
|
||||||
endif
|
|
||||||
|
|
||||||
# host and target must be the same arch to generate matypes.h
|
|
||||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
|
|
||||||
MESA_ENABLE_ASM := true
|
|
||||||
else
|
|
||||||
MESA_ENABLE_ASM := false
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(filter $(classic_drivers), $(MESA_GPU_DRIVERS)),)
|
|
||||||
MESA_BUILD_CLASSIC := true
|
|
||||||
else
|
|
||||||
MESA_BUILD_CLASSIC := false
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),)
|
|
||||||
MESA_BUILD_GALLIUM := true
|
|
||||||
else
|
|
||||||
MESA_BUILD_GALLIUM := false
|
|
||||||
endif
|
|
||||||
|
|
||||||
MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
|
|
||||||
|
|
||||||
# add subdirectories
|
|
||||||
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
|
|
||||||
|
|
||||||
SUBDIRS := \
|
|
||||||
src/gbm \
|
|
||||||
src/loader \
|
|
||||||
src/mapi \
|
|
||||||
src/compiler \
|
|
||||||
src/mesa \
|
|
||||||
src/util \
|
|
||||||
src/egl \
|
|
||||||
src/amd \
|
|
||||||
src/intel \
|
|
||||||
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)
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(INC_DIRS)
|
|
||||||
|
|
||||||
endif
|
|
||||||
16
CleanSpec.mk
16
CleanSpec.mk
@@ -1,16 +0,0 @@
|
|||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
|
|
||||||
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
|
|
||||||
1387
Make-config
Normal file
1387
Make-config
Normal file
File diff suppressed because it is too large
Load Diff
660
Makefile.X11
Normal file
660
Makefile.X11
Normal file
@@ -0,0 +1,660 @@
|
|||||||
|
# $Id: Makefile.X11,v 1.32.2.5 2000/10/26 19:35:53 brianp Exp $
|
||||||
|
|
||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 3.4
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
# copy of this software and associated documentation files (the "Software"),
|
||||||
|
# to deal in the Software without restriction, including without limitation
|
||||||
|
# the rights to use, copy, modify, merge, publish, distribute, 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
|
||||||
|
# BRIAN PAUL 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Top-level makefile for Mesa
|
||||||
|
# To add a new configuration for your system add it to the list below
|
||||||
|
# then update the Make-config file.
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
@echo "Type one of the following:"
|
||||||
|
@echo " make aix for IBM RS/6000 with AIX"
|
||||||
|
@echo " make aix-sl for IBM RS/6000, make shared libs"
|
||||||
|
@echo " make amiwin for Amiga with SAS/C and AmiWin"
|
||||||
|
@echo " make amix for Amiga 3000 UX SVR4 v2.1 systems"
|
||||||
|
@echo " make beos-r4 for BeOS R4"
|
||||||
|
@echo " make bsdos for BSD/OS from BSDI using GCC"
|
||||||
|
@echo " make bsdos4 for BSD/OS 4.x, dynamic libraries"
|
||||||
|
@echo " make cygnus for Win95/NT using Cygnus-Win32"
|
||||||
|
@echo " make cygnus-linux for Win95/NT using Cygnus-Win32 under Linux"
|
||||||
|
@echo " make dgux for Data General"
|
||||||
|
@echo " make freebsd for FreeBSD systems with GCC"
|
||||||
|
@echo " make freebsd-386 for FreeBSD systems with GCC, w/ Intel assembly"
|
||||||
|
@echo " make gcc for a generic system with GCC"
|
||||||
|
@echo " make hpux9 for HP systems with HPUX 9.x"
|
||||||
|
@echo " make hpux9-sl for HP systems with HPUX 9.x, make shared libs"
|
||||||
|
@echo " make hpux9-gcc for HP systems with HPUX 9.x using GCC"
|
||||||
|
@echo " make hpux9-gcc-sl for HP systems with HPUX 9.x, GCC, make shared libs"
|
||||||
|
@echo " make hpux10 for HP systems with HPUX 10.x"
|
||||||
|
@echo " make hpux10-sl for HP systems with HPUX 10.x, shared libs"
|
||||||
|
@echo " make hpux10-gcc for HP systems with HPUX 10.x w/ GCC"
|
||||||
|
@echo " make hpux10-gcc-sl for HP systems with HPUX 10.x w/ GCC, shared libs"
|
||||||
|
@echo " make irix4 for SGI systems with IRIX 4.x"
|
||||||
|
@echo " make irix5 for SGI systems with IRIX 5.x"
|
||||||
|
@echo " make irix5-gcc for SGI systems with IRIX 5.x using GCC"
|
||||||
|
@echo " make irix5-dso for SGI systems with IRIX 5.x, make DSOs"
|
||||||
|
@echo " make irix6-o32 for SGI systems with IRIX 6.x, make o32-bit libs"
|
||||||
|
@echo " make irix6-o32-dso for SGI systems with IRIX 6.x, make o32-bit DSOs"
|
||||||
|
@echo " make irix6-n32 for SGI systems with IRIX 6.x, make n32-bit libs"
|
||||||
|
@echo " make irix6-n32-dso for SGI systems with IRIX 6.x, make n32-bit DSOs"
|
||||||
|
@echo " make irix6-gcc-n32-sl for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
|
||||||
|
@echo " make irix6-64 for SGI systems with IRIX 6.x, make 64-bit libs"
|
||||||
|
@echo " make irix6-64-dso for SGI systems with IRIX 6.x, make 64-bit DSOs"
|
||||||
|
|
||||||
|
@echo " make linux for Linux systems, make shared .so libs"
|
||||||
|
@echo " make linux-static for Linux systems, make static .a libs"
|
||||||
|
@echo " make linux-x86 for Linux on Intel, make shared .so libs"
|
||||||
|
@echo " make linux-x86-static for Linux on Intel, make static .a libs"
|
||||||
|
@echo " make linux-ggi for Linux systems with libggi"
|
||||||
|
@echo " make linux-386-ggi for Linux systems with libggi w/ Intel assembly"
|
||||||
|
@echo " make linux-glide for Linux w/ 3Dfx Glide driver"
|
||||||
|
@echo " make linux-386-glide for Linux w/ 3Dfx Glide driver, Intel assembly"
|
||||||
|
@echo " make linux-386-opt-glide for Linux with 3Dfx Voodoo1 for GLQuake"
|
||||||
|
@echo " make linux-386-opt-V2-glide for Linux with 3Dfx Voodoo2 for GLQuake"
|
||||||
|
@echo " make linux-x86-glide for Linux w/ all x86 asm for Glide"
|
||||||
|
@echo " make linux-alpha for Linux on Alpha systems"
|
||||||
|
@echo " make linux-alpha-static for Linux on Alpha systems, static libs"
|
||||||
|
@echo " make linux-ppc for Linux on PowerPC systems"
|
||||||
|
@echo " make linux-ppc-static for Linux on PowerPC systems, static libs"
|
||||||
|
@echo " make linux-sparc for Linux on Sparc systems"
|
||||||
|
@echo " make linux-sparc5-elf for Sparc5 systems, make ELF shared libs"
|
||||||
|
@echo " make linux-sparc-ultra for UltraSparc systems, make ELF shared libs"
|
||||||
|
@echo " make lynxos for LynxOS systems with GCC"
|
||||||
|
@echo " make macintosh for Macintosh"
|
||||||
|
@echo " make machten-2.2 for Macs w/ MachTen 2.2 (68k w/ FPU)"
|
||||||
|
@echo " make machten-4.0 for Macs w/ MachTen 4.0.1 or newer with GNU make"
|
||||||
|
@echo " make mklinux for Linux on Power Macintosh"
|
||||||
|
@echo " make netbsd for NetBSD 1.0 systems with GCC"
|
||||||
|
@echo " make next for NeXT systems with NEXTSTEP 3.3"
|
||||||
|
@echo " make openbsd for OpenBSD systems"
|
||||||
|
@echo " make openstep for OpenStep/MacOSX Server systems"
|
||||||
|
@echo " make os2-x11 for OS/2 with XFree86"
|
||||||
|
@echo " make osf1 for DEC Alpha systems with OSF/1"
|
||||||
|
@echo " make osf1-sl for DEC Alpha systems with OSF/1, make shared libs"
|
||||||
|
@echo " make pgi-cygnus for Cygnus with Portland Group, Inc. compiler"
|
||||||
|
@echo " make pgi-mingw32 for mingW32 with Portland Group, Inc. compiler"
|
||||||
|
@echo " make qnx for QNX V4 systems with Watcom compiler"
|
||||||
|
@echo " make sco for SCO Unix systems with ODT"
|
||||||
|
@echo " make sco5 for SCO 5.0.5 OpenServer Unix"
|
||||||
|
@echo " make solaris-x86 for PCs with Solaris"
|
||||||
|
@echo " make solaris-x86-gcc for PCs with Solaris using GCC"
|
||||||
|
@echo " make sunos4 for Suns with SunOS 4.x"
|
||||||
|
@echo " make sunos4-sl for Suns with SunOS 4.x, make shared libs"
|
||||||
|
@echo " make sunos4-gcc for Suns with SunOS 4.x and GCC"
|
||||||
|
@echo " make sunos4-gcc-sl for Suns with SunOS 4.x, GCC, make shared libs"
|
||||||
|
@echo " make sunos5 for Suns with SunOS 5.x"
|
||||||
|
@echo " make sunos5-sl for Suns with SunOS 5.x, make shared libs"
|
||||||
|
@echo " make sunos5-ultra for Sun UltraSPARCs with SunOS 5.x"
|
||||||
|
@echo " make sunos5-ultra-sl for Sun UltraSPARCs with SunOS 5.x, make shared libs"
|
||||||
|
@echo " make sunos5-thread for Suns with SunOS 5.x, using Solaris threads"
|
||||||
|
@echo " make sunos5-pthread for Suns with SunOS 5.[56] using POSIX threads"
|
||||||
|
@echo " make sunos5-gcc-thread for Suns with SunOS 5.x and GCC, using Solaris threads"
|
||||||
|
@echo " make sunos5-gcc-pthread for Suns with SunOS 5.[56] and GCC, using POSIX threads"
|
||||||
|
@echo " make sunos5-gcc for Suns with SunOS 5.x and GCC"
|
||||||
|
@echo " make sunos5-gcc-sl for Suns with SunOS 5.x, GCC, make shared libs"
|
||||||
|
@echo " make sunos5-x11r6-gcc-sl for Suns with X11R6, GCC, make shared libs"
|
||||||
|
@echo " make sunos5-gcc-thread for Suns with SunOS 5.x and GCC, using Solaris threads"
|
||||||
|
@echo " make sunos5-gcc-pthread for Suns with SunOS 5.[56] and GCC, using POSIX threads"
|
||||||
|
@echo " make sunSolaris-CC for Solaris using C++ compiler"
|
||||||
|
@echo " make ultrix-gcc for DEC systems with Ultrix and GCC"
|
||||||
|
@echo " make unicos for Cray C90 (and other?) systems"
|
||||||
|
@echo " make unixware for PCs running UnixWare"
|
||||||
|
@echo " make unixware-shared for PCs running UnixWare, shared libs"
|
||||||
|
@echo " make uwin for Windows NT with AT&T/Wipro UWIN"
|
||||||
|
@echo " make vistra for Stardent Vistra systems"
|
||||||
|
@echo " make clean remove .o files"
|
||||||
|
@echo " make realclean remove .o, library and executable files"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \
|
||||||
|
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
|
||||||
|
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
|
||||||
|
irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \
|
||||||
|
linux linux-static linux-debug linux-static-debug linux-prof \
|
||||||
|
linux-x86 linux-x86-static linux-x86-debug \
|
||||||
|
linux-glide linux-386-glide linux-386-opt-glide \
|
||||||
|
linux-386-opt-V2-glide linux-x86-glide linux-glide-debug linux-glide-prof \
|
||||||
|
linux-alpha-static linux-alpha \
|
||||||
|
linux-ppc-static linux-ppc \
|
||||||
|
linux-sparc \
|
||||||
|
linux-sparc5-elf \
|
||||||
|
linux-sparc-ultra \
|
||||||
|
lynxos machten-2.2 machten-4.0 \
|
||||||
|
mklinux netbsd osf1 osf1-sl openbsd qnx sco sco5 \
|
||||||
|
solaris-x86 solaris-x86-gcc sunSolaris-CC \
|
||||||
|
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
|
||||||
|
sunos5 sunos5-sl sunos5-ultra sunos5-ultra-sl sunos5-gcc sunos5-gcc-sl \
|
||||||
|
sunos5-thread sunos5-pthread sunos5-gcc-thread sunos5-gcc-pthread \
|
||||||
|
sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src ] ; then touch src/depend ; fi
|
||||||
|
if [ -d src-glu ] ; then touch src-glu/depend ; fi
|
||||||
|
if [ -d src-glut ] ; then touch src-glut/depend ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d xdemos ] ; then cd xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
|
||||||
|
-mkdir lib32
|
||||||
|
if [ -d src ] ; then touch src/depend ; fi
|
||||||
|
if [ -d src-glu ] ; then touch src-glu/depend ; fi
|
||||||
|
if [ -d src-glut ] ; then touch src-glut/depend ; fi
|
||||||
|
if [ -d src-glut ] ; then touch src-glut/depend ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d xdemos ] ; then cd xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
|
||||||
|
irix6-64 irix6-64-dso:
|
||||||
|
-mkdir lib64
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d src-glut ] ; then touch src-glut/depend ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d xdemos ] ; then cd xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
|
||||||
|
amiwin:
|
||||||
|
bin/mklib.amiwin
|
||||||
|
|
||||||
|
|
||||||
|
beos-r4:
|
||||||
|
-mkdir lib
|
||||||
|
-rm src/depend
|
||||||
|
touch src/depend
|
||||||
|
-rm src-glu/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d BeOS ] ; then cd BeOS ; $(MAKE) ; fi
|
||||||
|
if [ -d src-glut.beos ] ; then cd src-glut.beos ; $(MAKE) ; fi
|
||||||
|
if [ -d src-glut.beos ] ; then cp src-glut.beos/obj*/libglut.so lib ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
|
||||||
|
pgi-cygnus pgi-mingw32 \
|
||||||
|
cygnus cygnus-linux:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d xdemos ] ; then cd xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
macintosh:
|
||||||
|
@echo "See the README file for Macintosh intallation information"
|
||||||
|
|
||||||
|
next:
|
||||||
|
-mkdir lib
|
||||||
|
cd src ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
cd src-glu ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
|
||||||
|
openstep:
|
||||||
|
-mkdir lib
|
||||||
|
cd src ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
cd src-glu ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
|
||||||
|
os2-x11:
|
||||||
|
if not EXIST .\lib md lib
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if exist src-glut touch src-glut/depend
|
||||||
|
cd src & make -f Makefile.X11 $@
|
||||||
|
cd src-glu & make -f Makefile.X11 $@
|
||||||
|
if exist src-glut cd src-glut & make -f Makefile.X11 $@
|
||||||
|
if exist demos cd demos & make -f Makefile.X11 $@
|
||||||
|
if exist xdemos cd xdemos & make -f Makefile.X11 $@
|
||||||
|
if exist samples cd samples & make -f Makefile.X11 $@
|
||||||
|
if exist book cd book & make -f Makefile.X11 $@
|
||||||
|
|
||||||
|
linux-ggi linux-386-ggi:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d src-glut ] ; then touch src-glut/depend ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
|
||||||
|
if [ -d ggi ] ; then touch ggi/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/GGI/default ] ; then cd src/GGI/default ; $(MAKE) ; fi
|
||||||
|
if [ -d src/GGI/display ] ; then cd src/GGI/display ; $(MAKE) ; fi
|
||||||
|
if [ -d src-glut ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
# if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d ggi ] ; then cd ggi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d ggi ] ; then cd ggi/demos; $(MAKE) ; fi
|
||||||
|
if [ -d demos ] ; then cd demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d xdemos ] ; then cd xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
# if you change GGI_DEST please change it in ggimesa.conf, too.
|
||||||
|
DESTDIR=/usr/local
|
||||||
|
GGI_DEST=lib/ggi/mesa
|
||||||
|
|
||||||
|
linux-ggi-install linux-386-ggi-install:
|
||||||
|
install -d $(DESTDIR)/$(GGI_DEST)/default $(DESTDIR)/$(GGI_DEST)/display $(DESTDIR)/etc/ggi
|
||||||
|
install -m 0755 src/GGI/default/*.so $(DESTDIR)/$(GGI_DEST)/default
|
||||||
|
install -m 0755 src/GGI/display/*.so $(DESTDIR)/$(GGI_DEST)/display
|
||||||
|
install -m 0644 src/GGI/ggimesa.conf $(DESTDIR)/etc/ggi
|
||||||
|
# if [ -z "`grep ggimesa $(DESTDIR)/etc/ggi/libggi.conf`" ]; then \
|
||||||
|
# echo ".include $(DESTDIR)/etc/ggi/ggimesa.conf" >> $(DESTDIR)/etc/ggi/libggi.conf ; \
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Remove .o files, emacs backup files, etc.
|
||||||
|
clean:
|
||||||
|
-rm -f ggi/*~ *.o
|
||||||
|
-rm -f src/GGI/default/*~ *.so
|
||||||
|
-rm -f src/GGI/display/*~ *.so
|
||||||
|
-rm -f include/*~
|
||||||
|
-rm -f include/GL/*~
|
||||||
|
-rm -f src/*.o src/*~ src/*.a src/*/*.o src/*/*~
|
||||||
|
-rm -f src-glu/*.o src-glu/*~ src-glu/*.a
|
||||||
|
-rm -f src-glut/*.o
|
||||||
|
-rm -f demos/*.o
|
||||||
|
-rm -f book/*.o book/*~
|
||||||
|
-rm -f xdemos/*.o xdemos/*~
|
||||||
|
-rm -f samples/*.o samples/*~
|
||||||
|
-rm -f ggi/*.o ggi/demos/*.o ggi/*.a
|
||||||
|
-rm -f widgets-sgi/*.o
|
||||||
|
-rm -f widgets-mesa/*/*.o
|
||||||
|
|
||||||
|
# Remove everything that can be remade
|
||||||
|
realclean: clean
|
||||||
|
-rm -f lib/*
|
||||||
|
cd demos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd xdemos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd book && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd samples && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd ggi/demos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd src/GGI/default && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DIRECTORY = Mesa-3.4
|
||||||
|
LIB_NAME = MesaLib-3.4
|
||||||
|
DEMO_NAME = MesaDemos-3.4
|
||||||
|
GLU_NAME = MesaGLU-3.4
|
||||||
|
GLUT_NAME = GLUT-3.7
|
||||||
|
|
||||||
|
|
||||||
|
LIB_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/acconfig.h \
|
||||||
|
$(DIRECTORY)/acinclude.m4 \
|
||||||
|
$(DIRECTORY)/aclocal.m4 \
|
||||||
|
$(DIRECTORY)/conf.h.in \
|
||||||
|
$(DIRECTORY)/config.guess \
|
||||||
|
$(DIRECTORY)/config.sub \
|
||||||
|
$(DIRECTORY)/configure \
|
||||||
|
$(DIRECTORY)/configure.in \
|
||||||
|
$(DIRECTORY)/install-sh \
|
||||||
|
$(DIRECTORY)/ltconfig \
|
||||||
|
$(DIRECTORY)/ltmain.sh \
|
||||||
|
$(DIRECTORY)/missing \
|
||||||
|
$(DIRECTORY)/mkinstalldirs \
|
||||||
|
$(DIRECTORY)/stamp-h.in \
|
||||||
|
$(DIRECTORY)/docs/CONFIG \
|
||||||
|
$(DIRECTORY)/docs/CONFORM \
|
||||||
|
$(DIRECTORY)/docs/COPYING \
|
||||||
|
$(DIRECTORY)/docs/COPYRIGHT \
|
||||||
|
$(DIRECTORY)/docs/DEVINFO \
|
||||||
|
$(DIRECTORY)/docs/IAFA-PACKAGE \
|
||||||
|
$(DIRECTORY)/docs/INSTALL \
|
||||||
|
$(DIRECTORY)/docs/INSTALL.GNU \
|
||||||
|
$(DIRECTORY)/docs/README \
|
||||||
|
$(DIRECTORY)/docs/README.* \
|
||||||
|
$(DIRECTORY)/docs/RELNOTES* \
|
||||||
|
$(DIRECTORY)/docs/VERSIONS \
|
||||||
|
$(DIRECTORY)/docs/*.spec \
|
||||||
|
$(DIRECTORY)/bin/README \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/*.BAT \
|
||||||
|
$(DIRECTORY)/*.bat \
|
||||||
|
$(DIRECTORY)/descrip.mms \
|
||||||
|
$(DIRECTORY)/mms-config \
|
||||||
|
$(DIRECTORY)/xlib.opt \
|
||||||
|
$(DIRECTORY)/STARTUP.MK \
|
||||||
|
$(DIRECTORY)/mesawin32.mak \
|
||||||
|
$(DIRECTORY)/Names.win \
|
||||||
|
$(DIRECTORY)/win32-openstep.sh \
|
||||||
|
$(DIRECTORY)/common.dja \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.am \
|
||||||
|
$(DIRECTORY)/include/GL/dosmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/amesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/fxmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/ggimesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glx.h \
|
||||||
|
$(DIRECTORY)/include/GL/glx_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/mesa_wgl.h \
|
||||||
|
$(DIRECTORY)/include/GL/mglmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/osmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/svgamesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/wmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa_x.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa_xf86.h \
|
||||||
|
$(DIRECTORY)/include/GLView.h \
|
||||||
|
$(DIRECTORY)/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/Makefile* \
|
||||||
|
$(DIRECTORY)/src/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/mms_depend \
|
||||||
|
$(DIRECTORY)/src/mesa.conf \
|
||||||
|
$(DIRECTORY)/src/*.def \
|
||||||
|
$(DIRECTORY)/src/depend \
|
||||||
|
$(DIRECTORY)/src/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/Allegro/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/BeOS/*.cpp \
|
||||||
|
$(DIRECTORY)/src/D3D/*.cpp \
|
||||||
|
$(DIRECTORY)/src/D3D/*.CPP \
|
||||||
|
$(DIRECTORY)/src/D3D/*.h \
|
||||||
|
$(DIRECTORY)/src/D3D/*.H \
|
||||||
|
$(DIRECTORY)/src/D3D/*.c \
|
||||||
|
$(DIRECTORY)/src/D3D/*.C \
|
||||||
|
$(DIRECTORY)/src/D3D/MAKEFILE \
|
||||||
|
$(DIRECTORY)/src/D3D/*bat \
|
||||||
|
$(DIRECTORY)/src/D3D/*DEF \
|
||||||
|
$(DIRECTORY)/src/DOS/DEPEND.DOS \
|
||||||
|
$(DIRECTORY)/src/DOS/*.c \
|
||||||
|
$(DIRECTORY)/src/FX/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/FX/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/FX/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/FX/*.def \
|
||||||
|
$(DIRECTORY)/src/FX/X86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/FX/X86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/FX/X86/*.[Shc] \
|
||||||
|
$(DIRECTORY)/src/GGI/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/GGI/ggimesa.conf.in \
|
||||||
|
$(DIRECTORY)/src/GGI/default/*.c \
|
||||||
|
$(DIRECTORY)/src/GGI/default/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/default/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/default/genkgi.conf.in \
|
||||||
|
$(DIRECTORY)/src/GGI/display/*.c \
|
||||||
|
$(DIRECTORY)/src/GGI/display/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/display/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/display/fbdev.conf.in \
|
||||||
|
$(DIRECTORY)/src/GGI/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/include/ggi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/include/ggi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/GGI/include/ggi/mesa/*.h \
|
||||||
|
$(DIRECTORY)/src/KNOWN_BUGS \
|
||||||
|
$(DIRECTORY)/src/OSmesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/OSmesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/OSmesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/S3/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/S3/*.def \
|
||||||
|
$(DIRECTORY)/src/S3/*.mak \
|
||||||
|
$(DIRECTORY)/src/S3/*.rc \
|
||||||
|
$(DIRECTORY)/src/SVGA/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/SVGA/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/SVGA/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/Windows/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/Windows/*.def \
|
||||||
|
$(DIRECTORY)/src/X/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/X/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/X/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/X86/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/X86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/X86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/X86/*.S \
|
||||||
|
$(DIRECTORY)/src-glu/README[12] \
|
||||||
|
$(DIRECTORY)/src-glu/Makefile* \
|
||||||
|
$(DIRECTORY)/src-glu/descrip.mms \
|
||||||
|
$(DIRECTORY)/src-glu/mms_depend \
|
||||||
|
$(DIRECTORY)/src-glu/*.def \
|
||||||
|
$(DIRECTORY)/src-glu/depend \
|
||||||
|
$(DIRECTORY)/src-glu/*.[ch] \
|
||||||
|
$(DIRECTORY)/widgets-mesa/ChangeLog \
|
||||||
|
$(DIRECTORY)/widgets-mesa/INSTALL \
|
||||||
|
$(DIRECTORY)/widgets-mesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/widgets-mesa/README \
|
||||||
|
$(DIRECTORY)/widgets-mesa/TODO \
|
||||||
|
$(DIRECTORY)/widgets-mesa/configure \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/ChangeLog \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/Cube \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/Ed \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/Makefile.in \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/Mcube \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/Tea \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/*.[ch] \
|
||||||
|
$(DIRECTORY)/widgets-mesa/demos/events \
|
||||||
|
$(DIRECTORY)/widgets-mesa/include/GL/ChangeLog \
|
||||||
|
$(DIRECTORY)/widgets-mesa/include/GL/*.h \
|
||||||
|
$(DIRECTORY)/widgets-mesa/include/GL/Makefile.in \
|
||||||
|
$(DIRECTORY)/widgets-mesa/man/ChangeLog \
|
||||||
|
$(DIRECTORY)/widgets-mesa/man/GL* \
|
||||||
|
$(DIRECTORY)/widgets-mesa/man/Makefile.in \
|
||||||
|
$(DIRECTORY)/widgets-mesa/man/Mesa* \
|
||||||
|
$(DIRECTORY)/widgets-mesa/src/ChangeLog \
|
||||||
|
$(DIRECTORY)/widgets-mesa/src/*.c \
|
||||||
|
$(DIRECTORY)/widgets-mesa/src/Makefile.in \
|
||||||
|
$(DIRECTORY)/widgets-sgi/*.[ch] \
|
||||||
|
$(DIRECTORY)/widgets-sgi/Makefile* \
|
||||||
|
$(DIRECTORY)/widgets-sgi/README \
|
||||||
|
$(DIRECTORY)/util/README \
|
||||||
|
$(DIRECTORY)/util/Makefile.am \
|
||||||
|
$(DIRECTORY)/util/Makefile.in \
|
||||||
|
$(DIRECTORY)/util/*.[ch] \
|
||||||
|
$(DIRECTORY)/util/sampleMakefile \
|
||||||
|
$(DIRECTORY)/vms/analyze_map.com \
|
||||||
|
$(DIRECTORY)/vms/xlib.opt \
|
||||||
|
$(DIRECTORY)/vms/xlib_share.opt \
|
||||||
|
$(DIRECTORY)/BeOS/Makefile \
|
||||||
|
$(DIRECTORY)/BeOS/*.cpp \
|
||||||
|
$(DIRECTORY)/WIN32/NMAKE.MAK \
|
||||||
|
$(DIRECTORY)/WIN32/NMAKE.MIF \
|
||||||
|
$(DIRECTORY)/WIN32/RES/*rc \
|
||||||
|
$(DIRECTORY)/WIN32/RES/*def \
|
||||||
|
$(DIRECTORY)/WIN32/RULES/lib.* \
|
||||||
|
$(DIRECTORY)/WIN32/RULES/progs.* \
|
||||||
|
$(DIRECTORY)/macos/README \
|
||||||
|
$(DIRECTORY)/macos/gli_api/*.h \
|
||||||
|
$(DIRECTORY)/macos/cglpane/CGLPane.* \
|
||||||
|
$(DIRECTORY)/macos/include-mac/*.h \
|
||||||
|
$(DIRECTORY)/macos/libraries/*.stub \
|
||||||
|
$(DIRECTORY)/macos/libraries/*Stub \
|
||||||
|
$(DIRECTORY)/macos/projects/*.mcp \
|
||||||
|
$(DIRECTORY)/macos/projects/*.exp \
|
||||||
|
$(DIRECTORY)/macos/projects/*.h \
|
||||||
|
$(DIRECTORY)/macos/resources/*.c \
|
||||||
|
$(DIRECTORY)/macos/resources/*.r \
|
||||||
|
$(DIRECTORY)/macos/resources/*.rsrc \
|
||||||
|
$(DIRECTORY)/macos/src-agl/*.exp \
|
||||||
|
$(DIRECTORY)/macos/src-agl/*.[ch] \
|
||||||
|
$(DIRECTORY)/macos/src-gli/*.[ch] \
|
||||||
|
$(DIRECTORY)/OpenStep
|
||||||
|
|
||||||
|
DEMO_FILES = \
|
||||||
|
$(DIRECTORY)/include/GL/glut.h \
|
||||||
|
$(DIRECTORY)/include/GL/glutf90.h \
|
||||||
|
$(DIRECTORY)/include/GL/glut_h.dja \
|
||||||
|
$(DIRECTORY)/src-glut/Makefile* \
|
||||||
|
$(DIRECTORY)/src-glut/depend \
|
||||||
|
$(DIRECTORY)/src-glut/*def \
|
||||||
|
$(DIRECTORY)/src-glut/descrip.mms \
|
||||||
|
$(DIRECTORY)/src-glut/mms_depend \
|
||||||
|
$(DIRECTORY)/src-glut/*.[ch] \
|
||||||
|
$(DIRECTORY)/src-glut.dja/* \
|
||||||
|
$(DIRECTORY)/src-glut.beos/Makefile \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.cpp \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.h \
|
||||||
|
$(DIRECTORY)/images/* \
|
||||||
|
$(DIRECTORY)/demos/Makefile* \
|
||||||
|
$(DIRECTORY)/demos/descrip.mms \
|
||||||
|
$(DIRECTORY)/demos/*.[ch] \
|
||||||
|
$(DIRECTORY)/demos/*.cxx \
|
||||||
|
$(DIRECTORY)/demos/*.dat \
|
||||||
|
$(DIRECTORY)/demos/README \
|
||||||
|
$(DIRECTORY)/xdemos/Makefile* \
|
||||||
|
$(DIRECTORY)/xdemos/descrip.mms \
|
||||||
|
$(DIRECTORY)/xdemos/*.[cf] \
|
||||||
|
$(DIRECTORY)/book/Makefile* \
|
||||||
|
$(DIRECTORY)/book/README \
|
||||||
|
$(DIRECTORY)/book/*.[ch] \
|
||||||
|
$(DIRECTORY)/samples/Makefile* \
|
||||||
|
$(DIRECTORY)/samples/README \
|
||||||
|
$(DIRECTORY)/samples/*.c \
|
||||||
|
$(DIRECTORY)/mtdemos \
|
||||||
|
$(DIRECTORY)/ggi
|
||||||
|
|
||||||
|
GLU_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/src-glu/README[12] \
|
||||||
|
$(DIRECTORY)/src-glu/Makefile* \
|
||||||
|
$(DIRECTORY)/src-glu/descrip.mms \
|
||||||
|
$(DIRECTORY)/src-glu/mms_depend \
|
||||||
|
$(DIRECTORY)/src-glu/*.def \
|
||||||
|
$(DIRECTORY)/src-glu/depend \
|
||||||
|
$(DIRECTORY)/src-glu/*.[ch]
|
||||||
|
|
||||||
|
GLUT_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glut.h \
|
||||||
|
$(DIRECTORY)/include/GL/glutf90.h \
|
||||||
|
$(DIRECTORY)/include/GL/glut_h.dja \
|
||||||
|
$(DIRECTORY)/src-glut/Makefile* \
|
||||||
|
$(DIRECTORY)/src-glut/depend \
|
||||||
|
$(DIRECTORY)/src-glut/*def \
|
||||||
|
$(DIRECTORY)/src-glut/descrip.mms \
|
||||||
|
$(DIRECTORY)/src-glut/mms_depend \
|
||||||
|
$(DIRECTORY)/src-glut/*.[ch] \
|
||||||
|
$(DIRECTORY)/src-glut.dja/* \
|
||||||
|
$(DIRECTORY)/src-glut.beos/Makefile \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.cpp \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.h
|
||||||
|
|
||||||
|
|
||||||
|
lib_tar:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||||
|
gzip $(LIB_NAME).tar ; \
|
||||||
|
mv $(LIB_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_tar:
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||||
|
gzip $(DEMO_NAME).tar ; \
|
||||||
|
mv $(DEMO_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
glu_tar:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLU_NAME).tar $(GLU_FILES) ; \
|
||||||
|
gzip $(GLU_NAME).tar ; \
|
||||||
|
mv $(GLU_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
glut_tar:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLUT_NAME).tar $(GLUT_FILES) ; \
|
||||||
|
gzip $(GLUT_NAME).tar ; \
|
||||||
|
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
|
||||||
|
lib_zip:
|
||||||
|
-rm $(LIB_NAME).zip ; \
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
|
||||||
|
mv $(LIB_NAME).zip $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_zip:
|
||||||
|
-rm $(DEMO_NAME).zip ; \
|
||||||
|
cd .. ; \
|
||||||
|
zip -r $(DEMO_NAME).zip $(DEMO_FILES) ; \
|
||||||
|
mv $(DEMO_NAME).zip $(DIRECTORY)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SRC_FILES = \
|
||||||
|
RELNOTES \
|
||||||
|
src/Makefile* \
|
||||||
|
src/depend \
|
||||||
|
src/*.[chS] \
|
||||||
|
src/*/*.[ch] \
|
||||||
|
include/GL/*.h
|
||||||
|
|
||||||
|
srctar:
|
||||||
|
tar -cvf src.tar $(SRC_FILES) ; \
|
||||||
|
gzip src.tar
|
||||||
|
|
||||||
|
srctar.zip:
|
||||||
|
-rm src.zip
|
||||||
|
zip -r src.zip $(SRC_FILES) ; \
|
||||||
73
Makefile.am
73
Makefile.am
@@ -1,73 +0,0 @@
|
|||||||
# Copyright © 2012 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.
|
|
||||||
|
|
||||||
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 \
|
|
||||||
--enable-xvmc \
|
|
||||||
--enable-llvm-shared-libs \
|
|
||||||
--with-egl-platforms=x11,wayland,drm,surfaceless \
|
|
||||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
|
||||||
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,swr,etnaviv,imx \
|
|
||||||
--with-vulkan-drivers=intel,radeon
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
autogen.sh \
|
|
||||||
common.py \
|
|
||||||
docs \
|
|
||||||
doxygen \
|
|
||||||
scons \
|
|
||||||
SConstruct
|
|
||||||
|
|
||||||
noinst_HEADERS = \
|
|
||||||
include/c99_alloca.h \
|
|
||||||
include/c99_compat.h \
|
|
||||||
include/c99_math.h \
|
|
||||||
include/c11 \
|
|
||||||
include/D3D9 \
|
|
||||||
include/GL/wglext.h \
|
|
||||||
include/HaikuGL \
|
|
||||||
include/no_extern_c.h \
|
|
||||||
include/pci_ids
|
|
||||||
|
|
||||||
# We list some directories in EXTRA_DIST, but don't actually want to include
|
|
||||||
# the .gitignore files in the tarball.
|
|
||||||
dist-hook:
|
|
||||||
find $(distdir) -name .gitignore -exec $(RM) {} +
|
|
||||||
116
REVIEWERS
116
REVIEWERS
@@ -1,116 +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>
|
|
||||||
R: Rob Herring <robh@kernel.org>
|
|
||||||
F: CleanSpec.mk
|
|
||||||
F: */Android.*mk
|
|
||||||
F: */Makefile.sources
|
|
||||||
|
|
||||||
ANDROID EGL SUPPORT
|
|
||||||
R: Rob Herring <robh@kernel.org>
|
|
||||||
R: Tomasz Figa <tfiga@chromium.org>
|
|
||||||
F: src/egl/drivers/dri2/platform_android.c
|
|
||||||
|
|
||||||
WAYLAND EGL SUPPORT
|
|
||||||
R: Daniel Stone <daniels@collabora.com>
|
|
||||||
F: src/egl/wayland/*
|
|
||||||
F: src/egl/drivers/dri2/platform_wayland.c
|
|
||||||
|
|
||||||
FREEDRENO
|
|
||||||
R: Rob Clark <robclark@freedesktop.org>
|
|
||||||
F: src/gallium/drivers/freedreno/
|
|
||||||
|
|
||||||
GLX
|
|
||||||
R: Adam Jackson <ajax@redhat.com>
|
|
||||||
F: src/glx/
|
|
||||||
160
SConstruct
160
SConstruct
@@ -1,160 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Top-level SConstruct
|
|
||||||
#
|
|
||||||
# For example, invoke scons as
|
|
||||||
#
|
|
||||||
# scons build=debug llvm=yes machine=x86
|
|
||||||
#
|
|
||||||
# to set configuration variables. Or you can write those options to a file
|
|
||||||
# named config.py:
|
|
||||||
#
|
|
||||||
# # config.py
|
|
||||||
# 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
|
|
||||||
import sys
|
|
||||||
import SCons.Util
|
|
||||||
|
|
||||||
import common
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Configuration options
|
|
||||||
|
|
||||||
opts = Variables('config.py')
|
|
||||||
common.AddOptions(opts)
|
|
||||||
|
|
||||||
env = Environment(
|
|
||||||
options = opts,
|
|
||||||
tools = ['gallium'],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# XXX: This creates a many problems as it saves...
|
|
||||||
#opts.Save('config.py', env)
|
|
||||||
|
|
||||||
# Backwards compatability with old target configuration variable
|
|
||||||
try:
|
|
||||||
targets = ARGUMENTS['targets']
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
targets = targets.split(',')
|
|
||||||
print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
|
|
||||||
print
|
|
||||||
print ' scons %s' % ' '.join(targets)
|
|
||||||
print
|
|
||||||
COMMAND_LINE_TARGETS.append(targets)
|
|
||||||
|
|
||||||
|
|
||||||
Help(opts.GenerateHelpText(env))
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Environment setup
|
|
||||||
|
|
||||||
with open("VERSION") as f:
|
|
||||||
mesa_version = f.read().strip()
|
|
||||||
env.Append(CPPDEFINES = [
|
|
||||||
('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
|
|
||||||
('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
|
|
||||||
])
|
|
||||||
|
|
||||||
# Includes
|
|
||||||
env.Prepend(CPPPATH = [
|
|
||||||
'#/include',
|
|
||||||
])
|
|
||||||
env.Append(CPPPATH = [
|
|
||||||
'#/src/gallium/include',
|
|
||||||
'#/src/gallium/auxiliary',
|
|
||||||
'#/src/gallium/drivers',
|
|
||||||
'#/src/gallium/winsys',
|
|
||||||
])
|
|
||||||
|
|
||||||
# for debugging
|
|
||||||
#print env.Dump()
|
|
||||||
|
|
||||||
|
|
||||||
# Add a check target for running tests
|
|
||||||
check = env.Alias('check')
|
|
||||||
env.AlwaysBuild(check)
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke host SConscripts
|
|
||||||
#
|
|
||||||
# For things that are meant to be run on the native host build machine, instead
|
|
||||||
# of the target machine.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Create host environent
|
|
||||||
if env['crosscompile'] and not env['embedded']:
|
|
||||||
host_env = Environment(
|
|
||||||
options = opts,
|
|
||||||
# no tool used
|
|
||||||
tools = [],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Override options
|
|
||||||
host_env['platform'] = common.host_platform
|
|
||||||
host_env['machine'] = common.host_machine
|
|
||||||
host_env['toolchain'] = 'default'
|
|
||||||
host_env['llvm'] = False
|
|
||||||
|
|
||||||
host_env.Tool('gallium')
|
|
||||||
|
|
||||||
host_env['hostonly'] = True
|
|
||||||
assert host_env['crosscompile'] == False
|
|
||||||
|
|
||||||
target_env = env
|
|
||||||
env = host_env
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = host_env['build_dir'],
|
|
||||||
duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
env = target_env
|
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke SConscripts
|
|
||||||
|
|
||||||
# TODO: Build several variants at the same time?
|
|
||||||
# http://www.scons.org/wiki/SimultaneousVariantBuilds
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = env['build_dir'],
|
|
||||||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# List all aliases
|
|
||||||
|
|
||||||
try:
|
|
||||||
from SCons.Node.Alias import default_ans
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
aliases = default_ans.keys()
|
|
||||||
aliases.sort()
|
|
||||||
env.Help('\n')
|
|
||||||
env.Help('Recognized targets:\n')
|
|
||||||
for alias in aliases:
|
|
||||||
env.Help(' %s\n' % alias)
|
|
||||||
80
appveyor.yml
80
appveyor.yml
@@ -1,80 +0,0 @@
|
|||||||
# http://www.appveyor.com/docs/appveyor-yml
|
|
||||||
#
|
|
||||||
# To setup AppVeyor for your own personal repositories do the following:
|
|
||||||
# - Sign up
|
|
||||||
# - Add a new project
|
|
||||||
# - Select Git and fill in the Git clone URL
|
|
||||||
# - Setup a Git hook as explained in
|
|
||||||
# https://github.com/appveyor/webhooks#installing-git-hook
|
|
||||||
# - Check 'Settings > General > Skip branches without appveyor.yml'
|
|
||||||
# - Check 'Settings > General > Rolling builds'
|
|
||||||
# - Setup the global or project notifications to your liking
|
|
||||||
#
|
|
||||||
# Note that kicking (or restarting) a build via the web UI will not work, as it
|
|
||||||
# will fail to find appveyor.yml . The Git hook is the most practical way to
|
|
||||||
# kick a build.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
|
|
||||||
# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
|
|
||||||
|
|
||||||
version: '{build}'
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- /^travis.*$/
|
|
||||||
|
|
||||||
# Don't download the full Mesa history to speed up cloning. However the clone
|
|
||||||
# depth must not be too small, otherwise builds might fail when lots of patches
|
|
||||||
# are committed in succession, because the desired commit is not found on the
|
|
||||||
# truncated history.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
|
|
||||||
clone_depth: 100
|
|
||||||
|
|
||||||
cache:
|
|
||||||
- win_flex_bison-2.4.5.zip
|
|
||||||
- llvm-3.3.1-msvc2013-mtd.7z
|
|
||||||
|
|
||||||
os: Visual Studio 2013
|
|
||||||
|
|
||||||
environment:
|
|
||||||
WINFLEXBISON_ARCHIVE: win_flex_bison-2.4.5.zip
|
|
||||||
LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z
|
|
||||||
|
|
||||||
install:
|
|
||||||
# Check pip
|
|
||||||
- python --version
|
|
||||||
- python -m pip --version
|
|
||||||
# Install Mako
|
|
||||||
- python -m pip install --egg Mako
|
|
||||||
# Install pywin32 extensions, needed by SCons
|
|
||||||
- python -m pip install pypiwin32
|
|
||||||
# Install SCons
|
|
||||||
- python -m pip install --egg scons==2.4.1
|
|
||||||
- scons --version
|
|
||||||
# Install flex/bison
|
|
||||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
|
|
||||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
|
||||||
- set Path=%CD%\winflexbison;%Path%
|
|
||||||
- win_flex --version
|
|
||||||
- win_bison --version
|
|
||||||
# Download and extract LLVM
|
|
||||||
- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
|
|
||||||
- 7z x -y "%LLVM_ARCHIVE%" > nul
|
|
||||||
- mkdir llvm\bin
|
|
||||||
- set LLVM=%CD%\llvm
|
|
||||||
|
|
||||||
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
|
|
||||||
# doing so would cause the notification settings to be replicated across all
|
|
||||||
# repos, which is most likely undesired. So it's better to rely on the
|
|
||||||
# Appveyor global/project notification settings.
|
|
||||||
14
autogen.sh
14
autogen.sh
@@ -1,14 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
srcdir=`dirname "$0"`
|
|
||||||
test -z "$srcdir" && srcdir=.
|
|
||||||
|
|
||||||
ORIGDIR=`pwd`
|
|
||||||
cd "$srcdir"
|
|
||||||
|
|
||||||
autoreconf --force --verbose --install || exit 1
|
|
||||||
cd "$ORIGDIR" || exit $?
|
|
||||||
|
|
||||||
if test -z "$NOCONFIGURE"; then
|
|
||||||
"$srcdir"/configure "$@"
|
|
||||||
fi
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
[*.sh]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
9
bin/.gitignore
vendored
9
bin/.gitignore
vendored
@@ -1,9 +0,0 @@
|
|||||||
config.guess
|
|
||||||
config.sub
|
|
||||||
install-sh
|
|
||||||
/depcomp
|
|
||||||
/missing
|
|
||||||
ylwrap
|
|
||||||
compile
|
|
||||||
ar-lib
|
|
||||||
/test-driver
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This script is used to generate the list of fixed bugs that
|
|
||||||
# appears in the release notes files, with HTML formatting.
|
|
||||||
#
|
|
||||||
# Note: This script could take a while until all details have
|
|
||||||
# been fetched from bugzilla.
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
|
|
||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 > bugfixes
|
|
||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes
|
|
||||||
# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
|
|
||||||
# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | wc -l
|
|
||||||
|
|
||||||
|
|
||||||
# regex pattern: trim before bug number
|
|
||||||
trim_before='s/.*show_bug.cgi?id=\([0-9]*\).*/\1/'
|
|
||||||
|
|
||||||
# regex pattern: reconstruct the url
|
|
||||||
use_after='s,^,https://bugs.freedesktop.org/show_bug.cgi?id=,'
|
|
||||||
|
|
||||||
# extract fdo urls from commit log
|
|
||||||
urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after)
|
|
||||||
|
|
||||||
# if DRYRUN is set to "yes", simply print the URLs and don't fetch the
|
|
||||||
# details from fdo bugzilla.
|
|
||||||
#DRYRUN=yes
|
|
||||||
|
|
||||||
if [ "x$DRYRUN" = xyes ]; then
|
|
||||||
for i in $urls
|
|
||||||
do
|
|
||||||
echo $i
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo "<ul>"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
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/')
|
|
||||||
echo "<li><a href=\"$i\">Bug $id</a> - $summary</li>"
|
|
||||||
echo ""
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "</ul>"
|
|
||||||
fi
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates which fix commits that have been
|
|
||||||
# previously cherry-picked to a stable branch.
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-extra-pick-list.sh
|
|
||||||
# $ bin/get-extra-pick-list.sh > picklist
|
|
||||||
# $ bin/get-extra-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# Use the last branchpoint as our limit for the search
|
|
||||||
# XXX: there should be a better way for this
|
|
||||||
latest_branchpoint=`git branch | grep \* | cut -c 3-`-branchpoint
|
|
||||||
|
|
||||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
|
||||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' |\
|
|
||||||
cut -c -8 |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check if the original commit is referenced in master
|
|
||||||
git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
|
|
||||||
cut -c -8 |\
|
|
||||||
while read candidate
|
|
||||||
do
|
|
||||||
# Check if the potential fix, hasn't landed in branch yet.
|
|
||||||
found=`git log -n1 --pretty=oneline --reverse --grep=$candidate $latest_branchpoint..HEAD |wc -l`
|
|
||||||
if test $found = 0
|
|
||||||
then
|
|
||||||
echo Commit $candidate might need to be picked, as it references $sha
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates for cherry-picking to a stable branch
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-pick-list.sh
|
|
||||||
# $ bin/get-pick-list.sh > picklist
|
|
||||||
# $ bin/get-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
|
||||||
git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
|
||||||
|
|
||||||
# Grep for commits that were marked as a candidate for the stable tree.
|
|
||||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*mesa-stable\)' HEAD..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if it has already been picked over.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
git log -n1 --pretty=oneline $sha | cat
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates which have typos in the nomination line
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-typod-pick-list.sh
|
|
||||||
# $ bin/get-typod-pick-list.sh > picklist
|
|
||||||
# $ bin/get-typod-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# NB:
|
|
||||||
# This script intentionally _never_ checks for specific version tag
|
|
||||||
# Should we consider folding it with the original get-pick-list.sh
|
|
||||||
|
|
||||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
|
||||||
git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
|
||||||
|
|
||||||
# Grep for commits that were marked as a candidate for the stable tree.
|
|
||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' HEAD..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if it has already been picked over.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
git log -n1 --pretty=oneline $sha | cat
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
153
bin/mklib.aix
Executable file
153
bin/mklib.aix
Executable file
@@ -0,0 +1,153 @@
|
|||||||
|
#!/bin/ksh
|
||||||
|
|
||||||
|
# Make an AIX shared library (tricky!!!)
|
||||||
|
# Based on a script from Athanasios G. Gaitatzes (gaitat@vnet.ibm.com)
|
||||||
|
# Improved by Greg Thompson <gregt@visix.com> -gt
|
||||||
|
|
||||||
|
#--identification------------------------------------------------------
|
||||||
|
|
||||||
|
# $Id: mklib.aix,v 1.2 1999/09/15 15:10:20 brianp Exp $
|
||||||
|
|
||||||
|
# $Log: mklib.aix,v $
|
||||||
|
# Revision 1.2 1999/09/15 15:10:20 brianp
|
||||||
|
# added third, tiny version number to arguments
|
||||||
|
#
|
||||||
|
# Revision 1.1 1999/08/19 13:52:56 brianp
|
||||||
|
# initial check-in (post-crash)
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#--common--------------------------------------------------------------
|
||||||
|
|
||||||
|
LIBRARY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MAJOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MINOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
TINY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
OBJECTS=$*
|
||||||
|
|
||||||
|
#--platform------------------------------------------------------------
|
||||||
|
|
||||||
|
# BASENAME = LIBRARY without .a suffix
|
||||||
|
BASENAME=`echo ${LIBRARY} | sed "s/\.a//g"`
|
||||||
|
|
||||||
|
# Name of exports file
|
||||||
|
EXPFILE=${BASENAME}.exp
|
||||||
|
|
||||||
|
# Name of temporary shared lib file
|
||||||
|
OFILE=shr.o
|
||||||
|
####OFILE=${BASENAME}.o
|
||||||
|
|
||||||
|
|
||||||
|
# Remove any old files from previous make
|
||||||
|
rm -f ${LIBRARY} ${EXPFILE} ${OFILE}
|
||||||
|
|
||||||
|
# Pick a way to use nm -gt
|
||||||
|
NM=${NM-/bin/nm -eC}
|
||||||
|
|
||||||
|
# Determine which version of AIX this is
|
||||||
|
AIXVERSION=`uname -v`
|
||||||
|
|
||||||
|
# Pick a way to tell the linker there's no entrypoint -gt
|
||||||
|
case ${AIXVERSION}
|
||||||
|
{
|
||||||
|
3*)
|
||||||
|
ENTRY='-e _nostart'
|
||||||
|
;;
|
||||||
|
4*)
|
||||||
|
ENTRY=-bnoentry
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error in mklib.aix!"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Other libraries which we may be dependent on. Since we make the libraries
|
||||||
|
# in the order libGL.a, libaGLU.a, libglut.a just depends on its predecessor.
|
||||||
|
# modified to make otherlibs in the form of -lfoo -gt
|
||||||
|
OTHERLIBS=`ls ../lib/*.a | sed "s/..\/lib\/lib/-l/g" | sed "s/\.a//g"`
|
||||||
|
|
||||||
|
##echo OTHERLIBS are ${OTHERLIBS}
|
||||||
|
|
||||||
|
|
||||||
|
# Make exports (.exp) file header
|
||||||
|
echo "#! ${LIBRARY}" > ${EXPFILE}
|
||||||
|
|
||||||
|
# Append list of exported symbols to exports file -gt
|
||||||
|
case ${AIXVERSION}
|
||||||
|
{
|
||||||
|
3*)
|
||||||
|
${NM} ${OBJECTS} | awk -F'|' '{
|
||||||
|
if ($3 != "extern" || substr($7,1,1) == " ") continue
|
||||||
|
sub (" *", "", $1); sub (" *", "", $7)
|
||||||
|
if ( (($7 == ".text") || ($7 == ".data") || ($7 == ".bss")) \
|
||||||
|
&& ( substr($1,1,1) != ".")) {
|
||||||
|
if (substr ($1, 1, 7) != "__sinit" &&
|
||||||
|
substr ($1, 1, 7) != "__sterm") {
|
||||||
|
if (substr ($1, 1, 5) == "__tf1")
|
||||||
|
print (substr ($1, 7))
|
||||||
|
else if (substr ($1, 1, 5) == "__tf9")
|
||||||
|
print (substr ($1, 15))
|
||||||
|
else
|
||||||
|
print $1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' | sort -u >> ${EXPFILE}
|
||||||
|
;;
|
||||||
|
|
||||||
|
4*)
|
||||||
|
${NM} ${OBJECTS} | awk '{
|
||||||
|
if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
|
||||||
|
&& ( substr($1,1,1) != ".")) {
|
||||||
|
if (substr ($1, 1, 7) != "__sinit" &&
|
||||||
|
substr ($1, 1, 7) != "__sterm") {
|
||||||
|
if (substr ($1, 1, 5) == "__tf1")
|
||||||
|
print (substr ($1, 7))
|
||||||
|
else if (substr ($1, 1, 5) == "__tf9")
|
||||||
|
print (substr ($1, 15))
|
||||||
|
else
|
||||||
|
print $1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' | sort -u >> ${EXPFILE}
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# This next line is a hack to allow full compatibility with IBM's OpenGL
|
||||||
|
# libraries. IBM mistakenly exports glLoadIdentity from the libGLU.a
|
||||||
|
# library. We have to do the same thing. Problem reported by Yemi Adesanya
|
||||||
|
# (adesanya@afsmail.cern.ch) and Patrick Brown (pbrown@austin.ibm.com)
|
||||||
|
if [ "${BASENAME}" = libGLU ] ; then
|
||||||
|
echo "glLoadIdentity" >> ${EXPFILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Make the shared lib file
|
||||||
|
cc -o ${OFILE} ${OBJECTS} -L../lib ${OTHERLIBS} -lX11 -lXext -lXmu -lXi -lm -lc -bE:${EXPFILE} -bM:SRE ${ENTRY}
|
||||||
|
|
||||||
|
|
||||||
|
# Make the .a file
|
||||||
|
ar ruv ${LIBRARY} ${OFILE}
|
||||||
|
|
||||||
|
# Put exports file in Mesa lib directory
|
||||||
|
mv ${EXPFILE} ../lib
|
||||||
|
|
||||||
|
# Remove OFILE
|
||||||
|
rm -f ${OFILE}
|
||||||
|
|
||||||
|
|
||||||
|
#NOTES
|
||||||
|
# AIX 4.x /usr/bin/nm -B patch from ssclift@mach.me.queensu.ca (Simon Clift)
|
||||||
|
# Robustified symbol extraction for AIX 3 and 4
|
||||||
|
# Greg Thompson <gregt@visix.com>
|
||||||
|
|
||||||
38
bin/mklib.ar-ruv
Executable file
38
bin/mklib.ar-ruv
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make a standard Unix .a library file with 'ar ruv'
|
||||||
|
|
||||||
|
#--identification------------------------------------------------------
|
||||||
|
|
||||||
|
# $Id: mklib.ar-ruv,v 1.2 1999/09/15 15:10:20 brianp Exp $
|
||||||
|
|
||||||
|
# $Log: mklib.ar-ruv,v $
|
||||||
|
# Revision 1.2 1999/09/15 15:10:20 brianp
|
||||||
|
# added third, tiny version number to arguments
|
||||||
|
#
|
||||||
|
# Revision 1.1 1999/08/19 13:52:57 brianp
|
||||||
|
# initial check-in (post-crash)
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#--common--------------------------------------------------------------
|
||||||
|
|
||||||
|
LIBRARY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MAJOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MINOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
TINY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
OBJECTS=$*
|
||||||
|
|
||||||
|
#--platform-------------------------------------------------------------
|
||||||
|
|
||||||
|
#ar ruv $LIBRARY $OBJECTS
|
||||||
|
ar ru $LIBRARY $OBJECTS
|
||||||
|
|
||||||
52
bin/mklib.solaris
Normal file
52
bin/mklib.solaris
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make a Solaris shared library
|
||||||
|
# contributed by Arno Hahma (arno@nitro.pp.utu.fi)
|
||||||
|
|
||||||
|
#--identification------------------------------------------------------
|
||||||
|
|
||||||
|
# $Id: mklib.solaris,v 1.2 1999/09/15 15:10:20 brianp Exp $
|
||||||
|
|
||||||
|
# $Log: mklib.solaris,v $
|
||||||
|
# Revision 1.2 1999/09/15 15:10:20 brianp
|
||||||
|
# added third, tiny version number to arguments
|
||||||
|
#
|
||||||
|
# Revision 1.1 1999/08/19 13:53:06 brianp
|
||||||
|
# initial check-in (post-crash)
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#--common--------------------------------------------------------------
|
||||||
|
|
||||||
|
LIBRARY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MAJOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MINOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
TINY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
OBJECTS=$*
|
||||||
|
|
||||||
|
#--platform-------------------------------------------------------------
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
LIBRARY=`basename $LIBRARY .a`
|
||||||
|
|
||||||
|
VERSION=$MAJOR.$MINOR
|
||||||
|
|
||||||
|
echo "Building shared object $LIBRARY.so.$VERSION and the archive library $LIBRARY.a"
|
||||||
|
rm -f ${LIBRARY}.a ${LIBRARY}.so.${VERSION}
|
||||||
|
ar ruv ${LIBRARY}.a ${OBJECTS}
|
||||||
|
|
||||||
|
ld -G -o ${LIBRARY}.so.${VERSION} ${OBJECTS}
|
||||||
|
|
||||||
|
cp ${LIBRARY}.a ${LIBRARY}.so.${VERSION} ../lib
|
||||||
|
cd ../lib
|
||||||
|
ln -s ${LIBRARY}.so.${VERSION} ${LIBRARY}.so
|
||||||
|
|
||||||
@@ -1,251 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
#
|
|
||||||
# Copyright 2012 VMware Inc
|
|
||||||
# Copyright 2008-2009 Jose Fonseca
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
"""Perf annotate for JIT code.
|
|
||||||
|
|
||||||
Linux `perf annotate` does not work with JIT code. This script takes the data
|
|
||||||
produced by `perf script` command, plus the diassemblies outputed by gallivm
|
|
||||||
into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`.
|
|
||||||
|
|
||||||
See docs/llvmpipe.html for usage instructions.
|
|
||||||
|
|
||||||
The `perf script` output parser was derived from the gprof2dot.py script.
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os.path
|
|
||||||
import re
|
|
||||||
import optparse
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
|
|
||||||
class Parser:
|
|
||||||
"""Parser interface."""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def parse(self):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
|
|
||||||
class LineParser(Parser):
|
|
||||||
"""Base class for parsers that read line-based formats."""
|
|
||||||
|
|
||||||
def __init__(self, file):
|
|
||||||
Parser.__init__(self)
|
|
||||||
self._file = file
|
|
||||||
self.__line = None
|
|
||||||
self.__eof = False
|
|
||||||
self.line_no = 0
|
|
||||||
|
|
||||||
def readline(self):
|
|
||||||
line = self._file.readline()
|
|
||||||
if not line:
|
|
||||||
self.__line = ''
|
|
||||||
self.__eof = True
|
|
||||||
else:
|
|
||||||
self.line_no += 1
|
|
||||||
self.__line = line.rstrip('\r\n')
|
|
||||||
|
|
||||||
def lookahead(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
return self.__line
|
|
||||||
|
|
||||||
def consume(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
line = self.__line
|
|
||||||
self.readline()
|
|
||||||
return line
|
|
||||||
|
|
||||||
def eof(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
return self.__eof
|
|
||||||
|
|
||||||
|
|
||||||
mapFile = None
|
|
||||||
|
|
||||||
def lookupMap(filename, matchSymbol):
|
|
||||||
global mapFile
|
|
||||||
mapFile = filename
|
|
||||||
stream = open(filename, 'rt')
|
|
||||||
for line in stream:
|
|
||||||
start, length, symbol = line.split()
|
|
||||||
|
|
||||||
start = int(start, 16)
|
|
||||||
length = int(length,16)
|
|
||||||
|
|
||||||
if symbol == matchSymbol:
|
|
||||||
return start
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
def lookupAsm(filename, desiredFunction):
|
|
||||||
stream = open(filename + '.asm', 'rt')
|
|
||||||
while stream.readline() != desiredFunction + ':\n':
|
|
||||||
pass
|
|
||||||
|
|
||||||
asm = []
|
|
||||||
line = stream.readline().strip()
|
|
||||||
while line:
|
|
||||||
addr, instr = line.split(':', 1)
|
|
||||||
addr = int(addr)
|
|
||||||
asm.append((addr, instr))
|
|
||||||
line = stream.readline().strip()
|
|
||||||
|
|
||||||
return asm
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
samples = {}
|
|
||||||
|
|
||||||
|
|
||||||
class PerfParser(LineParser):
|
|
||||||
"""Parser for linux perf callgraph output.
|
|
||||||
|
|
||||||
It expects output generated with
|
|
||||||
|
|
||||||
perf record -g
|
|
||||||
perf script
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, infile, symbol):
|
|
||||||
LineParser.__init__(self, infile)
|
|
||||||
self.symbol = symbol
|
|
||||||
|
|
||||||
def readline(self):
|
|
||||||
# Override LineParser.readline to ignore comment lines
|
|
||||||
while True:
|
|
||||||
LineParser.readline(self)
|
|
||||||
if self.eof() or not self.lookahead().startswith('#'):
|
|
||||||
break
|
|
||||||
|
|
||||||
def parse(self):
|
|
||||||
# read lookahead
|
|
||||||
self.readline()
|
|
||||||
|
|
||||||
while not self.eof():
|
|
||||||
self.parse_event()
|
|
||||||
|
|
||||||
asm = lookupAsm(mapFile, self.symbol)
|
|
||||||
|
|
||||||
addresses = samples.keys()
|
|
||||||
addresses.sort()
|
|
||||||
total_samples = 0
|
|
||||||
|
|
||||||
sys.stdout.write('%s:\n' % self.symbol)
|
|
||||||
for address, instr in asm:
|
|
||||||
try:
|
|
||||||
sample = samples.pop(address)
|
|
||||||
except KeyError:
|
|
||||||
sys.stdout.write(6*' ')
|
|
||||||
else:
|
|
||||||
sys.stdout.write('%6u' % (sample))
|
|
||||||
total_samples += sample
|
|
||||||
sys.stdout.write('%6u: %s\n' % (address, instr))
|
|
||||||
print 'total:', total_samples
|
|
||||||
assert len(samples) == 0
|
|
||||||
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
def parse_event(self):
|
|
||||||
if self.eof():
|
|
||||||
return
|
|
||||||
|
|
||||||
line = self.consume()
|
|
||||||
assert line
|
|
||||||
|
|
||||||
callchain = self.parse_callchain()
|
|
||||||
if not callchain:
|
|
||||||
return
|
|
||||||
|
|
||||||
def parse_callchain(self):
|
|
||||||
callchain = []
|
|
||||||
while self.lookahead():
|
|
||||||
function = self.parse_call(len(callchain) == 0)
|
|
||||||
if function is None:
|
|
||||||
break
|
|
||||||
callchain.append(function)
|
|
||||||
if self.lookahead() == '':
|
|
||||||
self.consume()
|
|
||||||
return callchain
|
|
||||||
|
|
||||||
call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$')
|
|
||||||
|
|
||||||
def parse_call(self, first):
|
|
||||||
line = self.consume()
|
|
||||||
mo = self.call_re.match(line)
|
|
||||||
assert mo
|
|
||||||
if not mo:
|
|
||||||
return None
|
|
||||||
|
|
||||||
if not first:
|
|
||||||
return None
|
|
||||||
|
|
||||||
function_name = mo.group('symbol')
|
|
||||||
if not function_name:
|
|
||||||
function_name = mo.group('address')
|
|
||||||
|
|
||||||
module = mo.group('module')
|
|
||||||
|
|
||||||
function_id = function_name + ':' + module
|
|
||||||
|
|
||||||
address = mo.group('address')
|
|
||||||
address = int(address, 16)
|
|
||||||
|
|
||||||
if function_name != self.symbol:
|
|
||||||
return None
|
|
||||||
|
|
||||||
start_address = lookupMap(module, function_name)
|
|
||||||
address -= start_address
|
|
||||||
|
|
||||||
#print function_name, module, address
|
|
||||||
|
|
||||||
samples[address] = samples.get(address, 0) + 1
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
"""Main program."""
|
|
||||||
|
|
||||||
optparser = optparse.OptionParser(
|
|
||||||
usage="\n\t%prog [options] symbol_name")
|
|
||||||
(options, args) = optparser.parse_args(sys.argv[1:])
|
|
||||||
if len(args) != 1:
|
|
||||||
optparser.error('wrong number of arguments')
|
|
||||||
|
|
||||||
symbol = args[0]
|
|
||||||
|
|
||||||
p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
parser = PerfParser(p.stdout, symbol)
|
|
||||||
parser.parse()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
||||||
|
|
||||||
# vim: set sw=4 et:
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This script is used to generate the list of changes that
|
|
||||||
# appears in the release notes files, with HTML formatting.
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
|
|
||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 > changes
|
|
||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
|
|
||||||
|
|
||||||
|
|
||||||
typeset -i in_log=0
|
|
||||||
|
|
||||||
git shortlog $* | while read l
|
|
||||||
do
|
|
||||||
if [ $in_log -eq 0 ]; then
|
|
||||||
echo '<p>'$l'</p>'
|
|
||||||
echo '<ul>'
|
|
||||||
in_log=1
|
|
||||||
elif echo "$l" | egrep -q '^$' ; then
|
|
||||||
echo '</ul>'
|
|
||||||
echo
|
|
||||||
in_log=0
|
|
||||||
else
|
|
||||||
mesg=$(echo $l | sed 's/ (cherry picked from commit [0-9a-f]\+)//;s/\&/&/g;s/</\</g;s/>/\>/g')
|
|
||||||
echo ' <li>'${mesg}'</li>'
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
115
common.py
115
common.py
@@ -1,115 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Common SCons code
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import platform as _platform
|
|
||||||
|
|
||||||
import SCons.Script.SConscript
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Defaults
|
|
||||||
|
|
||||||
host_platform = _platform.system().lower()
|
|
||||||
if host_platform.startswith('cygwin'):
|
|
||||||
host_platform = 'cygwin'
|
|
||||||
|
|
||||||
# Search sys.argv[] for a "platform=foo" argument since we don't have
|
|
||||||
# an 'env' variable at this point.
|
|
||||||
if 'platform' in SCons.Script.ARGUMENTS:
|
|
||||||
target_platform = SCons.Script.ARGUMENTS['platform']
|
|
||||||
else:
|
|
||||||
target_platform = host_platform
|
|
||||||
|
|
||||||
_machine_map = {
|
|
||||||
'x86': 'x86',
|
|
||||||
'i386': 'x86',
|
|
||||||
'i486': 'x86',
|
|
||||||
'i586': 'x86',
|
|
||||||
'i686': 'x86',
|
|
||||||
'BePC': 'x86',
|
|
||||||
'Intel': 'x86',
|
|
||||||
'ppc': 'ppc',
|
|
||||||
'BeBox': 'ppc',
|
|
||||||
'BeMac': 'ppc',
|
|
||||||
'AMD64': 'x86_64',
|
|
||||||
'x86_64': 'x86_64',
|
|
||||||
'sparc': 'sparc',
|
|
||||||
'sun4u': 'sparc',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# find host_machine value
|
|
||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
|
|
||||||
host_machine = os.environ['PROCESSOR_ARCHITECTURE']
|
|
||||||
else:
|
|
||||||
host_machine = _platform.machine()
|
|
||||||
host_machine = _machine_map.get(host_machine, 'generic')
|
|
||||||
|
|
||||||
default_machine = host_machine
|
|
||||||
default_toolchain = 'default'
|
|
||||||
|
|
||||||
if target_platform == 'windows' and host_platform != 'windows':
|
|
||||||
default_machine = 'x86'
|
|
||||||
default_toolchain = 'crossmingw'
|
|
||||||
|
|
||||||
|
|
||||||
# find default_llvm value
|
|
||||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
else:
|
|
||||||
default_llvm = 'no'
|
|
||||||
try:
|
|
||||||
if target_platform != 'windows' and \
|
|
||||||
subprocess.call(['llvm-config', '--version'],
|
|
||||||
stdout=subprocess.PIPE) == 0:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Common options
|
|
||||||
|
|
||||||
def AddOptions(opts):
|
|
||||||
try:
|
|
||||||
from SCons.Variables.BoolVariable import BoolVariable as BoolOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.BoolOption import BoolOption
|
|
||||||
try:
|
|
||||||
from SCons.Variables.EnumVariable import EnumVariable as EnumOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.EnumOption import EnumOption
|
|
||||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
|
||||||
allowed_values=('debug', 'checked', 'profile',
|
|
||||||
'release', 'opt')))
|
|
||||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
|
||||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code',
|
|
||||||
default_machine,
|
|
||||||
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
|
|
||||||
opts.Add(EnumOption('platform', 'target platform', host_platform,
|
|
||||||
allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
|
|
||||||
'linux', 'sunos', 'windows')))
|
|
||||||
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'))
|
|
||||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
|
||||||
opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
|
|
||||||
'no'))
|
|
||||||
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
|
|
||||||
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
|
|
||||||
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
|
|
||||||
opts.Add(BoolOption('texture_float',
|
|
||||||
'enable floating-point textures and renderbuffers',
|
|
||||||
'no'))
|
|
||||||
opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
|
|
||||||
if host_platform == 'windows':
|
|
||||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
|
||||||
2853
configure.ac
2853
configure.ac
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
|||||||
Known issues in the ARB_color_buffer_float implementation:
|
|
||||||
- Rendering to multiple render targets, some fixed-point, some floating-point, with FIXED_ONLY fragment clamping and polygon smooth enabled may write incorrect values to the fixed point buffers (depends on spec interpretation)
|
|
||||||
- For fragment programs with ARB_fog_* options, colors are clamped before fog application regardless of the fragment clamping setting (this depends on spec interpretation)
|
|
||||||
|
|
||||||
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!
|
||||||
|
|
||||||
182
docs/INSTALL.GNU
Normal file
182
docs/INSTALL.GNU
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
These are generic installation instructions.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, a file
|
||||||
|
`config.cache' that saves the results of its tests to speed up
|
||||||
|
reconfiguring, and a file `config.log' containing compiler output
|
||||||
|
(useful mainly for debugging `configure').
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If at some point `config.cache'
|
||||||
|
contains results you don't want to keep, you may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.in' is used to create `configure' by a program
|
||||||
|
called `autoconf'. You only need `configure.in' if you want to change
|
||||||
|
it or regenerate `configure' using a newer version of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system. If you're
|
||||||
|
using `csh' on an old version of System V, you might need to type
|
||||||
|
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||||
|
`configure' itself.
|
||||||
|
|
||||||
|
Running `configure' takes awhile. While running, it prints some
|
||||||
|
messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. You can give `configure'
|
||||||
|
initial values for variables by setting them in the environment. Using
|
||||||
|
a Bourne-compatible shell, you can do that on the command line like
|
||||||
|
this:
|
||||||
|
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||||
|
|
||||||
|
Or on systems that have the `env' program, you can do it like this:
|
||||||
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you must use a version of `make' that
|
||||||
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
If you have to use a `make' that does not supports the `VPATH'
|
||||||
|
variable, you have to compile the package for one architecture at a time
|
||||||
|
in the source code directory. After you have installed the package for
|
||||||
|
one architecture, use `make distclean' before reconfiguring for another
|
||||||
|
architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||||
|
installation prefix other than `/usr/local' by giving `configure' the
|
||||||
|
option `--prefix=PATH'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||||
|
PATH as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=PATH' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' can not figure out
|
||||||
|
automatically, but needs to determine by the type of host the package
|
||||||
|
will run on. Usually `configure' can figure that out, but if it prints
|
||||||
|
a message saying it can not guess the host type, give it the
|
||||||
|
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name with three fields:
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the host type.
|
||||||
|
|
||||||
|
If you are building compiler tools for cross-compiling, you can also
|
||||||
|
use the `--target=TYPE' option to select the type of system they will
|
||||||
|
produce code for and the `--build=TYPE' option to select the type of
|
||||||
|
system on which you are compiling the package.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Operation Controls
|
||||||
|
==================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Use and save the results of the tests in FILE instead of
|
||||||
|
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||||
|
debugging `configure'.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options.
|
||||||
88
docs/MESA_copy_sub_buffer.spec
Normal file
88
docs/MESA_copy_sub_buffer.spec
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
Name
|
||||||
|
|
||||||
|
MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Name Strings
|
||||||
|
|
||||||
|
GLX_MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Contact
|
||||||
|
|
||||||
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Shipping since Mesa 2.6 in February, 1998.
|
||||||
|
|
||||||
|
Version
|
||||||
|
|
||||||
|
Last Modified Date: 8 June 2000
|
||||||
|
|
||||||
|
Number
|
||||||
|
|
||||||
|
215
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
|
||||||
|
OpenGL 1.0 or later is required.
|
||||||
|
GLX 1.0 or later is required.
|
||||||
|
|
||||||
|
Overview
|
||||||
|
|
||||||
|
The glxCopySubBufferMESA() function copies a rectangular region
|
||||||
|
of the back color buffer to the front color buffer. This can be
|
||||||
|
used to quickly repaint 3D windows in response to expose events
|
||||||
|
when the back color buffer cannot be damaged by other windows.
|
||||||
|
|
||||||
|
IP Status
|
||||||
|
|
||||||
|
Open-source; freely implementable.
|
||||||
|
|
||||||
|
Issues
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New Procedures and Functions
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
New Tokens
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
||||||
|
|
||||||
|
Add to section 3.3.10 Double Buffering:
|
||||||
|
|
||||||
|
The function
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
may be used to copy a rectangular region of the back color buffer to
|
||||||
|
the front color buffer. This can be used to quickly repaint 3D windows
|
||||||
|
in response to expose events when the back color buffer cannot be
|
||||||
|
damaged by other windows.
|
||||||
|
|
||||||
|
<x> and <y> indicates the lower-left corner of the region to copy and
|
||||||
|
<width> and <height> indicate the size in pixels. Coordinate (0,0)
|
||||||
|
corresponds to the lower-left pixel of the window, like glReadPixels.
|
||||||
|
|
||||||
|
GLX Protocol
|
||||||
|
|
||||||
|
None at this time. The extension is implemented in terms of ordinary
|
||||||
|
Xlib protocol inside of Mesa.
|
||||||
|
|
||||||
|
Errors
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New State
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Revision History
|
||||||
|
|
||||||
|
8 June 2000 - initial specification
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -31,12 +31,12 @@ Overview
|
|||||||
|
|
||||||
Mesa's implementation of GLX is entirely implemented on the client side.
|
Mesa's implementation of GLX is entirely implemented on the client side.
|
||||||
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
||||||
destroyed in order to free any ancillary data associated with the window
|
destroyed in order to free any ancilliary data associated with the window
|
||||||
or pixmap.
|
or pixmap.
|
||||||
|
|
||||||
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
||||||
when the back color buffer, depth buffer, stencil buffer, and/or accumu-
|
when the back color buffer, depth buffer, stencil buffer, and/or accum-
|
||||||
lation buffer associated with a drawable can be freed.
|
ulation buffer associated with a drawable can be freed.
|
||||||
|
|
||||||
IP Status
|
IP Status
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
|||||||
|
|
||||||
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
||||||
|
|
||||||
causes all software ancillary buffers (back buffer, depth, stencil,
|
causes all software ancilliary buffers (back buffer, depth, stencil,
|
||||||
accum, etc) associated with the named drawable to be immediately
|
accum, etc) associated with the named drawable to be immediately
|
||||||
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
||||||
else False is returned. After calling glXReleaseBuffersMESA, the
|
else False is returned. After calling glXReleaseBuffersMESA, the
|
||||||
@@ -8,14 +8,15 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, brianp 'at' mesa3d.org
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Shipping (since Mesa version 2.2)
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_resize_buffers.spec,v 1.2 2000/04/04 23:29:32 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ Overview
|
|||||||
|
|
||||||
Mesa's glViewport command queries the current window size and updates
|
Mesa's glViewport command queries the current window size and updates
|
||||||
its internal data structors accordingly. This normally works fine
|
its internal data structors accordingly. This normally works fine
|
||||||
since most applications call glViewport in response to window size
|
since most applications call glViewport in responce to window size
|
||||||
changes.
|
changes.
|
||||||
|
|
||||||
In some situations, however, the application may not call glViewport
|
In some situations, however, the application may not call glViewport
|
||||||
@@ -65,7 +66,7 @@ Additions to the AGL/GLX/WGL Specifications
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
INVALID_OPERATION is generated if glResizeBuffersMESA is called between
|
INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
|
||||||
Begin and End.
|
Begin and End.
|
||||||
|
|
||||||
New State
|
New State
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, brian.paul 'at' tungstengraphics.com
|
Brian Paul, brianp 'at' mesa3d.org
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_window_pos.spec,v 1.3 2000/04/04 23:29:32 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
|
|||||||
WindosPos4MESA takes four values indicating x, y, z, and w.
|
WindosPos4MESA takes four values indicating x, y, z, and w.
|
||||||
WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
|
WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
|
||||||
x, y, and z with w implicitly set to 1 (or only x and y with z
|
x, y, and z with w implicitly set to 1 (or only x and y with z
|
||||||
implicitly set to 0 and w implicitly set to 1).
|
implicititly set to 0 and w implicitly set to 1).
|
||||||
|
|
||||||
WindowPosMESA operates like RasterPos except that the current modelview
|
WindowPosMESA operates like RasterPos except that the current modelview
|
||||||
matrix, projection matrix and viewport parameters are ignored and the
|
matrix, projection matrix and viewport parameters are ignored and the
|
||||||
@@ -108,7 +109,7 @@ GLX Protocol
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
INVALID_OPERATION is generated if WindowPosMESA is called between
|
INVALID_OPERATION is generated if WindowPosMESA is called betweeen
|
||||||
Begin and End.
|
Begin and End.
|
||||||
|
|
||||||
New State
|
New State
|
||||||
598
docs/README.3DFX
Normal file
598
docs/README.3DFX
Normal file
@@ -0,0 +1,598 @@
|
|||||||
|
|
||||||
|
3Dfx Glide device driver for Mesa 3.4
|
||||||
|
(see below for FAQ)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What do you need ?
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board
|
||||||
|
(Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.).
|
||||||
|
The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
|
||||||
|
under Linux (more information in the "Useful Glide Environment
|
||||||
|
Variables");
|
||||||
|
|
||||||
|
- Mesa 3.1;
|
||||||
|
|
||||||
|
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
|
||||||
|
The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
|
||||||
|
compatible with the Glide 2.x so it doesn't work with the current
|
||||||
|
version of the driver;
|
||||||
|
|
||||||
|
- A compiler supported by the Glide library (Micro$oft VC++ (tested),
|
||||||
|
Watcom (tested), GCC for Linux (tested), etc.);
|
||||||
|
|
||||||
|
- A lot of patience, this is an alpha release.
|
||||||
|
|
||||||
|
- It's nice to have two monitors - one for your normal graphics
|
||||||
|
card and one for your 3Dfx card. If something goes wrong with
|
||||||
|
an application using the 3Dfx hardware you can still see your
|
||||||
|
normal screen in order to recover.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
----------
|
||||||
|
Windows 95 - David Bucciarelli
|
||||||
|
Windows NT - Henri Fousse
|
||||||
|
MS-DOS
|
||||||
|
Linux - Daryll Strauss, Brian Paul, David Bucciarelli
|
||||||
|
FreeBSD
|
||||||
|
BeOS - Duncan Wilcox
|
||||||
|
MacOS - Fazekas Miklos
|
||||||
|
|
||||||
|
|
||||||
|
What is able to do ?
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
- It is able accelerate points, lines and polygon with flat
|
||||||
|
shading, gouraud shading, Z-buffer, texture mapping, blending, fog and
|
||||||
|
antialiasing (when possible). There is also the support for rendering
|
||||||
|
in a window with a slow trick for the Voodoo Graphics (available only
|
||||||
|
for Linux) and at full speed with the Voodoo Rush chipset.
|
||||||
|
Under Linux is also possible to switch on-the-fly between the fullscreen
|
||||||
|
and in-window rendering hack.
|
||||||
|
There is also the support for using more than one Voodoo Graphics in the
|
||||||
|
some application/PC (you can create one context for each board and use
|
||||||
|
multiple video outputs for driving monitors, videoprojectors or HMDs).
|
||||||
|
The driver is able to fallback to pure software rendering when afeature
|
||||||
|
isn't supported by the Voodoo hardware (however software rendering is
|
||||||
|
very slow compared to hardware supported rendering)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
How to compile:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Linux:
|
||||||
|
------
|
||||||
|
Here are the basic steps for using the 3Dfx hardware with Mesa
|
||||||
|
on Linux:
|
||||||
|
|
||||||
|
- You'll need the Glide library and headers. Mesa expects:
|
||||||
|
/usr/local/glide/include/*.h // all the Glide headers
|
||||||
|
/usr/local/glide/lib/libglide2x.so
|
||||||
|
|
||||||
|
If your Glide libraries and headers are in a different directory
|
||||||
|
you'll have to modify the Mesa-config and mklib.glide files.
|
||||||
|
|
||||||
|
- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives;
|
||||||
|
|
||||||
|
- If you're going to use a newer Mesa/Glide driver than v0.27 then
|
||||||
|
unpack the new driver archive over the Mesa directory.
|
||||||
|
|
||||||
|
- In the Mesa-3.1 directory type "make linux-glide"
|
||||||
|
|
||||||
|
- Compilation _should_ finish without errors;
|
||||||
|
|
||||||
|
- Set your LD_LIBRARY_PATH environment variable so that the
|
||||||
|
libglide2x.so and Mesa library files can be found. For example:
|
||||||
|
setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib"
|
||||||
|
|
||||||
|
- You'll have to run Glide-based programs as root or set the suid
|
||||||
|
bit on executables;
|
||||||
|
|
||||||
|
- Try a demo:
|
||||||
|
cd gdemos
|
||||||
|
su
|
||||||
|
setenv MESA_GLX_FX f
|
||||||
|
./gears (hit ESC to exit)
|
||||||
|
|
||||||
|
- You can find the demos especially designed for the Voodoo driver in
|
||||||
|
in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile
|
||||||
|
everything).
|
||||||
|
|
||||||
|
MacOS:
|
||||||
|
------
|
||||||
|
Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html
|
||||||
|
|
||||||
|
MS Windows:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
For the MSVC++:
|
||||||
|
- The glide2x.lib have to be in the default MSVC++ lib directory;
|
||||||
|
|
||||||
|
- The Glide headers have to be in the default MSVC++ include directory;
|
||||||
|
|
||||||
|
- You must have the vcvars32.bat script in your PATH;
|
||||||
|
|
||||||
|
- Go to the directory Mesa-3.1 and run the mesafx.bat;
|
||||||
|
|
||||||
|
- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
|
||||||
|
Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
|
||||||
|
Voodoo demos);
|
||||||
|
|
||||||
|
- At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
|
||||||
|
|
||||||
|
- Try some demo (fire.exe, teapot.exe, etc.) in order to check if
|
||||||
|
everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between
|
||||||
|
the Voodoo screen and the windows desktop);
|
||||||
|
|
||||||
|
- Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the
|
||||||
|
some directory were you run your Mesa based applications.
|
||||||
|
|
||||||
|
- I think that you can easy change the Makefile.fx files in order
|
||||||
|
to work with other kind of compilers;
|
||||||
|
|
||||||
|
- To discover how open the 3Dfx screen, read the sources under
|
||||||
|
the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or
|
||||||
|
the Diego Picciani's wgl emulator.
|
||||||
|
|
||||||
|
NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the
|
||||||
|
SP3, you could have some problem (you can disable optimization in order
|
||||||
|
solve these kind of problems).
|
||||||
|
|
||||||
|
|
||||||
|
Doing more with Mesa & Linux Glide:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
The MESA_GLX_FX environment variable can be used to coax most
|
||||||
|
GLX-based programs into using Glide (and the __GLUT library
|
||||||
|
is GLX-based__).
|
||||||
|
|
||||||
|
Full-screen 3Dfx rendering:
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Set the MESA_GLX_FX variable to "fullscreen":
|
||||||
|
|
||||||
|
ksh:
|
||||||
|
export MESA_GLX_FX = "fullscreen"
|
||||||
|
csh:
|
||||||
|
setenv MESA_GLX_FX fullscreen
|
||||||
|
|
||||||
|
2. As root, run a GLX-based program (any GLUT demo on Linux).
|
||||||
|
|
||||||
|
3. Be careful: once the 3Dfx screen appears you won't be able
|
||||||
|
to see the GLUT windows on your X display. This can make using
|
||||||
|
the mouse tricky! One solution is to hook up your 3Dfx card to
|
||||||
|
a second monitor. If you can do this then set these env vars
|
||||||
|
first:
|
||||||
|
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN
|
||||||
|
|
||||||
|
or for the Voodoo2:
|
||||||
|
|
||||||
|
setenv SSTV2_VGA_PASS 1
|
||||||
|
setenv SSTV2_NOSHUTDOWN
|
||||||
|
|
||||||
|
Rendering into an X window with the help of the Voodoo hardware:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16)
|
||||||
|
in order to have the best performance and the best visual
|
||||||
|
quality. However you can use any visual depth supported by X.
|
||||||
|
|
||||||
|
2. Set the following environment variables:
|
||||||
|
export MESA_GLX_FX="window" # to enable window rendering
|
||||||
|
export SST_VGA_PASS=1 # to stop video signal switching
|
||||||
|
export SST_NOSHUTDOWN=1 # to stop video signal switching
|
||||||
|
OR
|
||||||
|
setenv MESA_GLX_FX window
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN 1
|
||||||
|
|
||||||
|
(the Voodoo2 requires to use "SSTV2_" instead "SST_").
|
||||||
|
|
||||||
|
3. As root, try running a GLX-based program
|
||||||
|
|
||||||
|
How does it work? We use the 3Dfx hardware to do rendering then
|
||||||
|
copy the image from the 3Dfx frame buffer into an X window when
|
||||||
|
the SwapBuffers() function is called. The problem with this
|
||||||
|
idea is it's slow. The image must be copied from the 3Dfx frame
|
||||||
|
buffer to main memory then copied into the X window (and when the X
|
||||||
|
visual depth doesn't match the Voodoo framebufffer bit per pixel, it
|
||||||
|
is required also a pixel format translation).
|
||||||
|
|
||||||
|
NOTE: the in-window rendering feature only works with double-buffering.
|
||||||
|
|
||||||
|
|
||||||
|
On the fly switching between in window rendering and full screen rendering
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The Mesa 2.6 has introduced the capability of switching
|
||||||
|
on-the-fly between the fullscreen/fullspeed rendering and the in-window
|
||||||
|
hack and vice versa. The on-the-fly switching requires a direct support
|
||||||
|
by the application but it is really easy to add. You have to start
|
||||||
|
your X server in 16 bpp mode and to add the following lines to your
|
||||||
|
application:
|
||||||
|
|
||||||
|
#if defined(FX) && define(XMESA)
|
||||||
|
#include <GL/xmesa.h>
|
||||||
|
|
||||||
|
static int fullscreen=1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
/* In the GLUT keyboard event callback */
|
||||||
|
|
||||||
|
#if defined(FX) && !define(WIN32)
|
||||||
|
case ' ':
|
||||||
|
fullscreen=(!fullscreen);
|
||||||
|
XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
...
|
||||||
|
|
||||||
|
See the 3Dfx/demos/tunnel.c program
|
||||||
|
for an example. You have to set the -DXMESA flag in the Makefile's COPTS
|
||||||
|
to enable it.
|
||||||
|
|
||||||
|
Rendering into an X window with the X11 software driver:
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
Set the MESA_GLX_FX variable to "disable" your GLX-based program will use
|
||||||
|
the X11 software driver (the 3Dfx hardware isn't used at all).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Useful Glide Environment Variables:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
- To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable.
|
||||||
|
|
||||||
|
- To disable video signal switching:
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN
|
||||||
|
or for the Voodoo2:
|
||||||
|
setenv SSTV2_VGA_PASS 1
|
||||||
|
setenv SSTV2_NOSHUTDOWN
|
||||||
|
|
||||||
|
- To set the default screen refresh rate:
|
||||||
|
setenv SST_SCREENREFRESH=75
|
||||||
|
|
||||||
|
the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120.
|
||||||
|
|
||||||
|
- To force the Mesa library to swap buffers as fast as possible,
|
||||||
|
without any vertical blanking synchronization (useful for benchmarks):
|
||||||
|
setenv FX_GLIDE_SWAPINTERVAL 0
|
||||||
|
setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0
|
||||||
|
|
||||||
|
- You can slight improve the performances of your Voodoo1 board with
|
||||||
|
the following env. var.:
|
||||||
|
setenv SST_FASTMEM 1
|
||||||
|
setenv SST_PCIRD 1
|
||||||
|
setenv SST_GRXCLK 57
|
||||||
|
|
||||||
|
(don't use this setting with the Quantum3D 100SB or with any other
|
||||||
|
SLI configuration: it will hang everything !).
|
||||||
|
The following setting can be used with the Voodoo2:
|
||||||
|
setenv SSTV2_FASTMEM_RAS_READS=1
|
||||||
|
setenv SSTV2_FASTPCIRD=1
|
||||||
|
setenv SSTV2_GRXCLK=95
|
||||||
|
|
||||||
|
- The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
|
||||||
|
in order to work under Linux:
|
||||||
|
|
||||||
|
export SSTV2_FT_CLKDEL=5
|
||||||
|
export SSTV2_TF0_CLKDEL=7
|
||||||
|
export SSTV2_TF1_CLKDEL=7
|
||||||
|
export SSTV2_TF2_CLKDEL=7
|
||||||
|
export SSTV2_SLIM_VIN_CLKDEL=3
|
||||||
|
export SSTV2_SLIM_VOUT_CLKDEL=2
|
||||||
|
export SSTV2_SLIS_VIN_CLKDEL=3
|
||||||
|
export SSTV2_SLIS_VOUT_CLKDEL=2
|
||||||
|
|
||||||
|
(Thanks to Phil Ross for this trick).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The Mesa/Voodoo Environment Variables:
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
- Only for Windows/Voodoo Rush users, if you define the
|
||||||
|
env. var. MESA_WGL_FX:
|
||||||
|
export MESA_WGL_FX=fullscreen
|
||||||
|
you will get fullscreen rendering;
|
||||||
|
|
||||||
|
- Only for Windows/Voodoo Rush users, if you define the
|
||||||
|
env. var. MESA_WGL_FX:
|
||||||
|
export MESA_WGL_FX=window
|
||||||
|
you will get window rendering (default value);
|
||||||
|
|
||||||
|
- Only for Linux users, you can find more informations about
|
||||||
|
the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide"
|
||||||
|
section;
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_SWAP_PENDING:
|
||||||
|
export MESA_FX_SWAP_PENDING=4
|
||||||
|
you will able to set the maximum number of swapbuffers
|
||||||
|
commands in the Voodoo FIFO after a swapbuffer (default value: 2);
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_INFO:
|
||||||
|
export MESA_FX_INFO=1
|
||||||
|
you will get some useful statistic.
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_NO_SIGNALS:
|
||||||
|
export MESA_FX_NO_SIGNALS=1
|
||||||
|
Mesa/FX will not install atexit() or signal() handlers.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Know BUGS and Problems:
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
- fog doesn't work in the right way when using the glDepthRange() function;
|
||||||
|
|
||||||
|
- Maximum texture size: 256x256 (this is an hardware limit);
|
||||||
|
|
||||||
|
- Texture border aren't yet supported;
|
||||||
|
|
||||||
|
- A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit);
|
||||||
|
|
||||||
|
- Use the glBindTexture extension (standard in OpenGL 1.1) for texture
|
||||||
|
mapping (the old way: glTexImage inside a display list, download
|
||||||
|
the texture map each time that you call the display list !!!);
|
||||||
|
|
||||||
|
- Stencil buffer and Accumulation buffer are emulated in software (they are not
|
||||||
|
directly supported by the Hardware);
|
||||||
|
|
||||||
|
- Color index mode not implemented (this is an hardware limit);
|
||||||
|
|
||||||
|
- Thre is an know bug in the Linux Glide library so the in-window-rendering hack
|
||||||
|
and any other operations that requires to read the Voodoo frame buffer
|
||||||
|
(like the accumulation buffer support) doesn't work on Voodoo SLI cards.
|
||||||
|
|
||||||
|
- The driver switch to pure software (_slow_) rendering when:
|
||||||
|
|
||||||
|
- Stencil enabled;
|
||||||
|
- Using the Accumulation buffer;
|
||||||
|
- Blend enabled and blend equation != GL_FUNC_ADD_EXT;
|
||||||
|
- Color logic operation enabled and color logic operation != GL_COPY;
|
||||||
|
- Using GL_SEPARATE_SPECULAR_COLOR;
|
||||||
|
- The four values of glColorMask() aren't the some;
|
||||||
|
- Texture 1D or 3D enabled;
|
||||||
|
- Texture function is GL_BLEND;
|
||||||
|
- Using the Multitexture extension with Voodoo cards with only one TMU;
|
||||||
|
- Using the Multitexture extension with Voodoo cards with more than
|
||||||
|
one TMU, and texture function isn't GL_MODULATE;
|
||||||
|
- Point size is != 1.0 or point params vector != (1.0,0.0,0.0);
|
||||||
|
- Line width != 1.0 or using stipple lines.
|
||||||
|
- Using polygon offset or stipple polygons;
|
||||||
|
|
||||||
|
NOTE: this is list is not yet complete.
|
||||||
|
|
||||||
|
|
||||||
|
Hints and Special Features:
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
- Under Linux and with a Voodoo Graphics board, you can use
|
||||||
|
XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to
|
||||||
|
switch on the fly between fullscreen rendering and the in-window-rendering
|
||||||
|
hack.
|
||||||
|
|
||||||
|
- The driver is able to use all the texture memory available: 2/4MB on
|
||||||
|
Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards.
|
||||||
|
|
||||||
|
- Trilinear filtering is fully supported on Voodoo boards with two TMUs
|
||||||
|
(high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is
|
||||||
|
available the driver fallback to bilinear filter also if you ask
|
||||||
|
for trilinear filtering.
|
||||||
|
|
||||||
|
- The Voodoo driver support multiple Voodoo Graphics boards in the
|
||||||
|
some PC. Using this feature, you can write applications that use
|
||||||
|
multiple monitors, videoprojectors or HMDs for the output. See
|
||||||
|
Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one
|
||||||
|
context for each board.
|
||||||
|
|
||||||
|
- The v0.19 introduces a new powerful texture memory manager: the
|
||||||
|
texture memory is used as a cache of the set of all defined texture
|
||||||
|
maps. You can now define several MBs of texture maps also with a 2MB
|
||||||
|
of texture memory (the texture memory manager will do automatically
|
||||||
|
all the swap out/swap in
|
||||||
|
texture memory work). The new texture memory manager has also
|
||||||
|
solved a lot of other bugs/no specs compliance/problems
|
||||||
|
related to the texture memory usage.
|
||||||
|
|
||||||
|
- Use triangles and quads strip: they are a LOT faster than sparse
|
||||||
|
triangles and quads.
|
||||||
|
|
||||||
|
- The Voodoo driver supports the GL_EXT_paletted_texture. it works
|
||||||
|
only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
|
||||||
|
is ignored because this is a limitation of the the current Glide
|
||||||
|
version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
|
||||||
|
a demo of this extension.
|
||||||
|
|
||||||
|
- The Voodoo driver directly supports 3Dfx Global Palette extension.
|
||||||
|
It was written for GLQuake and I think that it isn't a good idea
|
||||||
|
to use this extension for any other purpose (it is a trick). See
|
||||||
|
Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension.
|
||||||
|
|
||||||
|
- The Voodoo driver chooses the screen resolution according to the
|
||||||
|
requested window size. If you open a 640x480 window, you will get
|
||||||
|
a 640x480 screen resolution, if you open a 800x600 window, you
|
||||||
|
will get a 800x600 screen resolution, etc.
|
||||||
|
Most GLUT demos support the '-geometry' option, so you can choose
|
||||||
|
the screen resolution: 'tunnel -geometry 800x600'.
|
||||||
|
Clearly, you Voodoo board must have enough framebuffer RAM (otherwise
|
||||||
|
the window creation will fail).
|
||||||
|
|
||||||
|
- The glGetString(GL_RENDERER) returns more information
|
||||||
|
about the hardware configuration: "Mesa Glide <version>
|
||||||
|
<Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/
|
||||||
|
<num> TM/<num> TMU/<NOSLI|SLI>"
|
||||||
|
where: <num> CARD is the card used for the current context,
|
||||||
|
<num> FB is the number of MB for the framebuffer,
|
||||||
|
<num> TM is the number of MB for the texture memory,
|
||||||
|
<num> TMU is the number of TMU. You can try to run
|
||||||
|
Mesa/demos/glinfo in order to have an example of the output.
|
||||||
|
|
||||||
|
Did you find a lot BUGs and problems ? Good, send me an email.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
----
|
||||||
|
|
||||||
|
For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO
|
||||||
|
available at http://www.gamers.org/dEngine/xf3D (it includes also
|
||||||
|
a lot of informations not strictly related to Linux, so it can be
|
||||||
|
useful also if you don't use Linux)
|
||||||
|
|
||||||
|
1. What is 3Dfx?
|
||||||
|
|
||||||
|
3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics
|
||||||
|
chipset (and others) used in popular PC cards such as the Diamond Monster 3D
|
||||||
|
and the Orchid Righteous 3D (more informations at http://www.3dfx.com).
|
||||||
|
|
||||||
|
|
||||||
|
2. What is Glide?
|
||||||
|
|
||||||
|
Glide is a "thin" programming interface for the 3Dfx hardware. It was
|
||||||
|
originally written for Windows/Intel but has been ported to Linux/Intel
|
||||||
|
by Daryll Strauss.
|
||||||
|
|
||||||
|
3Dfx, Inc. should be applauded for allowing the Linux version of Glide
|
||||||
|
to be written.
|
||||||
|
|
||||||
|
You can directly program with the Glide library if you wish. You can
|
||||||
|
obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com
|
||||||
|
There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux
|
||||||
|
|
||||||
|
|
||||||
|
3. What is fxmesa?
|
||||||
|
|
||||||
|
"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library.
|
||||||
|
It was written by David Bucciarelli and others. It works on both Linux
|
||||||
|
and Windows. Basically, it allows you to write and run OpenGL-style programs
|
||||||
|
on the 3Dfx hardware.
|
||||||
|
|
||||||
|
|
||||||
|
4. What is GLQuake?
|
||||||
|
|
||||||
|
Quake is a very popular game from id software, Inc. See www.idsoftware.com
|
||||||
|
GLQuake is a version of Quake written for OpenGL. There is now a Linux
|
||||||
|
version of GLQuake with works with the Mesa/3Dfx/Glide combo.
|
||||||
|
|
||||||
|
Here's what you need to run GLQuake on Linux:
|
||||||
|
PC with 100MHz Pentium or better
|
||||||
|
a 3Dfx-based card
|
||||||
|
Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so
|
||||||
|
Glide 2.4 libraries: libglide2x.so libtexus.so
|
||||||
|
GLQuake for Linux.
|
||||||
|
|
||||||
|
Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll,
|
||||||
|
you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory
|
||||||
|
in order to test 'MesaQuake'.
|
||||||
|
|
||||||
|
|
||||||
|
5. What is GLUT?
|
||||||
|
|
||||||
|
GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for
|
||||||
|
writing portable OpenGL programs with support for multiple windows, pop-
|
||||||
|
up menus, event handling, etc.
|
||||||
|
|
||||||
|
Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd).
|
||||||
|
|
||||||
|
Every OpenGL programmer should check out GLUT.
|
||||||
|
|
||||||
|
GLUT on Linux uses GLX.
|
||||||
|
|
||||||
|
|
||||||
|
6. What is GLX?
|
||||||
|
|
||||||
|
GLX is the OpenGL extension to the X Window System. I defines both a
|
||||||
|
programming API (glX*() functions) and a network protocol. Mesa implements
|
||||||
|
an emulation of GLX on Linux. A real GLX implementation would requires
|
||||||
|
hooks into the X server. The 3Dfx hardware can be used with GLX-based
|
||||||
|
programs via the MESA_GLX_FX environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
7. Is the Voodoo driver able to use the 4Mb texture memory of
|
||||||
|
the Pure3D boards ?
|
||||||
|
|
||||||
|
Yes, the Voodoo driver v0.20 includes the support for Voodoo
|
||||||
|
Graphics boards with more than 2Mb of texture memory.
|
||||||
|
|
||||||
|
|
||||||
|
8. Do the Voodoo driver support the Voodoo Rush under Windows ?
|
||||||
|
|
||||||
|
Yes, Diego Picciani has developed the support for the Voodoo
|
||||||
|
Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul
|
||||||
|
has a Monster3D, so the new versions of the Mesa/Voodoo sometime are
|
||||||
|
not tested with the Voodoo Rush.
|
||||||
|
|
||||||
|
|
||||||
|
9. Do the Voodoo driver support the Voodoo Rush under Linux ?
|
||||||
|
|
||||||
|
No because the Linux Glide doesn't (yet) support the Voodoo Rush.
|
||||||
|
|
||||||
|
|
||||||
|
10. Can I sell my Mesa/Voodoo based software and include
|
||||||
|
a binary copy of the Mesa in order to make the software
|
||||||
|
working out of the box ?
|
||||||
|
|
||||||
|
Yes.
|
||||||
|
|
||||||
|
|
||||||
|
11. Which is the best make target for compiling the Mesa for
|
||||||
|
Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ?
|
||||||
|
|
||||||
|
'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide'
|
||||||
|
for Voodoo2 boards because it doesn't include the '-fPIC'
|
||||||
|
option (4-5% faster).
|
||||||
|
|
||||||
|
|
||||||
|
12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide'
|
||||||
|
for my applications/programs/demos ?
|
||||||
|
|
||||||
|
Yes, there is only one constrain: you can't run two Mesa applications
|
||||||
|
at the some time. This isn't a big issue with the today Voodoo Graphics.
|
||||||
|
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Henri Fousse (he has written several parts of the v0.15 and the old GLUT
|
||||||
|
emulator for Win);
|
||||||
|
|
||||||
|
Diego Picciani (he has developed all the Voodoo Rush support and the wgl
|
||||||
|
emulator);
|
||||||
|
|
||||||
|
Daryll Strauss (for the Linux Glide and the first Linux support);
|
||||||
|
|
||||||
|
Brian Paul (of course);
|
||||||
|
|
||||||
|
Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports)
|
||||||
|
|
||||||
|
Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer
|
||||||
|
a better Linux support)
|
||||||
|
|
||||||
|
3Dfx and Quantum3D (for actively supporting Linux)
|
||||||
|
|
||||||
|
The most update places where find Mesa VooDoo driver related informations are
|
||||||
|
the Mesa mailing list and my driver WEB page
|
||||||
|
(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml)
|
||||||
|
|
||||||
|
|
||||||
|
David Bucciarelli (davibu@tin.it)
|
||||||
|
|
||||||
|
Humanware s.r.l.
|
||||||
|
Via XXIV Maggio 62
|
||||||
|
Pisa, Italy
|
||||||
|
Tel./Fax +39-50-554108
|
||||||
|
email: info.hmw@plus.it
|
||||||
|
www: www-hmw.caribel.pisa.it
|
||||||
181
docs/README.AMIWIN
Normal file
181
docs/README.AMIWIN
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION
|
||||||
|
========================================================
|
||||||
|
Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu)
|
||||||
|
Original Author (Brian Paul (brianp@ssec.wisc.edu)
|
||||||
|
|
||||||
|
Dec.1 , 1995: Port of release Mesa 1.2.5
|
||||||
|
- Modifications made to minimize changes to Mesa distribution.
|
||||||
|
|
||||||
|
Nov.25, 1995: Port of release Mesa 1.2.4
|
||||||
|
|
||||||
|
|
||||||
|
HISTORY
|
||||||
|
=======
|
||||||
|
As a 3D graphics progammer, I was increasingly frustrated to see OpenGL
|
||||||
|
appearing on so many platforms EXCEPT the Amiga. Up to now, the task
|
||||||
|
of porting OpenGL directly from native Amiga drawing routines seemed like
|
||||||
|
a daunting task. However, two important events made this port possible.
|
||||||
|
|
||||||
|
First of all, Brian Paul wrote Mesa, the OpenGL software emulator that
|
||||||
|
can be found on many platforms - except the Amiga and Atari (who cares
|
||||||
|
about the latter!). This was pretty ironic considering that Mesa was
|
||||||
|
originally prototyped on an Amiga! The second great event was when
|
||||||
|
Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely
|
||||||
|
register for this great piece of software) and released a development kit
|
||||||
|
so one could compile X programs with SAS/C.
|
||||||
|
|
||||||
|
Since Mesa had X routines as its primitive drawing operations, this made
|
||||||
|
a marriage of Mesa and Amiwin feasible. I copied over the sources from
|
||||||
|
an ftp site, played with the code, wrote some Smakefiles, and voila,
|
||||||
|
I had OpenGL programs displaying on my Amiga.
|
||||||
|
|
||||||
|
Although the speed is nothing to be impressed about, this port can be
|
||||||
|
potentially useful to those who want to quickly test their code in
|
||||||
|
wireframe or perhaps learn more about programming with the OpenGL API.
|
||||||
|
|
||||||
|
I hope Amiga developers will continue to write excellent software for
|
||||||
|
their machine, especially more X clients for Amiwin. If you have any
|
||||||
|
solutions so some of my problems in the porting notes, please send me
|
||||||
|
some email!
|
||||||
|
|
||||||
|
See you around,
|
||||||
|
Vic.
|
||||||
|
|
||||||
|
HOW TO CREATE THE LIBRARIES AND SAMPLE CODE
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
Just run the shell script mklib.amiwin in the mesa directory. This will
|
||||||
|
make all the libraries and copy them into the mesa/lib directory. If you
|
||||||
|
don't want to compile everything, just go to the desired directory and
|
||||||
|
type smake in that directory.
|
||||||
|
|
||||||
|
Change any of the variables in the smakefiles as necessary. You will REQUIRE
|
||||||
|
the Amiwin development kit to compile these libraries since you need X11.LIB
|
||||||
|
and the shareable X libraries. Some examples require the AmiTCP4.0
|
||||||
|
net.lib static link library and related header files for unix related
|
||||||
|
header files and functions like sleep().
|
||||||
|
|
||||||
|
HOW TO USE THE MESA LIBRARIES
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Study the Smakefiles in the demos, samples and book directories for the
|
||||||
|
proper SAS/C options and linkable libraries to use. Basically aux calls
|
||||||
|
require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB,
|
||||||
|
tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit
|
||||||
|
available in the lib directory with the other Mesa libraries. However,
|
||||||
|
it seems to cause crashes on some of the sample code. Someone else may want
|
||||||
|
to attempt a more stable port.
|
||||||
|
|
||||||
|
PORTING NOTES TO AMIWIN
|
||||||
|
=======================
|
||||||
|
|
||||||
|
My strategy of porting was to leave as much of the code untouched as
|
||||||
|
possible. I surrounded any amiga specific changes with
|
||||||
|
#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor
|
||||||
|
symbols. The code was ported on an Amiga 2000, with Fusion 40 accelerator
|
||||||
|
and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with
|
||||||
|
the AmiWin 2.16 X development kit.
|
||||||
|
|
||||||
|
All compilations were done for a 68040 CPU with 68882 math coprocessor for
|
||||||
|
maximum speed. Please edit the smakefile for other compilers.
|
||||||
|
I wrote smakefiles for the directories I ported. I omitted the Windows
|
||||||
|
and Widgets directories. The former is for MS Windows and the latter
|
||||||
|
requires Motif, which is not easily available for the Amiga.
|
||||||
|
|
||||||
|
Here are the changes I did per directory:
|
||||||
|
|
||||||
|
* mesa
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added a mklib.amiwin shell script that will make all the libraries and
|
||||||
|
sample code for Mesa
|
||||||
|
- created this readme file: readme.AMIGA
|
||||||
|
|
||||||
|
* mesa/include
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- added the following to GL/xmesa.h
|
||||||
|
#ifdef AMIWIN
|
||||||
|
#include <pragmas/xlib_pragmas.h>
|
||||||
|
extern struct Library *XLibBase;
|
||||||
|
#endif
|
||||||
|
NET CHANGE: xmesa.h
|
||||||
|
|
||||||
|
* mesa/src
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c
|
||||||
|
This prevents undefined symbols errors during the linking phase for
|
||||||
|
X library calls
|
||||||
|
- created smakefile
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c,
|
||||||
|
glx.c since they are now defined in include/GL/xmesa.h
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-tk
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
private.h
|
||||||
|
- created smakefile
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN includes from private.h since it is now defined in
|
||||||
|
include/GL/xmesa.h
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-glu
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- created smakefile
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-aux
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
glaux.c
|
||||||
|
- created smakefile
|
||||||
|
NET CHANGE: glaux.c, smakefile
|
||||||
|
|
||||||
|
* mesa/demos
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
xdemo.c, glxdemo.c, offset.c
|
||||||
|
- created smakefile
|
||||||
|
- put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since
|
||||||
|
they are not part of AmigaDOS.
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since
|
||||||
|
already defined in include/GL/xmesa.h
|
||||||
|
- modified Smakefile to include header and includes from the AmiTCP4.0
|
||||||
|
net.lib linkable library to provide unix-compatible sys/time.h and
|
||||||
|
the sleep() function
|
||||||
|
- removed AMIWIN defines in xdemo.c since sleep() now defined
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/samples
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
oglinfo.c
|
||||||
|
- created smakefile
|
||||||
|
- put #ifndef AMIWIN ... #endif around sleep() in blendxor.c
|
||||||
|
- removed olympic from smakefile targets since <sys/time.h> not defined
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN defines from oglinfo.c, since already defined in
|
||||||
|
include/GL/xmesa.h
|
||||||
|
- modified Smakefile to include header and includes from the AmiTCP4.0
|
||||||
|
net.lib linkable library to provide unix-compatible sys/time.h and
|
||||||
|
the sleep() function
|
||||||
|
- removed AMIWIN defines in blendxor.c for sleep()
|
||||||
|
- added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom()
|
||||||
|
functions are not defined in any libraries
|
||||||
|
- added olympic back into the Smakefile targets
|
||||||
|
NET CHANGE: smakefile, olympic.c
|
||||||
|
|
||||||
|
* mesa/book
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- created smakefile
|
||||||
|
- removed accpersp and dof from smakefile targets since the SAS/C compile seems to
|
||||||
|
confuse the near,far variables with near/far memory models.
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/windows
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- Removed directory to save space since this is only needed for Windows based
|
||||||
|
machines.
|
||||||
102
docs/README.BEOS
Normal file
102
docs/README.BEOS
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
|
||||||
|
Mesa / BeOS Information
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
|
||||||
|
Mesa 3.1 features a new driver for the BeOS. The new driver implements
|
||||||
|
a clone of the BGLView class. This class, derived from BView, allows
|
||||||
|
OpenGL rendering into a BeOS window.
|
||||||
|
|
||||||
|
Any application which uses the BGLView should be able to use Mesa
|
||||||
|
instead of Be's OpenGL without changing any code.
|
||||||
|
|
||||||
|
Since Be's OpenGL implementation (as of R4) is basically just the
|
||||||
|
SGI sample implementation, it's pretty slow. You'll see that Mesa
|
||||||
|
is considerably faster.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
|
||||||
|
The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp
|
||||||
|
It's not 100% finished at this time but many GLUT-based demos are
|
||||||
|
working. No optimizations have been made at this time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Compiling
|
||||||
|
|
||||||
|
In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4".
|
||||||
|
When it finishes the libMesaGL.so and libMesaGLU.so libraries for
|
||||||
|
BeOS will be in the Mesa-3.x/lib/ directory.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Example Programs
|
||||||
|
|
||||||
|
Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo
|
||||||
|
programs. They should have been compiled along with the Mesa
|
||||||
|
library.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GLUT
|
||||||
|
|
||||||
|
A version of GLUT 2.5 for BeOS can be found in src-glut.beos/.
|
||||||
|
The original distribution can be obtained from
|
||||||
|
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
|
||||||
|
|
||||||
|
This is a special version of GLUT adapted for the BeOS. I don't
|
||||||
|
believe Mark Kilgard's normal GLUT distribution includes BeOS
|
||||||
|
support.
|
||||||
|
|
||||||
|
It seems that you have to recompile GLUT with libMesaGL.so instead
|
||||||
|
of libGL.so in order for everything to work. I'm not sure why.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Special Features
|
||||||
|
|
||||||
|
Mesa's implementation of the BGLView class has an extra member
|
||||||
|
function: CopySubBufferMESA(). It basically works like SwapBuffers()
|
||||||
|
but it only copies a sub region from the back buffer to the front
|
||||||
|
buffer. This is a useful optimization for some applications.
|
||||||
|
If you use this method in your code be sure that you check at runtime
|
||||||
|
that you're actually using Mesa (with glGetString) so you don't
|
||||||
|
cause a fatal error when running with Be's OpenGL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Work Left To Do
|
||||||
|
|
||||||
|
Color index mode is not implemented yet.
|
||||||
|
|
||||||
|
Reading pixels from the front buffer not implemented yet.
|
||||||
|
|
||||||
|
There is also a BGLScreen class in BeOS for full-screen OpenGL
|
||||||
|
rendering. This should also be implemented for Mesa.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Old BeOS Driver
|
||||||
|
|
||||||
|
Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
|
||||||
|
rendering interface, not BGLView. If you're interested in the older
|
||||||
|
driver you should get Mesa 2.6.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BeOS and Glide
|
||||||
|
|
||||||
|
Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
|
||||||
|
if interested. Ideally, the 3Dfx/Glide support should be updated to
|
||||||
|
work with the new Mesa 3.1 BGLView implementation.
|
||||||
|
|
||||||
|
The Glide library hasn't been updated for BeOS R4, to my knowledge, as
|
||||||
|
of February, 1999.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: README.BEOS,v 1.6 1999/11/27 01:40:40 brianp Exp $
|
||||||
124
docs/README.D3D
Normal file
124
docs/README.D3D
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
DirectX 6 Driver for Mesa 3.0
|
||||||
|
|
||||||
|
|
||||||
|
This software is distributed under the terms of the GNU Library
|
||||||
|
General Public License, see the LICENSE file for details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What do you need ?
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- A PC with a DirectX 6 video driver installed.
|
||||||
|
|
||||||
|
- Mesa 3.0
|
||||||
|
|
||||||
|
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
|
||||||
|
The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not
|
||||||
|
compatible with the Glide 2.x so it doesn't work with the current
|
||||||
|
version of the driver;
|
||||||
|
|
||||||
|
- Visual C++ 5.0 is only compiler test but others should be ok with
|
||||||
|
changes to the makefiles (CFLAGS/LFLAGS).
|
||||||
|
|
||||||
|
- DirectX 6 SDK (was a MS download but not sure if still available).
|
||||||
|
|
||||||
|
- SoftIce or another debugger that will get DPF's is nice.
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
----------
|
||||||
|
Windows 95
|
||||||
|
Windows 98
|
||||||
|
Windows NT 5.0 (beta 2)
|
||||||
|
|
||||||
|
|
||||||
|
What is able to do ?
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
- the driver will try and use DirectX to rasterize the OpenGL primitives
|
||||||
|
that are sent to the driver. The driver will fall back to SW if the rendering
|
||||||
|
context is too big. The fallback to SW still uses DirectDraw. If the driver
|
||||||
|
fails to support and operation (accum, stencil, etc) then it will try and get
|
||||||
|
Mesa to render it in SW. DirectX 6 features that are unsupported by the
|
||||||
|
installed DirectX 6 driver will be mapped to some other best fit feature.
|
||||||
|
|
||||||
|
|
||||||
|
How to compile:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
These instructions assume you have Visual C++ installed.
|
||||||
|
|
||||||
|
You might need to increase you enviroment space. You can do this by
|
||||||
|
adding the following statement to you config.sys.
|
||||||
|
|
||||||
|
shell=C:\COMMAND.COM C:\ /p /e:8198
|
||||||
|
|
||||||
|
Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
|
||||||
|
'bin' directoy.
|
||||||
|
|
||||||
|
c:\DevStudio\VC\bin\vcvars32.bat
|
||||||
|
|
||||||
|
Modify the D3D makefile to point at your SDK install. Example has the SDK
|
||||||
|
installed on my 'f' drive in the root.
|
||||||
|
|
||||||
|
file: \Mesa-3.0\src\makefile.d3d
|
||||||
|
|
||||||
|
SDKROOT=f:\mssdk
|
||||||
|
|
||||||
|
Now you can simply make the project. If you look in the makefile you can see
|
||||||
|
I have some different targets like 'install'.
|
||||||
|
|
||||||
|
nmake /f makefile.d3d
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
----
|
||||||
|
|
||||||
|
1) I don't think the driver is using my DirectX driver.
|
||||||
|
|
||||||
|
This maybe true as the current version will only select the Primary D3D driver
|
||||||
|
installed. If you 3D card is the secondary (3dfx) then your out of luck for this
|
||||||
|
release.
|
||||||
|
|
||||||
|
2) The driver seems like its not HW accelerated.
|
||||||
|
|
||||||
|
If you have a video card with limited memory then you might want to try and
|
||||||
|
change your destop resolution to a low setting (640x480x16) so that the 3D part
|
||||||
|
of the card has more resources. Remeber the driver can't make the card better...
|
||||||
|
|
||||||
|
3) Nothing works.
|
||||||
|
|
||||||
|
Make sure you have a DirectX '6' driver installed. Check you driver docs for this
|
||||||
|
info or use the SDK info utilities.
|
||||||
|
The final 'dll' is named opengl32.dll and is either in the same directory as the
|
||||||
|
OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
|
||||||
|
Check your destop resolution. Most DirectX 6 drivers will only support 16bit and
|
||||||
|
32bit color depth. To find out for sure you can check the DirectX Info Viewer in
|
||||||
|
the SDK.
|
||||||
|
|
||||||
|
|
||||||
|
4) Rendering doesn't look right.
|
||||||
|
|
||||||
|
Sometimes this is because the card doesn't support a feature that that is required.
|
||||||
|
This is usually due to unsupported alpha functions (test/blend) or texture mapping.
|
||||||
|
Some cards suffer from too small of an alpha channel. The driver does its best to
|
||||||
|
fallback on unsupported features. This is not to say the driver may not have a bug(s).
|
||||||
|
|
||||||
|
5) Textures look bad.
|
||||||
|
|
||||||
|
No mipmapping in this release.
|
||||||
|
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Brian Paul
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Leigh McRae (leigh@altsoftware.com)
|
||||||
|
February 9, 1999
|
||||||
|
|
||||||
26
docs/README.GGI
Normal file
26
docs/README.GGI
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
GGIMesa for LibGGI 2.x
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
-------------
|
||||||
|
LibGGI 2.0 or greater
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
-------------
|
||||||
|
To install GGIMesa, follow the instructions in INSTALL.GNU. If you
|
||||||
|
wish to install GGIGLUT as well, first install GGIMesa and then run
|
||||||
|
|
||||||
|
make
|
||||||
|
make install (must be root)
|
||||||
|
|
||||||
|
in ggi/ggiglut.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
------
|
||||||
|
|
||||||
|
* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG
|
||||||
|
to 255 to see lots of debugging output.
|
||||||
|
|
||||||
|
* GGIGLUT contains support for all of the GLUT 3.6 API except for the
|
||||||
|
high-level primitive drawing functions, but many of the functions (in
|
||||||
|
particular the menu drawing functions) are just stubs.
|
||||||
|
|
||||||
64
docs/README.LYNXOS
Normal file
64
docs/README.LYNXOS
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
Mesa 3.0 for LynxOS builds in the following way:
|
||||||
|
|
||||||
|
make lynxos
|
||||||
|
|
||||||
|
This will build all the libraries and demo applications. You should have
|
||||||
|
around 400 megabytes free for everything since everything is done with
|
||||||
|
static
|
||||||
|
libraries.
|
||||||
|
|
||||||
|
Before using this make file however, you should perform the following
|
||||||
|
actions:
|
||||||
|
0) cd to the Mesa-3.0 directory
|
||||||
|
1) Copy the GL directory under the include directory to /usr/include.
|
||||||
|
2) Copy the files in the lib directory to /lib.
|
||||||
|
3) Make links so that the Mesa libraries look like ordinary OpenGL
|
||||||
|
libraries
|
||||||
|
in /lib. This is important for compatibility with other OpenGL apps. This
|
||||||
|
is done as follows:
|
||||||
|
|
||||||
|
cd /lib
|
||||||
|
ln -s libMesaGL.a libGL.a
|
||||||
|
ln -s libMesaGLU.a libGLU.a
|
||||||
|
|
||||||
|
Mesa 3.0 includes the GLUT (GL Utility Toolkit) by default.
|
||||||
|
The demo applications are done using this toolkit.
|
||||||
|
|
||||||
|
Mesa makefiles for building their apps could be used as well, but the
|
||||||
|
following one is much more concise. Note that the order of the X libraries
|
||||||
|
is important to the linker so that all symbols get resolved correctly.
|
||||||
|
Changing the order may result in having to list a library twice to make
|
||||||
|
sure all linkages are made correctly.
|
||||||
|
|
||||||
|
----cut here for Makefile -----
|
||||||
|
|
||||||
|
FILES = your_app.x
|
||||||
|
|
||||||
|
SPECIAL_INCLUDES = -I/usr/include/GL
|
||||||
|
|
||||||
|
SPECIAL_CFLAGS = -g -ansi -pedantic -funroll-loops -ffast-math -DSHM
|
||||||
|
|
||||||
|
SPECIAL_LIBS = -lglut -lGLU -lGL -lm -L/usr/X11/lib -lXext -lXmu -lXi \
|
||||||
|
-lX11 -lbsd -g
|
||||||
|
|
||||||
|
STANDARD_OFILES = $(FILES:.x=.o)
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
gcc -c $(SPECIAL_CFLAGS) $(SPECIAL_INCLUDES) $< -o $@
|
||||||
|
|
||||||
|
all: $(STANDARD_OFILES)
|
||||||
|
gcc -o your_app $(STANDARD_OFILES) $(SPECIAL_LIBS)
|
||||||
|
|
||||||
|
|
||||||
|
----cut here for Makefile-----
|
||||||
|
|
||||||
|
I have tested Mesa under LynxOS 3.0 and 3.01. It should build fine under
|
||||||
|
other
|
||||||
|
versions as well. Note, however, that LynxOS versions prior to 3.0 are not
|
||||||
|
binary compatible, so you will have to rebuild from source.
|
||||||
|
|
||||||
|
|
||||||
|
Vik Sohal
|
||||||
|
vik@lynx.com
|
||||||
|
January 13, 1999
|
||||||
53
docs/README.MINGW32
Normal file
53
docs/README.MINGW32
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
August 30, 1998 -- Paul Garceau
|
||||||
|
Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
|
||||||
|
|
||||||
|
DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
|
||||||
|
to the general public. I can, in no way support or make any guarantee that the
|
||||||
|
build will work for your system.
|
||||||
|
|
||||||
|
The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
|
||||||
|
|
||||||
|
Feel free to modify or change things as you see fit, just remember that
|
||||||
|
I can't support any modifications you might want to make to the files which I
|
||||||
|
have included OR the lgpl protected Mesa 3-D Graphics Library.
|
||||||
|
|
||||||
|
I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
|
||||||
|
|
||||||
|
(ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
|
||||||
|
|
||||||
|
This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
|
||||||
|
|
||||||
|
I recommend using the GCC-2.95.2/Mingw32.
|
||||||
|
|
||||||
|
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
|
||||||
|
|
||||||
|
Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
|
||||||
|
and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
|
||||||
|
|
||||||
|
Installing GCC-2.95.2/Mingw32 Build:
|
||||||
|
|
||||||
|
a) Open the file archive (either tar.gz or .zip extensions)
|
||||||
|
|
||||||
|
b) Decide the directory you want to move the archived files to.
|
||||||
|
|
||||||
|
d) Extract the files from the archive.
|
||||||
|
|
||||||
|
e) Edit the mingw32.bat file to accomodate your choice of directory structure.
|
||||||
|
|
||||||
|
%mesaroot%: This is your root directory (Mesa-3.3)
|
||||||
|
%mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
|
||||||
|
%mesalib%: This is where the build will put libGL.a and libGLU.a
|
||||||
|
|
||||||
|
Running the Build:
|
||||||
|
|
||||||
|
Open your Command Prompt or MS-DOS prompt.
|
||||||
|
Go to your Mesa-3.3 'root' directory
|
||||||
|
At the command line type: mingw32
|
||||||
|
|
||||||
|
That's all there is to it.
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
Peace,
|
||||||
|
|
||||||
|
Paul G. (pgarceau@teleport.com)
|
||||||
102
docs/README.MITS
Normal file
102
docs/README.MITS
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
|
||||||
|
Mesa 3.0 MITS Information
|
||||||
|
|
||||||
|
|
||||||
|
This software is distributed under the terms of the GNU Library
|
||||||
|
General Public License, see the LICENSE file for details.
|
||||||
|
|
||||||
|
|
||||||
|
This document is a preliminary introduction to help you get
|
||||||
|
started. For more detaile information consult the web page.
|
||||||
|
|
||||||
|
http://10-dencies.zkm.de/~mesa/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Version 0.1 (Yes it's very alpha code so be warned!)
|
||||||
|
Contributors:
|
||||||
|
Emil Briggs (briggs@bucky.physics.ncsu.edu)
|
||||||
|
David Bucciarelli (tech.hmw@plus.it)
|
||||||
|
Andreas Schiffler (schiffler@zkm.de)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1. Requirements:
|
||||||
|
Mesa 3.0.
|
||||||
|
An SMP capable machine running Linux 2.x
|
||||||
|
libpthread installed on your machine.
|
||||||
|
|
||||||
|
|
||||||
|
2. What does MITS stand for?
|
||||||
|
MITS stands for Mesa Internal Threading System. By adding
|
||||||
|
internal threading to Mesa it should be possible to improve
|
||||||
|
performance of OpenGL applications on SMP machines.
|
||||||
|
|
||||||
|
|
||||||
|
3. Do applications have to be recoded to take advantage of MITS?
|
||||||
|
No. The threading is internal to Mesa and transparent to
|
||||||
|
applications.
|
||||||
|
|
||||||
|
|
||||||
|
4. Will all applications benefit from the current implementation of MITS?
|
||||||
|
No. This implementation splits the processing of the vertex buffer
|
||||||
|
over two threads. There is a certain amount of overhead involved
|
||||||
|
with the thread synchronization and if there is not enough work
|
||||||
|
to be done the extra overhead outweighs any speedup from using
|
||||||
|
dual processors. You will not for example see any speedup when
|
||||||
|
running Quake because it uses GL_POLYGON and there is only one
|
||||||
|
polygon for each vertex buffer processed. Test results on a
|
||||||
|
dual 200 Mhz. Pentium Pro system show that one needs around
|
||||||
|
100-200 vertices in the vertex buffer before any there is any
|
||||||
|
appreciable benefit from the threading.
|
||||||
|
|
||||||
|
|
||||||
|
5. Are there any parameters that I can tune to try to improve performance.
|
||||||
|
Yes. You can try to vary the size of the vertex buffer which is
|
||||||
|
define in VB_MAX located in the file src/vb.h from your top level
|
||||||
|
Mesa distribution. The number needs to be a multiple of 12 and
|
||||||
|
the optimum value will probably depend on the capabilities of
|
||||||
|
your machine and the particular application you are running.
|
||||||
|
|
||||||
|
|
||||||
|
6. Are there any ways I can modify the application to improve its
|
||||||
|
performance with the MITS?
|
||||||
|
Yes. Try to use as many vertices between each Begin/End pair
|
||||||
|
as possbile. This will reduce the thread synchronization
|
||||||
|
overhead.
|
||||||
|
|
||||||
|
|
||||||
|
7. What sort of speedups can I expect?
|
||||||
|
On some benchmarks performance gains of up to 30% have been
|
||||||
|
observerd. Others may see no gain at all and in a few rare
|
||||||
|
cases even some degradation.
|
||||||
|
|
||||||
|
|
||||||
|
8. What still needs to be done?
|
||||||
|
Lots of testing and benchmarking.
|
||||||
|
A portable implementation that works within the Mesa thread API.
|
||||||
|
Threading of additional areas of Mesa to improve performance
|
||||||
|
even more.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
|
||||||
|
1. This assumes that you already have a working Mesa 3.0 installation
|
||||||
|
from source.
|
||||||
|
2. Place the tarball MITS.tar.gz in your top level Mesa directory.
|
||||||
|
3. Unzip it and untar it. It will replace the following files in
|
||||||
|
your Mesa source tree so back them up if you want to save them.
|
||||||
|
|
||||||
|
|
||||||
|
README.MITS
|
||||||
|
Make-config
|
||||||
|
Makefile
|
||||||
|
mklib.glide
|
||||||
|
src/vbxform.c
|
||||||
|
src/vb.h
|
||||||
|
|
||||||
|
4. Rebuild Mesa using the command
|
||||||
|
|
||||||
|
make linux-386-glide-mits
|
||||||
|
|
||||||
6
docs/README.NeXT
Normal file
6
docs/README.NeXT
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
The NeXT support has now been incorporated into the OpenStep support.
|
||||||
|
You can build NeXT libraries simply by typing "make next", though before
|
||||||
|
linking they will need to be ranlib'd by hand. For more information see
|
||||||
|
the README.OpenStep file, together with the README files in OpenStep/Old_Demos.
|
||||||
|
|
||||||
|
-Pete French. (pete@ohm.york.ac.uk) 28/5/1998
|
||||||
96
docs/README.OS2
Normal file
96
docs/README.OS2
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
README for port of Mesa 3.x to XFree86 on OS/2 (X/2)
|
||||||
|
(as of 19990514)
|
||||||
|
|
||||||
|
|
||||||
|
Contents:
|
||||||
|
|
||||||
|
1) Binary release
|
||||||
|
2) Building from sources
|
||||||
|
3) History
|
||||||
|
4) Todo
|
||||||
|
5) Mesa Home Page
|
||||||
|
|
||||||
|
|
||||||
|
1) Binary release
|
||||||
|
|
||||||
|
Though the Mesa sources should build in a quite reasonable time even on
|
||||||
|
a 585 class machine a binary relase is available (check topic 4) for an URL)
|
||||||
|
This package includes:
|
||||||
|
|
||||||
|
- lib/MesaGL.dll, MesaGL.a
|
||||||
|
- lib/MesaGLU.dll, MesaGLU.a
|
||||||
|
- lib/glut.dll, glut.a
|
||||||
|
- include/GL/*.h
|
||||||
|
|
||||||
|
Installing this in your XFree86 tree will enable you to build and
|
||||||
|
run all applications compatible with Mesa (and the current DLL
|
||||||
|
interface, of course ;-)
|
||||||
|
As usual the OMF-style libraries can be created using emxomf.
|
||||||
|
(e.g. "emxomf foo.a" creates the foo.lib omf-style library).
|
||||||
|
The static libraries are rarely used and you have to rebuild
|
||||||
|
Mesa to get them. They're a supported target, so you get
|
||||||
|
them in a straightforward way (see below).
|
||||||
|
|
||||||
|
The testing of these libraries was limited to the supplied
|
||||||
|
demos/examples and a quite small number of third-party apps.
|
||||||
|
No warranty ... as usual ... ;-)
|
||||||
|
|
||||||
|
|
||||||
|
2) Instructions to build Mesa 3.x for XFree86/OS2 from sources:
|
||||||
|
|
||||||
|
Except the official Mesa source distribution you need:
|
||||||
|
- a recent version of XFree86 (3.3.x or above) including
|
||||||
|
the programming libraries
|
||||||
|
- EMX 0.9c (0.9d might work, never checked)
|
||||||
|
- GNU make
|
||||||
|
- REXX (!)
|
||||||
|
|
||||||
|
The creation of the DLLs as well as of the static libraries
|
||||||
|
(if you want to have them) is handled in "mklib-emx.cmd",
|
||||||
|
a small REXX script. Perhaps not the best idea, but this
|
||||||
|
way it fits best in the scheme used to build libraries
|
||||||
|
on all platforms in Mesa 3.x.
|
||||||
|
|
||||||
|
To actually build the libraries and demos, check mklib-emx.cmd
|
||||||
|
and modify it as desired. Then type
|
||||||
|
make os2-x11
|
||||||
|
and wait for completion ;-)
|
||||||
|
|
||||||
|
|
||||||
|
3) History
|
||||||
|
|
||||||
|
Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x
|
||||||
|
to XFree86 OS/2. This port might still be available from
|
||||||
|
http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html
|
||||||
|
|
||||||
|
The current port picked up things during the beta test for 3.0.
|
||||||
|
No major changes in the source were done. The build mechanism under OS/2
|
||||||
|
has been made very similar to other platforms (if you treat mklib-emx.cmd
|
||||||
|
as a "black box").
|
||||||
|
Advantage is that X/2 is now a valid target and all files are
|
||||||
|
integrated in the official source distribution.
|
||||||
|
Disadvantage is that this port (i.e. the DLLs' interface itself) is
|
||||||
|
definitly NOT COMPATIBLE to those of version 2.x.
|
||||||
|
It's uncertain whether this would be at all possible but since there
|
||||||
|
a _very_ few those apps it's not worth to find out anyway.
|
||||||
|
Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution,
|
||||||
|
and accordingly from the OS/2 port.
|
||||||
|
|
||||||
|
4) Todo
|
||||||
|
|
||||||
|
By now binary compatiblity is ensured by using the function names
|
||||||
|
as entry points instead of ordinals. This might cost performance and
|
||||||
|
is subject to change in future. In addition the supplied X86 assembler
|
||||||
|
source is not used yet.
|
||||||
|
|
||||||
|
5) Mesa Home Page
|
||||||
|
|
||||||
|
You can get the source code and more information about Mesa from
|
||||||
|
http://www.mesa3d.org/
|
||||||
|
|
||||||
|
The OS/2 ports should be available from
|
||||||
|
http://r350.ee.ntu.edu.tw/~hcchu/os2/ports
|
||||||
|
|
||||||
|
--
|
||||||
|
Alexander Mai
|
||||||
|
st002279@hrzpub.tu-darmstadt.de
|
||||||
35
docs/README.OpenStep
Normal file
35
docs/README.OpenStep
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
This is a port of the GL and GLU libraries to NeXT/Apple object
|
||||||
|
orientated systems. As these systems have their own window handling
|
||||||
|
systems we simply use the offscreen rendering capability of Mesa
|
||||||
|
to generate bitmaps which may then be displayed by the application
|
||||||
|
with a View as required. Example pieces of code may be found in the
|
||||||
|
OpenStep directory.
|
||||||
|
|
||||||
|
Sadly there are now a proliferation of different system that we need to
|
||||||
|
support compilation for: The original NextStep system, The OpenStep
|
||||||
|
system, the Rhapsody/Mac OS X system and also the windows implementations
|
||||||
|
of the latter two systems. This version of the code has been compiled and
|
||||||
|
tested under the following architectures:
|
||||||
|
|
||||||
|
NextStep 3.3
|
||||||
|
OpenStep 4.2
|
||||||
|
Rhapsody DR2
|
||||||
|
WebObjects for NT 3.5
|
||||||
|
WebObjects for NT 4.0
|
||||||
|
|
||||||
|
All tests were done with Intel processors. Feedback on other systems would,
|
||||||
|
however, be appreciated !
|
||||||
|
|
||||||
|
On UNIX systems simply type "make openstep". Under Windows systems
|
||||||
|
with WebObjects run the "win32-openstep.sh" script from within the Bourne
|
||||||
|
shell provided with the development environment. In both cases this will
|
||||||
|
build the libraries and place them into the "lib" directory. Some examples
|
||||||
|
may be found in the OpenStep directory showing how to use the code in an
|
||||||
|
actual application (MesaView) as well as some command line demos.
|
||||||
|
|
||||||
|
The CC variable may be specified on the command line for doing such things
|
||||||
|
as building FFAT libraries or using alternative compilers to the standard 'cc'
|
||||||
|
e.g. make CC='cc -arch m68k -arch i386' openstep" will build the libraries
|
||||||
|
with both intel and motorola architectures.
|
||||||
|
|
||||||
|
-Pete French. (pete@ohm.york.ac.uk) 7/6/1999
|
||||||
208
docs/README.QUAKE
Normal file
208
docs/README.QUAKE
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
|
||||||
|
Info on using Mesa 3.0 with Linux Quake I and Quake II
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Disclaimer
|
||||||
|
----------
|
||||||
|
|
||||||
|
I am _not_ a Quake expert by any means. I pretty much only run it to
|
||||||
|
test Mesa. There have been a lot of questions about Linux Quake and
|
||||||
|
Mesa so I'm trying to provide some useful info here. If this file
|
||||||
|
doesn't help you then you should look elsewhere for help. The Mesa
|
||||||
|
mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup
|
||||||
|
might be good.
|
||||||
|
|
||||||
|
Again, all the information I have is in this file. Please don't email
|
||||||
|
me with questions.
|
||||||
|
|
||||||
|
If you have information to contribute to this file please send it to
|
||||||
|
me at brianp@elastic.avid.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linux Quake
|
||||||
|
-----------
|
||||||
|
|
||||||
|
You can get Linux Quake from http://www.idsoftware.com/
|
||||||
|
|
||||||
|
Quake I and II for Linux were tested with, and include, Mesa 2.6. You
|
||||||
|
shouldn't have too many problems if you simply follow the instructions
|
||||||
|
in the Quake distribution.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RedHat 5.0 Linux problems
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas
|
||||||
|
previous RedHat and other Linux distributions use "libc5" for its
|
||||||
|
runtime C library.
|
||||||
|
|
||||||
|
Linux Quake I and II were compiled for libc5. If you compile Mesa
|
||||||
|
on a RedHat 5.x system the resulting libMesaGL.so file will not work
|
||||||
|
with Linux Quake because of the different C runtime libraries.
|
||||||
|
The symptom of this is a segmentation fault soon after starting Quake.
|
||||||
|
|
||||||
|
If you want to use a newer version of Mesa (like 3.x) with Quake on
|
||||||
|
RedHat 5.x then read on.
|
||||||
|
|
||||||
|
The solution to the C library problem is to force Mesa to use libc5.
|
||||||
|
libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems.
|
||||||
|
|
||||||
|
Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following
|
||||||
|
info:
|
||||||
|
|
||||||
|
> I only know what works on a RedHat 5.0 distribution. RH5 includes
|
||||||
|
> a full set of libraries for both libc5 and glibc. The loader ld.so
|
||||||
|
> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs
|
||||||
|
> linked against libc5 while it uses the glibc libraries in /lib and
|
||||||
|
> /usr/lib for programs linked against glibc.
|
||||||
|
>
|
||||||
|
> Anyway I changed line 41 of mklib.glide to
|
||||||
|
> GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib"
|
||||||
|
>
|
||||||
|
> And I started quake2 up with a script like this
|
||||||
|
> #!/bin/csh
|
||||||
|
> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib
|
||||||
|
> setenv MESA_GLX_FX f
|
||||||
|
> ./quake2 +set vid_ref gl
|
||||||
|
> kbd_mode -a
|
||||||
|
> reset
|
||||||
|
|
||||||
|
|
||||||
|
I've already patched the mklib.glide file. You'll have to start Quake
|
||||||
|
with the script shown above though.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**********************
|
||||||
|
|
||||||
|
Daryll Strauss writes:
|
||||||
|
|
||||||
|
Here's my thoughts on the problem. On a RH 5.x system, you can NOT build
|
||||||
|
a libc5 executable or library. Red Hat just doesn't include the right
|
||||||
|
stuff to do it.
|
||||||
|
|
||||||
|
Since Quake is a libc5 based application, you are in trouble. You need
|
||||||
|
libc5 libraries.
|
||||||
|
|
||||||
|
What can you do about it? Well there's a package called gcc5 that does
|
||||||
|
MOST of the right stuff to compile with libc5. (It brings back older
|
||||||
|
header files, makes appropriate symbolic links for libraries, and sets
|
||||||
|
up the compiler to use the correct directories) You can find gcc5 here:
|
||||||
|
ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm
|
||||||
|
|
||||||
|
No, this isn't quite enough. There are still a few tricks to getting
|
||||||
|
Mesa to compile as a libc5 application. First you have to make sure that
|
||||||
|
every compile uses gcc5 instead of gcc. Second, in some cases the link
|
||||||
|
line actually lists -L/usr/lib which breaks gcc5 (because it forces you
|
||||||
|
to use the glibc version of things)
|
||||||
|
|
||||||
|
If you get all the stuff correctly compiled with gcc5 it should work.
|
||||||
|
I've run Mesa 3.0B6 and its demos in a window with my Rush on a Red Hat
|
||||||
|
5.1 system. It is a big hassle, but it can be done. I've only made Quake
|
||||||
|
segfault, but I think that's from my libRush using the wrong libc.
|
||||||
|
|
||||||
|
Yes, mixing libc5 and glibc is a major pain. I've been working to get
|
||||||
|
all my libraries compiling correctly with this setup. Someone should
|
||||||
|
make an RPM out of it and feed changes back to Brian once they get it
|
||||||
|
all working. If no one else has done so by the time I get the rest of my
|
||||||
|
stuff straightened out, I'll try to do it myself.
|
||||||
|
|
||||||
|
- |Daryll
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*********************
|
||||||
|
|
||||||
|
David Bucciarelli (tech.hmw@plus.it) writes:
|
||||||
|
|
||||||
|
I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is
|
||||||
|
working fine for me. I had only to make a small change to the
|
||||||
|
Mesa-3.0/mklib.glide file, from:
|
||||||
|
|
||||||
|
|
||||||
|
GLIDELIBS="-L/usr/local/glide/lib -lglide2x
|
||||||
|
-L/usr/i486-linux-libc5/lib -lm"
|
||||||
|
|
||||||
|
to:
|
||||||
|
|
||||||
|
GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x"
|
||||||
|
|
||||||
|
and to make two symbolic links:
|
||||||
|
|
||||||
|
[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2
|
||||||
|
[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2
|
||||||
|
|
||||||
|
I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it
|
||||||
|
includes also the Glide for the libc5). I'm not using the /dev/3Dfx and
|
||||||
|
running QuakeII as root with the following env. var:
|
||||||
|
|
||||||
|
export
|
||||||
|
LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib
|
||||||
|
|
||||||
|
I think that all problems are related to the glibc, Quake will never
|
||||||
|
work if you get the following output:
|
||||||
|
|
||||||
|
[david@localhost Mesa]$ ldd lib/libMesaGL.so
|
||||||
|
libglide2x.so => /usr/lib/libglide2x.so (0x400f8000)
|
||||||
|
libm.so.6 => /lib/libm.so.6 (0x40244000)
|
||||||
|
libc.so.6 => /lib/libc.so.6 (0x4025d000)
|
||||||
|
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
|
||||||
|
|
||||||
|
You must get the following outputs:
|
||||||
|
|
||||||
|
[david@localhost Mesa]# ldd lib/libMesaGL.so
|
||||||
|
libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
|
||||||
|
(0x400f3000)
|
||||||
|
|
||||||
|
[root@localhost quake2]# ldd quake2
|
||||||
|
libdl.so.1 => /lib/libdl.so.1 (0x40005000)
|
||||||
|
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000)
|
||||||
|
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000)
|
||||||
|
|
||||||
|
[root@localhost quake2]# ldd ref_gl.so
|
||||||
|
libMesaGL.so.2 =>
|
||||||
|
/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000)
|
||||||
|
libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
|
||||||
|
(0x401d9000)
|
||||||
|
libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6
|
||||||
|
(0x40324000)
|
||||||
|
libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6
|
||||||
|
(0x403b7000)
|
||||||
|
libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1
|
||||||
|
(0x403c1000)
|
||||||
|
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000)
|
||||||
|
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000)
|
||||||
|
|
||||||
|
|
||||||
|
***********************
|
||||||
|
|
||||||
|
Steve Davies (steve@one47.demon.co.uk) writes:
|
||||||
|
|
||||||
|
|
||||||
|
Try using:
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
|
||||||
|
./quake2 +set vid_ref gl
|
||||||
|
|
||||||
|
to start the game... Works for me, but assumes that you have the
|
||||||
|
compatability libc5 RPMs installed.
|
||||||
|
|
||||||
|
|
||||||
|
***************************
|
||||||
|
|
||||||
|
WWW resources - you may find additional Linux Quake help at these URLs:
|
||||||
|
|
||||||
|
|
||||||
|
http://quake.medina.net/howto
|
||||||
|
|
||||||
|
http://webpages.mr.net/bobz
|
||||||
|
|
||||||
|
http://www.linuxgames.com/quake2/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: README.QUAKE,v 1.3 1998/08/23 15:26:26 brianp Exp $
|
||||||
52
docs/README.THREADS
Normal file
52
docs/README.THREADS
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
|
||||||
|
Mesa Threads README
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Thread safety was introduced in Mesa 2.6 by John Stone and
|
||||||
|
Christoph Poliwoda.
|
||||||
|
|
||||||
|
It was redesigned in Mesa 3.3 so that thread safety is
|
||||||
|
supported by default (on systems which support threads,
|
||||||
|
that is). There is no measurable penalty on single
|
||||||
|
threaded applications.
|
||||||
|
|
||||||
|
NOTE that the only _driver_ which is thread safe at this time
|
||||||
|
is the OS/Mesa driver!
|
||||||
|
|
||||||
|
|
||||||
|
At present the mthreads code supports three thread APIS:
|
||||||
|
1) POSIX threads (aka pthreads).
|
||||||
|
2) Solaris / Unix International threads.
|
||||||
|
3) Win32 threads (Win 95/NT).
|
||||||
|
|
||||||
|
Support for other thread libraries can be added src/glthread.[ch]
|
||||||
|
|
||||||
|
|
||||||
|
In order to guarantee proper operation, it is
|
||||||
|
necessary for both Mesa and application code to use the same threads API.
|
||||||
|
So, if your application uses Sun's thread API, then you should build Mesa
|
||||||
|
using one of the targets for Sun threads.
|
||||||
|
|
||||||
|
The mtdemos directory contains some example programs which use
|
||||||
|
multiple threads to render to osmesa rendering context(s).
|
||||||
|
|
||||||
|
Linux users should be aware that there exist many different POSIX
|
||||||
|
threads packages. The best solution is the linuxthreads package
|
||||||
|
(http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the
|
||||||
|
only one that really supports multiprocessor machines (AFAIK). See
|
||||||
|
http://pauillac.inria.fr/~xleroy/linuxthreads/README for further
|
||||||
|
information about the usage of linuxthreads.
|
||||||
|
|
||||||
|
If you are interested in helping with thread safety work in Mesa
|
||||||
|
join the Mesa developers mailing list and post your proposal.
|
||||||
|
|
||||||
|
|
||||||
|
Regards,
|
||||||
|
John Stone -- j.stone@acm.org johns@cs.umr.edu
|
||||||
|
Christoph Poliwoda -- poliwoda@volumegraphics.com
|
||||||
|
|
||||||
|
|
||||||
|
Version info:
|
||||||
|
Mesa 2.6 - initial thread support.
|
||||||
|
Mesa 3.3 - thread support mostly rewritten (Brian Paul)
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
The software may implement third party technologies (e.g. third party
|
|
||||||
libraries) that are not licensed to you by AMD and for which you may need
|
|
||||||
to obtain licenses from other parties. Unless explicitly stated otherwise,
|
|
||||||
these third party technologies are not licensed hereunder. Such third
|
|
||||||
party technologies include, but are not limited, to H.264, H.265, HEVC, MPEG-2,
|
|
||||||
MPEG-4, AVC, and VC-1.
|
|
||||||
|
|
||||||
For MPEG-2 Encoding Products ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
|
|
||||||
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD FOR ENCODING VIDEO
|
|
||||||
INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY PROHIBITED WITHOUT A LICENSE
|
|
||||||
UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSES IS
|
|
||||||
AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers Green Circle, Suite 400E,
|
|
||||||
Greenwood Village, Colorado 80111 U.S.A.
|
|
||||||
|
|
||||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
|
|
||||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
|
|
||||||
COURSE OF USAGE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
|
|
||||||
ASSUMED BY YOU. Some jurisdictions do not allow the exclusion of implied
|
|
||||||
warranties, so the above exclusion may not apply to You.
|
|
||||||
|
|
||||||
LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT,
|
|
||||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
|
|
||||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
|
|
||||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES. In no event shall AMD's total liability to You
|
|
||||||
for all damages, losses, and causes of action (whether in contract, tort
|
|
||||||
(including negligence) or otherwise) exceed the amount of $100 USD. You agree
|
|
||||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
|
|
||||||
directors, officers, employees, affiliates or agents from and against any and
|
|
||||||
all loss, damage, liability and other expenses (including reasonable
|
|
||||||
attorneys' fees), resulting from Your use of the Software or violation of the
|
|
||||||
terms and conditions of this Agreement.
|
|
||||||
|
|
||||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
|
|
||||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
|
|
||||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
|
|
||||||
its successor. Use of the Software by the Government constitutes
|
|
||||||
acknowledgement of AMD's proprietary rights in them.
|
|
||||||
|
|
||||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
|
|
||||||
stated in the Software License Agreement.
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
The software may implement third party technologies (e.g. third party
|
|
||||||
libraries) that are not licensed to you by AMD and for which you may need
|
|
||||||
to obtain licenses from other parties. Unless explicitly stated otherwise,
|
|
||||||
these third party technologies are not licensed hereunder. Such third
|
|
||||||
party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4,
|
|
||||||
AVC, and VC-1.
|
|
||||||
|
|
||||||
For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
|
|
||||||
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY
|
|
||||||
PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT
|
|
||||||
PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers
|
|
||||||
Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A.
|
|
||||||
|
|
||||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
|
|
||||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
|
|
||||||
COURSE OF USAGE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
|
|
||||||
ASSUMED BY YOU. Some jurisdictions do not allow the exclusion of implied
|
|
||||||
warranties, so the above exclusion may not apply to You.
|
|
||||||
|
|
||||||
LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT,
|
|
||||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
|
|
||||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
|
|
||||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES. In no event shall AMD's total liability to You
|
|
||||||
for all damages, losses, and causes of action (whether in contract, tort
|
|
||||||
(including negligence) or otherwise) exceed the amount of $100 USD. You agree
|
|
||||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
|
|
||||||
directors, officers, employees, affiliates or agents from and against any and
|
|
||||||
all loss, damage, liability and other expenses (including reasonable
|
|
||||||
attorneys' fees), resulting from Your use of the Software or violation of the
|
|
||||||
terms and conditions of this Agreement.
|
|
||||||
|
|
||||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
|
|
||||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
|
|
||||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
|
|
||||||
its successor. Use of the Software by the Government constitutes
|
|
||||||
acknowledgement of AMD's proprietary rights in them.
|
|
||||||
|
|
||||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
|
|
||||||
stated in the Software License Agreement.
|
|
||||||
28
docs/README.VMS
Normal file
28
docs/README.VMS
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl)
|
||||||
|
|
||||||
|
|
||||||
|
The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but
|
||||||
|
probably also works for other versions.
|
||||||
|
|
||||||
|
At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB,
|
||||||
|
LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the
|
||||||
|
directory [.DEMOS] can be build.
|
||||||
|
However, feel free to create the missing "decrip.mms-files" in the other
|
||||||
|
directories.
|
||||||
|
|
||||||
|
The make files were tested
|
||||||
|
using the DIGITAL make utility called MMS. There is also a public domain
|
||||||
|
clone available (MMK) and I think, but it is not tested, that this
|
||||||
|
utility will give (hardly) any problem.
|
||||||
|
|
||||||
|
To make everything just type MMS (or MMK) in the main directory of
|
||||||
|
mesagl. For MMS the deafult makefile is called descrip.mms, and
|
||||||
|
that is what I have called it. I included alse some config files,
|
||||||
|
all having mms somewhere in the name which all the makefiles need
|
||||||
|
(just as your unix makefiles).
|
||||||
|
|
||||||
|
On Alpha platforms at default a sharable images for the libraries are created.
|
||||||
|
To get a static library make it by typing MMS/MACRO=(NOSHARE=1).
|
||||||
|
On VAX platforms only static libraries can be build.
|
||||||
|
|
||||||
@@ -1,64 +1,623 @@
|
|||||||
File: docs/README.WIN32
|
|
||||||
|
|
||||||
Last updated: 21 June 2013
|
Mesa/Readme.win32
|
||||||
|
|
||||||
|
Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com
|
||||||
|
|
||||||
Quick Start
|
*** What's New
|
||||||
----- -----
|
|
||||||
|
|
||||||
Windows drivers are build with SCons. Makefiles or Visual Studio projects are
|
- Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of
|
||||||
no longer shipped or supported.
|
Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual
|
||||||
|
executions tests with minimum requisite results (aka: things looked like
|
||||||
|
I expected them to).
|
||||||
|
|
||||||
Run
|
What did you expect, complete regression testing maybe?
|
||||||
|
|
||||||
scons libgl-gdi
|
- NASM build support. Any file in the project coded as a .S file will
|
||||||
|
automatically be recognized and built as a NASM-source assember file.
|
||||||
|
|
||||||
to build gallium based GDI driver.
|
To enable building using NASM, set the environment variable NASM to
|
||||||
|
indicate that command to execute to run nasm on a file. If NASM is in
|
||||||
|
your command search path then all this needs be set to is 'nasmw' -
|
||||||
|
otherwise you will need to include the complete drive and directory path.
|
||||||
|
|
||||||
This will work both with MSVS or Mingw.
|
NASM may be retrieved here: http://www.web-sites.co.uk/nasm/
|
||||||
|
|
||||||
|
- DevStudio projects suspended for compatability reasons: projects modified
|
||||||
|
by DevStudio 6 are not compatible with DevStudio 5.
|
||||||
|
|
||||||
Windows Drivers
|
These will slowly be rebuilt and put into CVS as I can.
|
||||||
------- -------
|
|
||||||
|
|
||||||
At this time, only the gallium GDI driver is known to work.
|
- Build environment change: The Glide SDK is no longer assumed to be in
|
||||||
|
the global INCLUDE/LIB environment vars, it is required that you set the
|
||||||
|
value 'GLIDE2X' as either an environment variable pointing to your Glide
|
||||||
|
SDK install directory or that you configure that as a build option to
|
||||||
|
nmake.exe when building fxmesagl32. Examples:
|
||||||
|
|
||||||
Source code also exists in the tree for other drivers in
|
nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32
|
||||||
src/mesa/drivers/windows, but the status of this code is unknown.
|
|
||||||
|
|
||||||
Recipe
|
<or>
|
||||||
------
|
|
||||||
|
|
||||||
Building on windows requires several open-source packages. These are
|
nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx
|
||||||
steps that work as of this writing.
|
|
||||||
|
|
||||||
- install python 2.7
|
<or>
|
||||||
- install scons (latest)
|
|
||||||
- install mingw, flex, and bison
|
|
||||||
- install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
|
|
||||||
get pywin32-218.4.win-amd64-py2.7.exe
|
|
||||||
- install git
|
|
||||||
- download mesa from git
|
|
||||||
see http://www.mesa3d.org/repository.html
|
|
||||||
- run scons
|
|
||||||
|
|
||||||
General
|
nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos
|
||||||
-------
|
|
||||||
|
|
||||||
After building, you can copy the above DLL files to a place in your
|
The DevStudio workspace files for 3Dfx OpenGL require the definition of
|
||||||
PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
|
GLIDE2SDK as an environment variable pointing to where your copy of the
|
||||||
in a system directory, place them in the same directory as the
|
Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do
|
||||||
executable(s). Be careful about accidentially overwriting files of
|
so (change the directories to match):
|
||||||
the same name in the SYSTEM32 directory.
|
|
||||||
|
|
||||||
The DLL files are built so that the external entry points use the
|
SET GLIDE2SDK=G:\SDK\GLIDE2X
|
||||||
stdcall calling convention.
|
|
||||||
|
|
||||||
Static LIB files are not built. The LIB files that are built with are
|
*** Legalese
|
||||||
the linker import files associated with the DLL files.
|
|
||||||
|
|
||||||
The si-glu sources are used to build the GLU libs. This was done
|
These build files are provided as-is and are submitted to be included with
|
||||||
mainly to get the better tessellator code.
|
the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian
|
||||||
|
Paul. These project build files are 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.
|
||||||
|
|
||||||
If you have a Windows-related build problem or question, please post
|
These project files are distributed in the hope that they will be useful,
|
||||||
to the mesa-dev or mesa-users list.
|
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.
|
||||||
|
|
||||||
|
*** Maintenance Responsiblity and Technical Support
|
||||||
|
|
||||||
|
While these files are now part of the Mesa core distribution please do NOT
|
||||||
|
contact Mr. Paul for help with them if you encounter problems as he can't
|
||||||
|
help you (currently). I will, however, attempt my straightforward best in
|
||||||
|
assisting anyone with using these files on their system. I can NOT
|
||||||
|
guarantee instant responses owing to other responsiblities, but I do try
|
||||||
|
dang hard to answer any mail w/in 24 hours. I may be contacted at the
|
||||||
|
above email address for the forseeable future.
|
||||||
|
|
||||||
|
-Ted
|
||||||
|
mailto://tjump@tertius.com
|
||||||
|
http://www.tertius.com/tjump
|
||||||
|
|
||||||
|
*** General Information
|
||||||
|
|
||||||
|
These build files facilitate convenient building of many variants of Mesa,
|
||||||
|
both as static link libraries (including mesaglu) and as dynamic link
|
||||||
|
libraries that in some cases may be used as "drop-in" replacements for
|
||||||
|
OpenGL32.DLL on both Windows95 and Windows NT.
|
||||||
|
|
||||||
|
The construction of the Win32 command-line build files and projects has
|
||||||
|
been something of a pet project of mine, and is based upon my own
|
||||||
|
"standard" Win32 build environment as supplied by the "nmake.mif" file.
|
||||||
|
They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows
|
||||||
|
NT 5.0 beta 1. The libraries that they generated have been tested (via the
|
||||||
|
demo programs) in a *limited* fashion on the above three systems, including
|
||||||
|
the 3Dfx versions.
|
||||||
|
|
||||||
|
The reason I went with command-line build environment instead of the more
|
||||||
|
convenient IDE-based project files is for two reasons: 1. These appear to
|
||||||
|
have some amount of portability between versions (the nmake syntax hasn't
|
||||||
|
changed much since Microsoft C 7.0) while the IDE project files seem to
|
||||||
|
change drastically each version. and 2. These are readable with any ascii
|
||||||
|
editor and such are better self-documentation of the file relationships for
|
||||||
|
more people such that it will facilitate supporting other Win32 compilers.
|
||||||
|
|
||||||
|
While these files only deal with building for x86 targeted code it *should*
|
||||||
|
be possible to add the necessary logic to them to build for the other MSVC
|
||||||
|
supported CPU targets, I simply have no hardware to test them on nor the
|
||||||
|
alternative compilers to build with.
|
||||||
|
|
||||||
|
*** Prerequisites for use
|
||||||
|
|
||||||
|
1. You must have a 32-bit Microsoft compiler installed. I have tested
|
||||||
|
this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor
|
||||||
|
(possibly no) modification to the nmake.mak and nmake.mif files this
|
||||||
|
sequence should work on Visual C 2.0 also. The workspace files
|
||||||
|
(mesalib.dsw and mesademos-*.dsw) and their included project files
|
||||||
|
(*.dsp) are specific to the DevStudio IDE - I have made no attempt at
|
||||||
|
building a VC4 IDE project set as I do not use that any more. Note
|
||||||
|
that the VC workspace files NO LONGER use NORE are dependant upon the
|
||||||
|
nmake.mak and nmake.mif files for construction of definition (*.DEF)
|
||||||
|
and resource (*.RC) files.
|
||||||
|
|
||||||
|
*** Visual C 4.x Users Warning ****
|
||||||
|
|
||||||
|
Note that early editions of VC4 do NOT have header files current enough
|
||||||
|
for use building this code base. If you are using VC4 you will either need
|
||||||
|
to get an update to version 4.2 *or* you may download the Platform SDK
|
||||||
|
directly from Microsoft's web site (www.microsoft.com) and update your
|
||||||
|
build environment that way.
|
||||||
|
|
||||||
|
*** Visual C 4.x Users Warning ****
|
||||||
|
|
||||||
|
2. You must have the PATH, INCLUDE, and LIB environment variables set
|
||||||
|
properly. With VC5 you can easily get this by executing the VCVARS32.BAT
|
||||||
|
file that was created for you upon installation. It is found in the
|
||||||
|
DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides
|
||||||
|
a similar batch file in it's BIN directory also.
|
||||||
|
|
||||||
|
3. (optional) If you're going to build for 3Dfx/Voodoo you will need to
|
||||||
|
have previously installed the Glide SDK version 2.3 or later, if I
|
||||||
|
recall. This may be retrieved from www.3dfx.com for no money and some
|
||||||
|
download time. ;-) These build files assume that you have the Glide SDK
|
||||||
|
added to the respective environment variables (LIB and INCLUDE).
|
||||||
|
|
||||||
|
4. (optional) If you're going to build for S3/Virge you will need the S3
|
||||||
|
Developers Toolkit which may be downloaded from www.s3.com for the price of
|
||||||
|
registering on-line and some time. NOTE: I can build the s3mesa.dll file to
|
||||||
|
completion, however the compilation of s3mesa.c currently generates a large
|
||||||
|
amount of compiler warnings and between that and the fact that I can not at
|
||||||
|
all test it I can make no claims to it's ability to execute. Again, like
|
||||||
|
the 3Dfx version before this, these build files assume you have the S3Dtk H
|
||||||
|
and LIB files in the path of their respective environment variables.
|
||||||
|
Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,
|
||||||
|
which should be able to build the s3mesa code base if it weren't for updates
|
||||||
|
being required in the S3 DD code support (Mesa-3.0/src/s3 directory).
|
||||||
|
|
||||||
|
I advise putting any include and lib files for secondary toolkits (Glide,
|
||||||
|
S3Tk, whatever) in their respective environment variables *before* the
|
||||||
|
Microsoft-assigned default values.
|
||||||
|
|
||||||
|
*** FAQ: Frequenty Asked Questions and Other Important Information ***
|
||||||
|
|
||||||
|
- When running the 3Dfx demos under Windows NT, they crash on exit, what's
|
||||||
|
up?
|
||||||
|
|
||||||
|
This is apparently a problem in Glide itself. The workaround is to go to
|
||||||
|
your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to
|
||||||
|
FXOEM2X.DL_ to prevent Glide from loading and initializing it upon
|
||||||
|
startup. This is known to be an issue with cards that do not have "TV
|
||||||
|
out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx
|
||||||
|
Reference boards, all using 3Dfx Reference Drivers version 2.53. Other
|
||||||
|
hardware/driver combinations will also likely exhibit this behavior.
|
||||||
|
|
||||||
|
- I'm having a problem building Mesa for static library linking.
|
||||||
|
|
||||||
|
This was caused by some incomplete testing on my part, and a fix is now
|
||||||
|
available in the form of an add-on to the base Mesa 3.0 release. The
|
||||||
|
file to get is:
|
||||||
|
|
||||||
|
via FTP download from: iris.ssec.wisc.edu
|
||||||
|
you want to go here: /pub/Mesa/patches_to_3.0/
|
||||||
|
you want to get file: Mesa-3.0-w32-static-fixes.tar.gz
|
||||||
|
|
||||||
|
This required a minor addition to INCLUDE/GL for a clean solution, the
|
||||||
|
file "include/gl/mesa_wgl.h" is automatically included by
|
||||||
|
"include/gl/gl.h" when a Win32 non-DLL build is in progress to provide
|
||||||
|
prototypes for the various wgl functions.
|
||||||
|
|
||||||
|
The only remaining hitch in this setup is that the 3Dfx build is not yet
|
||||||
|
running as a static build, because of problems with conflicts in
|
||||||
|
existance of the various GDI functions like ChoosePixelFormat,
|
||||||
|
etc. *sigh*
|
||||||
|
|
||||||
|
Anyway, the "allstatic" target now works as expected and builds all
|
||||||
|
book/sample/demos programs to boot. ;^)
|
||||||
|
|
||||||
|
- How do I get fxMesa to render in a window on the desktop instead of only
|
||||||
|
full-screen?
|
||||||
|
|
||||||
|
Use the Microsoft Windows fxMesa-in-a-window hack!
|
||||||
|
|
||||||
|
Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or
|
||||||
|
Voodoo2 hardware into a window on the desktop then all you need to do is
|
||||||
|
set the MESA_WGL_FX environment variable to anything other than
|
||||||
|
"fullscreen" and it will render into a window. If you wish to go
|
||||||
|
fullscreen then you only need to NOT have the environment variable, or
|
||||||
|
have it set to "fullscreen". You may also switch at runtime between
|
||||||
|
fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard
|
||||||
|
(unless the application using Mesa does something with those keystrokes,
|
||||||
|
of course).
|
||||||
|
|
||||||
|
As of 8/13/98 this should be running a LOT better for more people as a
|
||||||
|
low-compatability item was cleaned up which prevented it from working on
|
||||||
|
many (most?) display drivers under Windows 9x.
|
||||||
|
|
||||||
|
- I have my 3Dfx card hooked to it's own monitor and I want the output to
|
||||||
|
stay on even if I switch to another program, is this possible?
|
||||||
|
|
||||||
|
If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa
|
||||||
|
will never disable the Voodoo output on a Voodoo1 or Voodoo2 display
|
||||||
|
regardless of whether the fxMesa application is "current" or not. This
|
||||||
|
works regardless of whether it's rendering using the window hack
|
||||||
|
mentioned above or not.
|
||||||
|
|
||||||
|
- I want to run the Mesa demos on my Intel740 card using it's own OpenGL
|
||||||
|
acceleration, how do I do this?
|
||||||
|
|
||||||
|
Build GLUT standalone for use with system OpenGL and GLU drivers!
|
||||||
|
|
||||||
|
The Command-line project supports building all test/demo programs against
|
||||||
|
these drivers also! This allows you full use of GLUT on Windows using
|
||||||
|
hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"
|
||||||
|
directory of which only two programs will not run on "standard"
|
||||||
|
opengl. Note that there are a few of the sample programs which will NOT
|
||||||
|
work without Mesa as they directly call into Mesa instead of using the
|
||||||
|
extension mechanism.
|
||||||
|
|
||||||
|
*** Included programs that exhibit unfortunate or bad behavior
|
||||||
|
|
||||||
|
- demos/bounce - doesn't run on high-colors screens? It's requesting an
|
||||||
|
INDEX display from GLUT and that fails on my true-color desktop. Changing
|
||||||
|
this to _RGB let's the program work, but it doesn't display
|
||||||
|
properly. This is probably just an idiosyncracy of my machine though, as
|
||||||
|
if I test the program using GLUT for System OpenGL on my Intel740 OpenGL
|
||||||
|
accelerated machine it's just hunky-dory.
|
||||||
|
|
||||||
|
- demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)
|
||||||
|
|
||||||
|
- demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly
|
||||||
|
if the Close box on the window frame is pressed with the mouse. Go figure.
|
||||||
|
|
||||||
|
- book/aaindex - doesn't run, can't get pixel format, because it wants an
|
||||||
|
INDEX display maybe (but is okay on my Intel740 machine)?
|
||||||
|
|
||||||
|
- most of the book/* demos don't respond to ESC being pressed.
|
||||||
|
|
||||||
|
- 3dfx/demos/* - all demos run, however they all crash on exit. I've traced
|
||||||
|
this so far as to determine the call it's happening with. The crash comes
|
||||||
|
from within Glide during the processing of the grGlideShutdown() call, as
|
||||||
|
in invalid memory reference exception. I'm wondering if this is because
|
||||||
|
of some state or processing not being completed before the call. Dunno,
|
||||||
|
but putting grSstIdle() in just before grGlideShutdown() does NOT fix the
|
||||||
|
problem.
|
||||||
|
|
||||||
|
- 3dfx/demos/tunnel2 - does not run on my system even with SLI mode
|
||||||
|
disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?
|
||||||
|
|
||||||
|
*** Important Notes and Changing Default values
|
||||||
|
|
||||||
|
- The optimizer settings have been manually reworked in both command line
|
||||||
|
and DevStudio IDE files to hopefully prevent possible irrational code on
|
||||||
|
the part of the code generator. Formerly, it was configured for "/Ox",
|
||||||
|
now it is configured for safer handling at a slight potential performance
|
||||||
|
cost. This may not be required for Visual Studio 6 but I can't test that
|
||||||
|
(yet).
|
||||||
|
|
||||||
|
- These files build with the code targeted for Pentium processors and
|
||||||
|
8-byte structure padding.
|
||||||
|
|
||||||
|
- The IDE-built programs seem to be "happier" in that the command line
|
||||||
|
build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty
|
||||||
|
much everything may be built with either interface.
|
||||||
|
|
||||||
|
- The currently configured Mesa version is 3.1, and MesaDemos version is
|
||||||
|
the same. To change this permanently you will need to edit NMAKE.MAK and
|
||||||
|
change the lines that look like this (they start o/a line 116):
|
||||||
|
|
||||||
|
# Currently, Mesa is at rev 3.1 ...
|
||||||
|
#
|
||||||
|
!IF "$(MESAVER)" == ""
|
||||||
|
MESAVER=3.1
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# used in building all of the resource files for the Mesa DLLs
|
||||||
|
#
|
||||||
|
!IF "$(MESAFILEVER)" == ""
|
||||||
|
MESAFILEVER=3,1,0,0
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
- Currently the build files are configured to be used from a Win32
|
||||||
|
directory that is included inside the main Mesa-3.1 heirarchy.
|
||||||
|
|
||||||
|
- The build files are smart enough to find the files for the core lib, glu,
|
||||||
|
glut, and the various demo programs if they are unpacked in the current
|
||||||
|
Mesa-3.1 heirarchy, like this:
|
||||||
|
|
||||||
|
\Mesa-3.1
|
||||||
|
\Mesa-3.1\src
|
||||||
|
\Mesa-3.1\src-glu
|
||||||
|
\Mesa-3.1\src-glut
|
||||||
|
\Mesa-3.1\Win32
|
||||||
|
\Mesa-3.1\samples
|
||||||
|
\Mesa-3.1\demos
|
||||||
|
\Mesa-3.1\book
|
||||||
|
\Mesa-3.1\3Dfx\demos
|
||||||
|
|
||||||
|
... should work. This arose because my initial build tests for the
|
||||||
|
demo files were done before MesaDemos 2.6 had been released.
|
||||||
|
|
||||||
|
- With the exception of the static link libraries generated by this file
|
||||||
|
set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are
|
||||||
|
built against the "Multithreaded DLL" runtime - this means that they
|
||||||
|
require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.
|
||||||
|
|
||||||
|
** CHANGED 8/11/98 ***
|
||||||
|
|
||||||
|
Note also that the demos are all built aginst the "OpenGL32, GLU32, and
|
||||||
|
GLUT32" and as such they are fairly agnostic wrt: building against Mesa
|
||||||
|
for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.
|
||||||
|
|
||||||
|
If you want to build them for use on your system and your display card
|
||||||
|
provides full OpenGL acceleration (Permedia, Intel740, Intergraph,
|
||||||
|
whatever) then you only need to build GLUT prior to building any of the
|
||||||
|
demo programs. For convenience, the GLUT project is included in each of
|
||||||
|
the demo projects Workspace files for the DevStudio IDE builds BUT it is
|
||||||
|
not automatically built - you still need to build it first manually.
|
||||||
|
|
||||||
|
Note that if you have GLUT already installed on your system (gl/glut.h in
|
||||||
|
yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL
|
||||||
|
in your PATH) then you do NOT need to build GLUT prior to the test
|
||||||
|
programs.
|
||||||
|
|
||||||
|
- The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs
|
||||||
|
(mostly) fine on my PC (take that for what you want it)...
|
||||||
|
|
||||||
|
** CHANGED 8/11/98 ***
|
||||||
|
|
||||||
|
There is still something going on that causes Glide to crash on shutdown,
|
||||||
|
when I run fxMesa under Windows NT, however it does not appear to occur
|
||||||
|
under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*
|
||||||
|
|
||||||
|
- I can not test the S3 build as I have no machines available with Virge
|
||||||
|
based display cards.
|
||||||
|
|
||||||
|
- The multithreaded test code is *not* built as it requires pthreads and I
|
||||||
|
have as of yet spent not time trying to get that running. The latest word
|
||||||
|
that I saw WRT threading support on win32 was that they are intending to
|
||||||
|
support it natively within Win32 - so I'm waiting it out until they get
|
||||||
|
it done.
|
||||||
|
|
||||||
|
- Similarly, the 'xdemos' are not currently built because I haven't gotten
|
||||||
|
around to building the client libs for native win32 and getting it all
|
||||||
|
setup for use.
|
||||||
|
|
||||||
|
*** Output Files
|
||||||
|
|
||||||
|
All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,
|
||||||
|
with the exception of the fxMesaGL32 build which is placed in
|
||||||
|
Mesa-3./lib/FX and the executable images which are placed in their source
|
||||||
|
directories.
|
||||||
|
|
||||||
|
To be able to execute the various test programs, you will need to copy the
|
||||||
|
requisite DLL files into the same directory as the EXE files. Note that
|
||||||
|
most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -
|
||||||
|
just very slowly. The two programs which are hard-linked with the FX build
|
||||||
|
and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"
|
||||||
|
directly instead of via the extensions mechanism and "tunnel2" which uses
|
||||||
|
"fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards
|
||||||
|
installed in one system. Likewise, "paltex" directly uses the
|
||||||
|
"glColorTableEXT" extension and thus may not run on anything except
|
||||||
|
Mesa. If these applications used the proper extension mechanism they could
|
||||||
|
then be used on more than "just" fxMesa to good effect (for example, the
|
||||||
|
rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test
|
||||||
|
machine) under WinNT.
|
||||||
|
|
||||||
|
Because I'm anal about my computer and it's organization, and I like to
|
||||||
|
prevent collision between builds, each of the subprojects has their own
|
||||||
|
intermediate file directory inside .\win32\release (for example, when
|
||||||
|
building mesagl.lib all of it's intermediate files will be found in
|
||||||
|
.\win32\release\lib.mesagl). This makes it very easy to cleanup as you
|
||||||
|
only need to remove .\win32\release.
|
||||||
|
|
||||||
|
*** Okay, Enough, how do I build with this stuff already Ted!
|
||||||
|
|
||||||
|
Okay, no major calamity here. The basic way to use the project file is to
|
||||||
|
call it via NMAKE from the command line. The format is:
|
||||||
|
|
||||||
|
nmake[.exe] /f nmake.mak [options] [target]
|
||||||
|
|
||||||
|
The most likely [options] values you will use may be any combination of the
|
||||||
|
following:
|
||||||
|
|
||||||
|
DEBUG=1 or DEBUG=0
|
||||||
|
USE_CRTDLL=1 or USE_CRTDLL=0
|
||||||
|
|
||||||
|
Note that all three of these options are OFF by default.
|
||||||
|
|
||||||
|
The [target] includes but is not limited to the following (for full details
|
||||||
|
please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that
|
||||||
|
NMAKE.MIF is rather large and sometimes hard to follow):
|
||||||
|
|
||||||
|
--- convenience targets ---
|
||||||
|
|
||||||
|
all - builds everything
|
||||||
|
libfiles - builds all linking library files
|
||||||
|
progs - builds all executable images
|
||||||
|
|
||||||
|
--- library files, static and dynamic ---
|
||||||
|
|
||||||
|
mesagl - static lib build of Mesa core.
|
||||||
|
mesaglu - static lib build of MesaGLU core.
|
||||||
|
mesaglut - static lib build of Mesa GLUT core.
|
||||||
|
|
||||||
|
mesagl32 - dynamic lib build of Mesa core.
|
||||||
|
|
||||||
|
mesaglu32 - dynamic lib build of GLU core, generates
|
||||||
|
GLU32.DLL and/or GLU32d.DLL.
|
||||||
|
|
||||||
|
mesaglut32 - dynamic lib build of GLUT core, generates
|
||||||
|
GLUT32.DLL and/or GLUT32d.dll.
|
||||||
|
|
||||||
|
--- hardware accelerated mesa builds ---
|
||||||
|
|
||||||
|
fxmesagl32 - builds Mesa for use on top of the 3Dfx
|
||||||
|
Glide runtime libs
|
||||||
|
|
||||||
|
s3mesagl32 - builds mesa for use on top of the S3
|
||||||
|
'S3Tk' runtime libs.
|
||||||
|
|
||||||
|
--- executable images ---
|
||||||
|
|
||||||
|
progs.book - builds all programs in \book directory
|
||||||
|
progs.demos - builds all programs in \demos directory
|
||||||
|
progs.samples - builds all programs in \samples directory
|
||||||
|
|
||||||
|
These targets generate all of the programs in their respective
|
||||||
|
directories and link the executables against OpenGL32.DLL,
|
||||||
|
GLU32.DLL, and GLUT32.DLL (or their debug equivalents).
|
||||||
|
|
||||||
|
progs.3dfx.demos - builds all programs in \3dfx\demos directory
|
||||||
|
|
||||||
|
This target generates the 3Dfx/Demo executables, linking them
|
||||||
|
against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT
|
||||||
|
hard-bound to using Mesa per-se as you can simply NOT build the
|
||||||
|
Mesa core and GLU libraries.
|
||||||
|
|
||||||
|
--- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----
|
||||||
|
|
||||||
|
*** IMPORTANT SAFETY TIP: If you're going to build these variants of
|
||||||
|
GLUT then DO NOT build any other target libraries in this package
|
||||||
|
first, OR from the command line run the "nmake /f nmake.mak clean"
|
||||||
|
command first! This is because generation of the GLUT for SGI
|
||||||
|
OpenGL target libraries conflicts in naming with the static build
|
||||||
|
libraries of Mesa and it's supporting GLUT build.
|
||||||
|
|
||||||
|
Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for
|
||||||
|
use running against either Microsoft or SGI OpenGL for Window,
|
||||||
|
respectively. This allows for the general use of GLUT 3.7 on Windows
|
||||||
|
systems with fully compliant OpenGL.
|
||||||
|
|
||||||
|
You can build the GLUT DLL files either with the command line by
|
||||||
|
issuing either of these commands:
|
||||||
|
|
||||||
|
nmake /f nmake.mak glut.sysgl
|
||||||
|
|
||||||
|
<or>
|
||||||
|
|
||||||
|
nmake /f nmake.mak glut.sgigl
|
||||||
|
|
||||||
|
OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or
|
||||||
|
GLUT_SYSGL projects within the DevStudio IDE.
|
||||||
|
|
||||||
|
Unfortunately, the only way to build the test programs against this
|
||||||
|
build of GLUT is via the command line, and I will NOT be making
|
||||||
|
duplicate demo program projects for the IDE as it's just not worth it,
|
||||||
|
sorry.
|
||||||
|
|
||||||
|
To build the test programs against either MS or SGI OpenGL, you do so
|
||||||
|
via either of these two commands:
|
||||||
|
|
||||||
|
nmake /f nmake.mak progs.sysgl
|
||||||
|
|
||||||
|
<or>
|
||||||
|
|
||||||
|
nmake /f nmake.mak progs.sgigl
|
||||||
|
|
||||||
|
To use the GLUT-for-system-OpenGL in your own programs, you need to do
|
||||||
|
three things by way of preparation, after building GLUT of course:
|
||||||
|
|
||||||
|
1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one
|
||||||
|
likely candidate location would be in your
|
||||||
|
"DevStudio\VC\INCLUDE\GL" directory.
|
||||||
|
|
||||||
|
2. Copy the linking libraries to somewhere in your %LIB% path, one
|
||||||
|
likely candidate location would be in your "DevStudio\VC\LIB"
|
||||||
|
directory. The linking libraries you need to copy are as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
.\Release\GLUT32.LIB
|
||||||
|
.\Release\GLUT.LIB
|
||||||
|
.\Debug\GLUT32.LIB
|
||||||
|
.\Debug\GLUT.LIB
|
||||||
|
|
||||||
|
3. Copy the runtime libraries to somewhere in your %PATH%, one
|
||||||
|
likely candidate location would be in WINDOWS\SYSTEM. the files
|
||||||
|
that you should copy are as follows:
|
||||||
|
|
||||||
|
.\Release\GLUT32.DLL
|
||||||
|
.\Release\GLUT32.PDB
|
||||||
|
.\Release\GLUT.DLL
|
||||||
|
.\Release\GLUT.PDB
|
||||||
|
.\Debug\GLUT32d.DLL
|
||||||
|
.\Debug\GLUT32d.PDB
|
||||||
|
.\Debug\GLUTd.DLL
|
||||||
|
.\Debug\GLUTd.PDB
|
||||||
|
|
||||||
|
Some examples are in order ...
|
||||||
|
|
||||||
|
... build all dynamic-link libs using MSVCRT.DLL for C runtime:
|
||||||
|
|
||||||
|
nmake /f nmake.mak USE_CRTDLL=1 alldynamic
|
||||||
|
|
||||||
|
... To build all library variants and all test and demonstration
|
||||||
|
programs with the default settings you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak all
|
||||||
|
|
||||||
|
... to build all static link libs and nothing else you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak allstatic
|
||||||
|
|
||||||
|
... to build all non-accelerated dynamic link libs you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak alldynamic
|
||||||
|
|
||||||
|
... to build all 3Dfx targeted dynamic link libs you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak allaccel
|
||||||
|
|
||||||
|
... to build all S3 Virge targetd dynamic link libs you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak alls3
|
||||||
|
|
||||||
|
... to build all libraries, static and dynamic, in all versions
|
||||||
|
you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak libfiles
|
||||||
|
|
||||||
|
... to subsequently build all demo and test programs you do this:
|
||||||
|
|
||||||
|
nmake /f nmake.mak progs
|
||||||
|
|
||||||
|
... to cleanup all intermediate files you do this:
|
||||||
|
|
||||||
|
nmake /f clean
|
||||||
|
|
||||||
|
You get the picture. (I hope) ;^) You may also specify specify
|
||||||
|
single targets in a convenient fashion. The rule is simple, any of the
|
||||||
|
above named lib files, static or dynamic, may be built by providing it's
|
||||||
|
name on the command line as the target. Examples:
|
||||||
|
|
||||||
|
... to build only Mesa as OpenGL32.DLL ...
|
||||||
|
|
||||||
|
nmake /f nmake.mak opengl32
|
||||||
|
|
||||||
|
... to build only Mesa on top of the 3Dfx Glide API ...
|
||||||
|
|
||||||
|
nmake /f nmake.mak fxMesaGL32
|
||||||
|
<or>
|
||||||
|
nmake /f nmake.mak fxMesaGL
|
||||||
|
|
||||||
|
... to build only Mesa on top of the S3 Toolkit ...
|
||||||
|
|
||||||
|
nmake /f nmake.mak s3MesaGL32
|
||||||
|
<or>
|
||||||
|
nmake /f nmake.mak s3mesaGL
|
||||||
|
|
||||||
|
*** Revision history for ./win32 project files
|
||||||
|
|
||||||
|
1/18/98 - initial cut submitted and included with core mesa
|
||||||
|
2/5/98 - fixed internal dependency within nmake.mif upon there being
|
||||||
|
a $(DEVDIR) variable to make some temporary batch files
|
||||||
|
dependant upon (thanks to Keven T. McDonnell for finding
|
||||||
|
that there was this particular bug). I also updated the
|
||||||
|
build files for 2.6beta6.
|
||||||
|
2/8/98 - added DevStudio workspace and project files for all lib
|
||||||
|
files and some test programs. Updated readme.win32.
|
||||||
|
6/25/98 - initial revision for Mesa 3.0, does not include IDE files,
|
||||||
|
not everything is running. *sigh*
|
||||||
|
7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and
|
||||||
|
minimally tested, all demo programs built and minimally
|
||||||
|
tested to within limits of my PC. ;^) Eveything looks
|
||||||
|
MUCH better now ...
|
||||||
|
7/30/98 - Minor updates/edits based upon feedback from
|
||||||
|
Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix
|
||||||
|
to the Mesa-on-3Dfx build such that Quake-II now runs almost
|
||||||
|
properly on my system. It runs, just *very* slowly and with *no*
|
||||||
|
textures. Hmmm. Doesn't make any difference whether Quake is set
|
||||||
|
to use 8-bit textures or not.
|
||||||
|
8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and
|
||||||
|
compatability fix in fxapi.c for in-window rendering using 3Dfx
|
||||||
|
hardware.
|
||||||
|
8/26/98 - Final revisions for Mesa 3 release checked
|
||||||
|
9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets
|
||||||
|
9/29/98 - Reorganized FAQ information and added Added faq entry about Glide
|
||||||
|
bug under NT (crash on exit) and a workaround.
|
||||||
|
11/21/98 - Updated files for Mesa 3.1 beta 1
|
||||||
|
Updated fxMesa window-hack code
|
||||||
|
Updated fxMesa resolution support to handle 1600x1200 & 1280x1024
|
||||||
|
7/9/99 - Rev'd for Mesa 3.1 beta 2
|
||||||
326
docs/README.X11
Normal file
326
docs/README.X11
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
|
||||||
|
Mesa 3.4 Unix/X11 Information
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
There are two ways to compile Mesa on Unix/X11 systems:
|
||||||
|
|
||||||
|
1. The old way:
|
||||||
|
First type 'make' alone to see the list of system
|
||||||
|
configurations currently supported. If you see your configuration on the
|
||||||
|
list, type 'make <config>'. Most popular Unix/X workstations are currently
|
||||||
|
supported.
|
||||||
|
|
||||||
|
If your system configuration is not listed by 'make', you'll have to modify
|
||||||
|
the top-level Makefile and Make-config files. There are instructions in
|
||||||
|
each file.
|
||||||
|
|
||||||
|
|
||||||
|
2. The new way:
|
||||||
|
Type './configure' and then 'make'. This uses GNU autoconfig.
|
||||||
|
See docs/INSTALL for more details.
|
||||||
|
|
||||||
|
|
||||||
|
The top-level makefile will execute the makefiles in a number of sub-
|
||||||
|
directories. When finished, the Mesa libraries will be in the Mesa-3.3/lib/
|
||||||
|
directory. A few GLUT demos in the demos/ directory should be ready to run.
|
||||||
|
|
||||||
|
If you also downloaded and unpacked the demos there should be executables
|
||||||
|
in the "xdemos/", "samples/", and "book/" directories for you to try out.
|
||||||
|
|
||||||
|
If you have compilation problems you should try to fix them and return the
|
||||||
|
patches to the author.
|
||||||
|
|
||||||
|
|
||||||
|
Notes on assembly language optimizations:
|
||||||
|
|
||||||
|
When using the old-style Makefiles, you can specify a configuration
|
||||||
|
that uses X86 assembly language optimizations (linux-3dnow for example).
|
||||||
|
|
||||||
|
The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at
|
||||||
|
runtime. That means you can compile Mesa for 3DNow! optimizations
|
||||||
|
even if you don't have an AMD CPU.
|
||||||
|
|
||||||
|
However, your Linux binutils and assembler must understand the
|
||||||
|
special instructions in order to compile them. If you have
|
||||||
|
compilation problems, try upgrading your binutils.
|
||||||
|
|
||||||
|
|
||||||
|
Header and library files:
|
||||||
|
After you've compiled Mesa and tried the demos I recommend the following
|
||||||
|
procedure for "installing" Mesa.
|
||||||
|
|
||||||
|
Copy the Mesa include/GL directory to /usr/local/include:
|
||||||
|
cp -r include/GL /usr/local/include
|
||||||
|
|
||||||
|
Copy the Mesa library files to /usr/local/lib:
|
||||||
|
cp lib/* /usr/local/lib
|
||||||
|
|
||||||
|
(actually, use "cp -d" on Linux to preserve symbolic links)
|
||||||
|
|
||||||
|
|
||||||
|
Xt/Motif widgets:
|
||||||
|
If you want to use Mesa or OpenGL in your Xt/Motif program you can build
|
||||||
|
the widgets found in either the widgets-mesa or widgets-sgi directories.
|
||||||
|
The former were written for Mesa and the later are the original SGI
|
||||||
|
widgets. Look in those directories for more information.
|
||||||
|
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
HP users: a Mesa user reports that the HP-UX 10.01 C compiler has
|
||||||
|
a bug which effects glReadPixels. A patch for the compiler (PHSS_5743) is
|
||||||
|
available. Otherwise be sure your compiler is version 10.13 or later.
|
||||||
|
|
||||||
|
QNX users: if you have problems running the demos try setting the
|
||||||
|
stack size to 200K or larger with -N200K, for example.
|
||||||
|
|
||||||
|
SunOS 5.x users: The X shared memory extension may not work
|
||||||
|
correctly. If Mesa prints an error message to the effect of "Shared memory
|
||||||
|
error" then you'll have to append the following three lines to the end of
|
||||||
|
your /etc/system file then reboot:
|
||||||
|
set shmsys:shminfo_shmmax = 0x2000000
|
||||||
|
set shmsys:shminfo_shmmni = 0x1000
|
||||||
|
set shmsys:shminfo_shmseg = 0x100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Using the library
|
||||||
|
=================
|
||||||
|
|
||||||
|
Configuration options:
|
||||||
|
The file src/config.h has many parameters which you can adjust such
|
||||||
|
as maximum number of lights, clipping planes, maximum texture size,
|
||||||
|
etc. In particular, you may want to change DEPTH_BITS from 16 to 32
|
||||||
|
if a 16-bit depth buffer isn't precise enough for your application.
|
||||||
|
|
||||||
|
|
||||||
|
Shared libraries:
|
||||||
|
If you compile shared libraries you may have to set an environment
|
||||||
|
variable to specify where the Mesa libraries are located. On Linux and
|
||||||
|
Sun systems for example, set the LD_LIBRARY_PATH variable to include
|
||||||
|
/your-dir/Mesa-2.6/lib. Otherwise, when you try to run a demo it
|
||||||
|
may fail with a message saying that one or more libraries couldn't be
|
||||||
|
found.
|
||||||
|
|
||||||
|
|
||||||
|
Remote display of OpenGL/GLX programs:
|
||||||
|
As of version 1.2.3, Mesa's header files use the same GLenum and GLUenum
|
||||||
|
values as SGI's (and most/all other vendor's) OpenGL headers. This means
|
||||||
|
you can freely mix object files compiled with OpenGL or Mesa headers.
|
||||||
|
In fact, on systems with dynamic runtime linkers it's possible to dynam-
|
||||||
|
ically link with Mesa or OpenGL shared libraries at runtime, without
|
||||||
|
recompiling or relinking anything!
|
||||||
|
|
||||||
|
Using IRIX 5.x as an example, you can run SGI's OpenGL demos with the
|
||||||
|
Mesa shared libraries as follows. Let's assume you're installing Mesa
|
||||||
|
in /usr/local/Mesa and using the C-shell:
|
||||||
|
% cd /usr/local/Mesa
|
||||||
|
% make irix5-dso
|
||||||
|
% setenv _RLD_LIST "/usr/local/Mesa/lib/libGL.so:DEFAULT"
|
||||||
|
% /usr/demos/bin/ideas_ogl // this is a test
|
||||||
|
|
||||||
|
You can now run OpenGL executables on almost any X display! There may
|
||||||
|
be some problems from the fact that Mesa supports many X visual types
|
||||||
|
that an OpenGL client may not expect (grayscale for example). In this
|
||||||
|
case the application may abort, print error messages, or just behave
|
||||||
|
strangely. You may have to experiment with the MESA_RGB_VISUAL envi-
|
||||||
|
ronment variable.
|
||||||
|
|
||||||
|
|
||||||
|
Xt/Motif Widgets:
|
||||||
|
Two versions of the Xt/Motif OpenGL drawing area widgets are included:
|
||||||
|
|
||||||
|
widgets-sgi/ SGI's stock widgets
|
||||||
|
widgets-mesa/ Mesa-tuned widgets
|
||||||
|
|
||||||
|
Look in those directories for details
|
||||||
|
|
||||||
|
|
||||||
|
Togl:
|
||||||
|
Togl is an OpenGL/Mesa widget for Tcl/Tk.
|
||||||
|
See http://togl.sourceforge.net for more information.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
X Display Modes:
|
||||||
|
Mesa supports RGB(A) rendering into almost any X visual type and depth.
|
||||||
|
|
||||||
|
The glXChooseVisual function tries its best to pick an appropriate visual
|
||||||
|
for the given attribute list. However, if this doesn't suit your needs
|
||||||
|
you can force Mesa to use any X visual you want (any supported by your
|
||||||
|
X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL
|
||||||
|
environment variables. When an RGB visual is requested, glXChooseVisual
|
||||||
|
will first look if the MESA_RGB_VISUAL variable is defined. If so, it
|
||||||
|
will try to use the specified visual. Similarly, when a color index
|
||||||
|
visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL
|
||||||
|
variable.
|
||||||
|
|
||||||
|
The format of accepted values is: <visual-class> <depth>
|
||||||
|
Here are some examples:
|
||||||
|
|
||||||
|
using the C-shell:
|
||||||
|
% setenv MESA_RGB_VISUAL "TrueColor 8" // 8-bit TrueColor
|
||||||
|
% setenv MESA_CI_VISUAL "PseudoColor 12" // 12-bit PseudoColor
|
||||||
|
% setenv MESA_RGB_VISUAL "PseudoColor 8" // 8-bit PseudoColor
|
||||||
|
|
||||||
|
using the KornShell:
|
||||||
|
$ export MESA_RGB_VISUAL="TrueColor 8"
|
||||||
|
$ export MESA_CI_VISUAL="PseudoColor 12"
|
||||||
|
$ export MESA_RGB_VISUAL="PseudoColor 8"
|
||||||
|
|
||||||
|
|
||||||
|
Double buffering:
|
||||||
|
Mesa can use either an X Pixmap or XImage as the backbuffer when in
|
||||||
|
double buffer mode. Using GLX, the default is to use an XImage. The
|
||||||
|
MESA_BACK_BUFFER environment variable can override this. The valid
|
||||||
|
values for MESA_BACK_BUFFER are: Pixmap and XImage (only the first
|
||||||
|
letter is checked, case doesn't matter).
|
||||||
|
|
||||||
|
A pixmap is faster when drawing simple lines and polygons while an
|
||||||
|
XImage is faster when Mesa has to do pixel-by-pixel rendering. If you
|
||||||
|
need depth buffering the XImage will almost surely be faster. Exper-
|
||||||
|
iment with the MESA_BACK_BUFFER variable to see which is faster for
|
||||||
|
your application.
|
||||||
|
|
||||||
|
|
||||||
|
Colormaps:
|
||||||
|
When using Mesa directly or with GLX, it's up to the application writer
|
||||||
|
to create a window with an appropriate colormap. The aux, tk, and GLUT
|
||||||
|
toolkits try to minimize colormap "flashing" by sharing colormaps when
|
||||||
|
possible. Specifically, if the visual and depth of the window matches
|
||||||
|
that of the root window, the root window's colormap will be shared by
|
||||||
|
the Mesa window. Otherwise, a new, private colormap will be allocated.
|
||||||
|
|
||||||
|
When sharing the root colormap, Mesa may be unable to allocate the colors
|
||||||
|
it needs, resulting in poor color quality. This can happen when a
|
||||||
|
large number of colorcells in the root colormap are already allocated.
|
||||||
|
To prevent colormap sharing in aux, tk and GLUT, define the environment
|
||||||
|
variable MESA_PRIVATE_CMAP. The value isn't significant.
|
||||||
|
|
||||||
|
|
||||||
|
Gamma correction:
|
||||||
|
To compensate for the nonlinear relationship between pixel values
|
||||||
|
and displayed intensities, there is a gamma correction feature in
|
||||||
|
Mesa. Some systems, such as Silicon Graphics, support gamma
|
||||||
|
correction in hardware (man gamma) so you won't need to use Mesa's
|
||||||
|
gamma facility. Other systems, however, may need gamma adjustment
|
||||||
|
to produce images which look correct. If in the past you thought
|
||||||
|
Mesa's images were too dim, read on.
|
||||||
|
|
||||||
|
Gamma correction is controlled with the MESA_GAMMA environment
|
||||||
|
variable. Its value is of the form "Gr Gg Gb" or just "G" where
|
||||||
|
Gr is the red gamma value, Gg is the green gamma value, Gb is the
|
||||||
|
blue gamma value and G is one gamma value to use for all three
|
||||||
|
channels. Each value is a positive real number typically in the
|
||||||
|
range 1.0 to 2.5. The defaults are all 1.0, effectively disabling
|
||||||
|
gamma correction. Examples using csh:
|
||||||
|
|
||||||
|
% setenv MESA_GAMMA "2.3 2.2 2.4" // separate R,G,B values
|
||||||
|
% setenv MESA_GAMMA "2.0" // same gamma for R,G,B
|
||||||
|
|
||||||
|
The demos/gamma.c program may help you to determine reasonable gamma
|
||||||
|
value for your display. With correct gamma values, the color intensities
|
||||||
|
displayed in the top row (drawn by dithering) should nearly match those
|
||||||
|
in the bottom row (drawn as grays).
|
||||||
|
|
||||||
|
Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well
|
||||||
|
on HP displays using the HP-ColorRecovery technology.
|
||||||
|
|
||||||
|
Mesa implements gamma correction with a lookup table which translates
|
||||||
|
a "linear" pixel value to a gamma-corrected pixel value. There is a
|
||||||
|
small performance penalty. Gamma correction only works in RGB mode.
|
||||||
|
Also be aware that pixel values read back from the frame buffer will
|
||||||
|
not be "un-corrected" so glReadPixels may not return the same data
|
||||||
|
drawn with glDrawPixels.
|
||||||
|
|
||||||
|
For more information about gamma correction see:
|
||||||
|
http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html
|
||||||
|
|
||||||
|
|
||||||
|
Overlay Planes
|
||||||
|
|
||||||
|
Overlay planes in the frame buffer are supported by Mesa but require
|
||||||
|
hardware and X server support. To determine if your X server has
|
||||||
|
overlay support you can test for the SERVER_OVERLAY_VISUALS property:
|
||||||
|
|
||||||
|
xprop -root | grep SERVER_OVERLAY_VISUALS
|
||||||
|
|
||||||
|
|
||||||
|
HPCR glClear(GL_COLOR_BUFFER_BIT) dithering
|
||||||
|
|
||||||
|
If you set the MESA_HPCR_CLEAR environment variable then dithering
|
||||||
|
will be used when clearing the color buffer. This is only applicable
|
||||||
|
to HP systems with the HPCR (Color Recovery) system.
|
||||||
|
|
||||||
|
|
||||||
|
Extensions:
|
||||||
|
The following OpenGL GLX extensions are currently implemented:
|
||||||
|
|
||||||
|
GLX_EXT_visual_info - GLX visual and transparent pixel extension
|
||||||
|
GLX_EXT_visual_rating - GLX visual caveats
|
||||||
|
|
||||||
|
For detailed information about the extensions see www.opengl.org
|
||||||
|
|
||||||
|
There are four Mesa-specific GL/GLX extensions at this time.
|
||||||
|
|
||||||
|
GLX_MESA_pixmap_colormap
|
||||||
|
|
||||||
|
This extension adds the GLX function:
|
||||||
|
|
||||||
|
GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
|
||||||
|
Pixmap pixmap, Colormap cmap )
|
||||||
|
|
||||||
|
It is an alternative to the standard glXCreateGLXPixmap() function.
|
||||||
|
Since Mesa supports RGB rendering into any X visual, not just True-
|
||||||
|
Color or DirectColor, Mesa needs colormap information to convert RGB
|
||||||
|
values into pixel values. An X window carries this information but a
|
||||||
|
pixmap does not. This function associates a colormap to a GLX pixmap.
|
||||||
|
See the xdemos/glxpixmap.c file for an example of how to use this
|
||||||
|
extension.
|
||||||
|
|
||||||
|
GLX_MESA_release_buffers
|
||||||
|
|
||||||
|
Mesa associates a set of ancillary (depth, accumulation, stencil and
|
||||||
|
alpha) buffers with each X window it draws into. These ancillary
|
||||||
|
buffers are allocated for each X window the first time the X window
|
||||||
|
is passed to glXMakeCurrent(). Mesa, however, can't detect when an
|
||||||
|
X window has been destroyed in order to free the ancillary buffers.
|
||||||
|
|
||||||
|
The best it can do is to check for recently destroyed windows whenever
|
||||||
|
the client calls the glXCreateContext() or glXDestroyContext()
|
||||||
|
functions. This may not be sufficient in all situations though.
|
||||||
|
|
||||||
|
The GLX_MESA_release_buffers extension allows a client to explicitly
|
||||||
|
deallocate the ancillary buffers by calling glxReleaseBuffersMESA()
|
||||||
|
just before an X window is destroyed. For example:
|
||||||
|
|
||||||
|
#ifdef GLX_MESA_release_buffers
|
||||||
|
glXReleaseBuffersMESA( dpy, window );
|
||||||
|
#endif
|
||||||
|
XDestroyWindow( dpy, window );
|
||||||
|
|
||||||
|
This extension is new in Mesa 2.0.
|
||||||
|
|
||||||
|
GLX_MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
This extension adds the glXCopySubBufferMESA() function. It works
|
||||||
|
like glXSwapBuffers() but only copies a sub-region of the window
|
||||||
|
instead of the whole window.
|
||||||
|
|
||||||
|
This extension is new in Mesa version 2.6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Summary of X-related environment variables:
|
||||||
|
MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
|
||||||
|
MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
|
||||||
|
MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
|
||||||
|
MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
|
||||||
|
MESA_GAMMA - gamma correction coefficients (X only)
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: README.X11,v 3.5.4.1 2000/11/02 18:05:34 brianp Exp $
|
||||||
146
docs/RELNOTES-3.1
Normal file
146
docs/RELNOTES-3.1
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
|
||||||
|
Mesa 3.1 release notes
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
New copyright
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Mesa 3.1 will be distributed under an XFree86-style copyright instead
|
||||||
|
of the GNU LGPL.
|
||||||
|
|
||||||
|
|
||||||
|
New directories
|
||||||
|
---------------
|
||||||
|
|
||||||
|
All documentation files are now in the docs/ directory.
|
||||||
|
All shell scripts are now in the bin/ directory.
|
||||||
|
|
||||||
|
|
||||||
|
New library names
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a)
|
||||||
|
and the GLU library was named libMesaGLU.so (or libMesaGLU.a).
|
||||||
|
|
||||||
|
Now, the main library is named libGL.so (or libGL.a) and the GLU library
|
||||||
|
is named libGLU.so (or libGLU.a).
|
||||||
|
|
||||||
|
The change allows Mesa to be more easily substituted for OpenGL.
|
||||||
|
Specifically, the linker/loader on some Unix-like systems won't
|
||||||
|
allow libMesaGL.so to be used instead of libGL.so if the application
|
||||||
|
was linked with the former.
|
||||||
|
|
||||||
|
Warning: if you have another OpenGL implementation installed on your
|
||||||
|
system (i.e. you have another OpenGL libGL.so) you'll have to be
|
||||||
|
carefull about which library (OpenGL or Mesa) you link against. Be
|
||||||
|
aware of -L linker flags and the value of the LD_LIBRARY_PATH environment
|
||||||
|
variable.
|
||||||
|
|
||||||
|
|
||||||
|
New library versioning
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Previously, the Mesa GL library was named libMesaGL.so.3.0
|
||||||
|
To better support Linux/OpenGL standards, the Mesa GL library is now
|
||||||
|
named libGL.so.1.2.030100 This indicates version 1.2 of the OpenGL spec
|
||||||
|
and Mesa implementation 3.1.0
|
||||||
|
|
||||||
|
In the long term this will allow better interoperability with other
|
||||||
|
OpenGL implementations, especially on Linux. In the short term,
|
||||||
|
OpenGL apps may have to be relinked to use the new library naming.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New makefiles
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The old Makefiles found in the various directories have been renamed
|
||||||
|
to Makefile.X11 in order to prevent filename collisions with autoconfig-
|
||||||
|
generated Makefiles.
|
||||||
|
|
||||||
|
The top-level Makefile simply includes Makefile.X11
|
||||||
|
If your top-level Makefile get's overwritten/destroyed you can restore
|
||||||
|
it by copying Makefile.X11 to Makefile
|
||||||
|
|
||||||
|
|
||||||
|
New extensions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
GL_EXT_stencil_wrap
|
||||||
|
Implements two new stencil operations: GL_INCR_WRAP_EXT and
|
||||||
|
GL_DECR_WRAP_EXT which allow stencil increment and decrement
|
||||||
|
without clamping.
|
||||||
|
|
||||||
|
GL_INGR_blend_func_separate
|
||||||
|
Allows specification of blend factors for RGB and Alpha independently.
|
||||||
|
(INGR = Intergraph)
|
||||||
|
|
||||||
|
GL_ARB_multitexture
|
||||||
|
Multiple simultaneous textures. (ARB = Architecture Review Board)
|
||||||
|
|
||||||
|
GL_NV_texgen_reflection
|
||||||
|
nVidia texgen extension for better reflection mapping.
|
||||||
|
|
||||||
|
GL_PGI_misc_hints
|
||||||
|
Assorted transformation hints.
|
||||||
|
|
||||||
|
GL_EXT_compiled_vertex_array
|
||||||
|
Compiled vertex arrays.
|
||||||
|
|
||||||
|
GL_EXT_clip_volume_hint
|
||||||
|
Allows one to disable clip volume (frustum) testing.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Extensions removed
|
||||||
|
------------------
|
||||||
|
|
||||||
|
GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Config file
|
||||||
|
-----------
|
||||||
|
|
||||||
|
By default, /etc/mesa.conf will be read when Mesa starts. This
|
||||||
|
file controls default hints, enable/disable of extensions, and
|
||||||
|
more. See the CONFIG file for documentation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Optimizations
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Keith Whitwell has contributed significant optimizations to Mesa's
|
||||||
|
vertex transformation code. Basically, the whole transformation
|
||||||
|
stage of Mesa has been rewritten.
|
||||||
|
|
||||||
|
It's impossible to give a speedup factor. You'll just have to
|
||||||
|
try your app and see how it performs.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
A bunch of new device driver functions have been added. See src/dd.h
|
||||||
|
Keith Harrison contributed many of them. I've been planning on adding
|
||||||
|
a bunch of functions like these to make writing hardware drivers easier.
|
||||||
|
More such function will probably be added in the near future.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
util/glstate.c has some handy functions for debugging. Basically, it
|
||||||
|
offers a simple function for printing GL state variables. It's not
|
||||||
|
finished yet. There's a LOT more GLenum records to be added (see the
|
||||||
|
code). Anyone want to help?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.1,v 1.2 2000/04/07 17:08:06 brianp Exp $
|
||||||
12
docs/RELNOTES-3.2
Normal file
12
docs/RELNOTES-3.2
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
Mesa 3.2 release notes
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
Mesa 3.2 is a stabilization of the Mesa 3.1 release. No new features
|
||||||
|
have been added. For a list of bug fixes please read the VERSIONS file.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.2,v 1.2 2000/04/07 17:08:06 brianp Exp $
|
||||||
32
docs/RELNOTES-3.2.1
Normal file
32
docs/RELNOTES-3.2.1
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
Mesa 3.2.1 release notes
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The Mesa 3.2.1 release mainly just fixes bugs since the 3.2 release.
|
||||||
|
See the VERSIONS file for the exact list.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GLU Polygon Tessellator
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The GLU tessellator has been reverted back to the version included
|
||||||
|
with Mesa 3.0 since it's more stable. The Mesa 3.1/3.2 tessellator
|
||||||
|
implemented the GLU 1.3 specification but suffered from a number of
|
||||||
|
bugs.
|
||||||
|
|
||||||
|
Mesa implements GLU 1.1.
|
||||||
|
|
||||||
|
Ideally, people should use the GLU 1.3 library included in SGI's
|
||||||
|
OpenGL Sample Implementation (SI) available from
|
||||||
|
http://oss.sgi.com/projects/ogl-sample/
|
||||||
|
People are working to make easy-to-install Linux RPMs of the
|
||||||
|
GLU library.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.2.1,v 1.2 2000/07/21 16:32:33 brianp Exp $
|
||||||
271
docs/RELNOTES-3.3
Normal file
271
docs/RELNOTES-3.3
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
|
||||||
|
Mesa 3.3 release notes
|
||||||
|
|
||||||
|
July 21, 2000
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Odd numbered versions (such as 3.3) designate new developmental releases.
|
||||||
|
Even numbered versions (such as 3.2.1) designate stable releases.
|
||||||
|
|
||||||
|
Mesa 3.3 has a undergone many internal changes since version 3.2
|
||||||
|
and features a lot of new extensions. 3.3 is expected to be pretty
|
||||||
|
stable, but perhaps not as stable as 3.2 which has been used by
|
||||||
|
thousands of users over the past months.
|
||||||
|
|
||||||
|
Everyone is encouraged to try Mesa 3.3. Bugs should be reported to
|
||||||
|
the Mesa bug database on www.sourceforge.net.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Header file / GLenum changes
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
The gl.h and glu.h headers now use #defines to define all GL_* tokens
|
||||||
|
instead of C-language enums. This change improves Mesa/OpenGL
|
||||||
|
interoperability.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New API dispatch code
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The core Mesa gl* functions are now implemented with a new dispatch
|
||||||
|
(jump table) which will allow simultaneous direct/indirect rendering.
|
||||||
|
|
||||||
|
The code is found in the glapi*.[ch] files.
|
||||||
|
|
||||||
|
Of interest: the actual "glFooBar" functions are generated with
|
||||||
|
templatized code defined in glapitemp.h and included by glapi.c
|
||||||
|
The glapitemp.h template should be reusable for all sorts of OpenGL
|
||||||
|
projects.
|
||||||
|
|
||||||
|
The new dispatch code has also optimized with x86 assembly code.
|
||||||
|
This optimization eliminates copying the function arguments during
|
||||||
|
dispatch.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New thread support
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Thread support in Mesa has been rewritten. The glthread.[ch] files
|
||||||
|
replace mthreads.[ch]. Thread safety is always enabled (on platforms
|
||||||
|
which support threads, that is). There is virtually no performance
|
||||||
|
penalty for typical single-thread applications. See the glapi.c
|
||||||
|
file for details.
|
||||||
|
|
||||||
|
The Xlib driver (XMesa) is now thread-safe as well. Be sure to
|
||||||
|
call XInitThreads() in your app first. See the xdemos/glthreads.c
|
||||||
|
demo for an example.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Make configuration changes
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
If you use the old-style (non GNU automake) method to build Mesa note
|
||||||
|
that several of the configuration names have changed:
|
||||||
|
|
||||||
|
Old name New name
|
||||||
|
------------- ----------------
|
||||||
|
linux-elf linux
|
||||||
|
linux linux-static
|
||||||
|
linux-386-elf linux-386
|
||||||
|
linux-386 linux-386-static
|
||||||
|
etc.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New extensions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
GL_ARB_transpose_matrix
|
||||||
|
Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
|
||||||
|
functions.
|
||||||
|
|
||||||
|
GL_ARB_texture_cube_map
|
||||||
|
For cube-based reflection mapping.
|
||||||
|
|
||||||
|
GL_EXT_texture_add_env
|
||||||
|
Adds GL_ADD texture environment mode.
|
||||||
|
See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
|
||||||
|
|
||||||
|
GL_EXT_texture_lod_bias
|
||||||
|
Allows mipmapped texture blurring and sharpening.
|
||||||
|
|
||||||
|
GLX_EXT_visual_rating extension
|
||||||
|
This extension has no effect in stand-alone Mesa (used for DRI).
|
||||||
|
|
||||||
|
GL_HP_occlusion_test
|
||||||
|
Used for bounding box occlusion testing (see demos/occlude.c).
|
||||||
|
|
||||||
|
GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
|
||||||
|
Lets glDraw/CopyPixels draw a texture coordinate image.
|
||||||
|
|
||||||
|
GL_SGI_color_matrix
|
||||||
|
Adds a color matrix and another set of scale and bias parameters
|
||||||
|
to the glDraw/CopyPixels paths.
|
||||||
|
|
||||||
|
GL_SGI_color_table
|
||||||
|
Adds additional color tables to the glDraw/Read/CopyPixels paths.
|
||||||
|
|
||||||
|
GL_EXT_histogram
|
||||||
|
Compute histograms for glDraw/Read/CopyPixels.
|
||||||
|
|
||||||
|
GL_EXT_blend_func_separate
|
||||||
|
This is the same as GL_INGR_blend_func_separate.
|
||||||
|
|
||||||
|
GL_ARB_texture_cube_mapping
|
||||||
|
6-face cube mapping, nicer than sphere mapping
|
||||||
|
|
||||||
|
GL_EXT_texture_env_combine
|
||||||
|
For advanced texture environment effects.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation for all these functions can be found at
|
||||||
|
http://oss.sgi.com/projects/ogl-sample/registry/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GLX_SGI_make_current_read functionality
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
The functionality of this extension is needed for GLX 1.3 (and required
|
||||||
|
for the Linux/OpenGL standards base).
|
||||||
|
|
||||||
|
Implementing this function required a **DEVICE DRIVER CHANGE**.
|
||||||
|
The old SetBuffer() function has been replaced by SetReadBuffer() and
|
||||||
|
SetDrawBuffer(). All device drivers will have to be updated because
|
||||||
|
of this change.
|
||||||
|
|
||||||
|
The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
|
||||||
|
The xdemos/wincopy.c program demonstrates it.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Image-related code changes
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
The imaging path code used by glDrawPixels, glTexImage[123]D,
|
||||||
|
glTexSubImage[123], etc has been rewritten. It's now faster,
|
||||||
|
uses less memory and has several bug fixes. This work was
|
||||||
|
actually started in Mesa 3.1 with the glTexImage paths but has now
|
||||||
|
been carried over to glDrawPixels as well.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device driver interface changes
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Added new functions for hardware stencil buffer support:
|
||||||
|
WriteStencilSpan
|
||||||
|
ReadStencilSpan
|
||||||
|
WriteStencilPixels
|
||||||
|
ReadStencilPixels
|
||||||
|
|
||||||
|
|
||||||
|
Removed old depth buffer functions:
|
||||||
|
AllocDepthBuffer
|
||||||
|
DepthTestSpan
|
||||||
|
DepthTestPixels
|
||||||
|
ReadDepthSpanFloat
|
||||||
|
ReadDepthSpanInt
|
||||||
|
|
||||||
|
|
||||||
|
Added new depth buffer functions:
|
||||||
|
WriteDepthSpan
|
||||||
|
ReadDepthSpan
|
||||||
|
WriteDepthPixels
|
||||||
|
ReadDepthPixels
|
||||||
|
|
||||||
|
These functions always read/write 32-bit GLuints. This will allow
|
||||||
|
drivers to have anywhere from 0 to 32-bit Z buffers without
|
||||||
|
recompiling for 16 vs 32 bits as was previously needed.
|
||||||
|
|
||||||
|
|
||||||
|
New texture image functions
|
||||||
|
The entire interface for texture image specification has been updated.
|
||||||
|
With the new functions, it's optional for Mesa to keep an internal copy
|
||||||
|
of all textures. Texture download should be a lot faster when the extra
|
||||||
|
copy isn't made.
|
||||||
|
|
||||||
|
Misc changes
|
||||||
|
TexEnv now takes a target argument
|
||||||
|
Removed UseGlobalTexturePalette (use Enable function instead)
|
||||||
|
|
||||||
|
|
||||||
|
Also added
|
||||||
|
ReadPixels
|
||||||
|
CopyPixels
|
||||||
|
|
||||||
|
|
||||||
|
The SetBufffer function has been replaced by SetDrawBuffer and
|
||||||
|
SetReadBuffer functions. This lets core Mesa independently
|
||||||
|
specify which buffer is to be used for reading and which for
|
||||||
|
drawing.
|
||||||
|
|
||||||
|
The Clear function's mask parameter has changed. Instead of
|
||||||
|
mask being the flags specified by the user to glClear, the
|
||||||
|
mask is now a bitmask of the DD_*_BIT flags in dd.h. Now
|
||||||
|
multiple color buffers can be specified for clearing (ala
|
||||||
|
glDrawBuffers). The driver's Clear function must also
|
||||||
|
check the glColorMask glIndexMask, and glStencilMask settings
|
||||||
|
and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa
|
||||||
|
drivers for examples.
|
||||||
|
|
||||||
|
|
||||||
|
The depth buffer changes shouldn't be hard to make for existing
|
||||||
|
drivers. In fact, it should simply the code. Be careful with
|
||||||
|
the depthBits value passed to gl_create_context(). 1 is a bad
|
||||||
|
value! It should normally be 0, 16, 24, or 32.
|
||||||
|
|
||||||
|
|
||||||
|
gl_create_framebuffer() takes new arguments which explicitly tell
|
||||||
|
core Mesa which ancillary buffers (depth, stencil, accum, alpha)
|
||||||
|
should be implemented in software. Mesa hardware drivers should
|
||||||
|
carefully set these flags depending on which buffers are in the
|
||||||
|
graphics card.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Internal constants
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Point and line size range and granularity limits are now stored
|
||||||
|
in the gl_constants struct, which is the Const member of GLcontext.
|
||||||
|
The limits are initialized from values in config.h but may be
|
||||||
|
overridden by device drivers to reflect the limits of that driver's
|
||||||
|
hardware.
|
||||||
|
|
||||||
|
Also added constants for NumAuxBuffers and SubPixelBits.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OpenGL Conformance
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Mesa now passes all the OpenGL 1.1 conformance tests, except for
|
||||||
|
antialiased lines. AA lines fail on some, but not all, the tests.
|
||||||
|
In order to fix the remaining failures, a new AA line algorithm will
|
||||||
|
be needed (which computes coverage values for end-point fragments).
|
||||||
|
This will be done for Mesa 3.5/3.6.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OpenGL 1.2 GL_ARB_imaging subset
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Mesa 3.3 implements all the features of GL_ARB_imaging except for
|
||||||
|
image convolution. This will (hopefully) be done for Mesa 3.5/3.6.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.3,v 1.8 2000/07/21 16:26:41 brianp Exp $
|
||||||
22
docs/RELNOTES-3.4
Normal file
22
docs/RELNOTES-3.4
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Mesa 3.4 release notes
|
||||||
|
|
||||||
|
November 3, 2000
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Odd numbered versions (such as 3.3) designate new developmental releases.
|
||||||
|
Even numbered versions (such as 3.4) designate stable releases.
|
||||||
|
|
||||||
|
Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release. For details,
|
||||||
|
see the VERSIONS file.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.4,v 1.1.2.2 2000/11/02 18:05:34 brianp Exp $
|
||||||
741
docs/VERSIONS
741
docs/VERSIONS
@@ -1,3 +1,4 @@
|
|||||||
|
$Id: VERSIONS,v 1.38.2.18 2000/11/03 02:39:00 brianp Exp $
|
||||||
|
|
||||||
|
|
||||||
Mesa Version History
|
Mesa Version History
|
||||||
@@ -103,7 +104,7 @@ Mesa Version History
|
|||||||
- Stencil-related functions now work in display lists
|
- Stencil-related functions now work in display lists
|
||||||
Changes:
|
Changes:
|
||||||
- renamed aux.h as glaux.h (MS-DOS names can't start with aux)
|
- renamed aux.h as glaux.h (MS-DOS names can't start with aux)
|
||||||
- most filenames are in 8.3 format to accommodate MS-DOS
|
- most filenames are in 8.3 format to accomodate MS-DOS
|
||||||
- use GLubytes to store arrays of colors instead of GLints
|
- use GLubytes to store arrays of colors instead of GLints
|
||||||
|
|
||||||
1.2.2 August 2, 1995
|
1.2.2 August 2, 1995
|
||||||
@@ -774,741 +775,3 @@ Mesa Version History
|
|||||||
Changes:
|
Changes:
|
||||||
- finished internal support for compressed textures for DRI
|
- finished internal support for compressed textures for DRI
|
||||||
|
|
||||||
|
|
||||||
3.4.1 February 14, 2001
|
|
||||||
New:
|
|
||||||
- fixed some Linux build problems
|
|
||||||
- fixed some Windows build problems
|
|
||||||
- GL_EXT_texture_env_dot3 extension (Gareth Hughes)
|
|
||||||
Bug fixes:
|
|
||||||
- added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
|
|
||||||
- various state-update code changes needed for DRI bugs
|
|
||||||
- disabled pixel transfer ops in glColorTable commands, not needed
|
|
||||||
- fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
|
|
||||||
- updated sources and fixed compile problems in widgets-mesa/
|
|
||||||
- GLX_PBUFFER enum value was wrong in glx.h
|
|
||||||
- fixed a glColorMaterial lighting bug
|
|
||||||
- fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
|
|
||||||
- glXCopySubBufferMESA() Y position was off by one
|
|
||||||
- Error checking of glTexSubImage3D() was broken (bug 128775)
|
|
||||||
- glPopAttrib() didn't restore all derived Mesa state correctly
|
|
||||||
- Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
|
|
||||||
conformance problems at 16bpp.
|
|
||||||
- clearing depth buffer with scissoring was broken, would segfault
|
|
||||||
- OSMesaGetDepthBuffer() returned bad bytesPerValue value
|
|
||||||
- fixed a line clipping bug (reported by Craig McDaniel)
|
|
||||||
- fixed RGB color over/underflow bug for very tiny triangles
|
|
||||||
Known problems:
|
|
||||||
- NURBS or evaluator surfaces inside display lists don't always work
|
|
||||||
|
|
||||||
|
|
||||||
3.4.2 May 17, 2001
|
|
||||||
Bug fixes:
|
|
||||||
- deleting the currently bound texture could cause bad problems
|
|
||||||
- using fog could result in random vertex alpha values
|
|
||||||
- AA triangle rendering could touch pixels outside right window bound
|
|
||||||
- fixed byteswapping problem in clear_32bit_ximage() function
|
|
||||||
- fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
|
|
||||||
- fixed memory leak in glXUseXFont()
|
|
||||||
- fragment sampling in AA triangle function was off by 1/2 pixel
|
|
||||||
- Windows: reading pixels from framebuffer didn't always work
|
|
||||||
- glConvolutionFilter2D could segfault or cause FP exception
|
|
||||||
- fixed segfaults in FX and X drivers when using tex unit 1 but not 0
|
|
||||||
- GL_NAND logicop didn't work right in RGBA mode
|
|
||||||
- fixed a memory corruption bug in vertex buffer reset code
|
|
||||||
- clearing the softwara alpha buffer with scissoring was broken
|
|
||||||
- fixed a few color index mode fog bugs
|
|
||||||
- fixed some bad assertions in color index mode
|
|
||||||
- fixed FX line 'stipple' bug #420091
|
|
||||||
- fixed stencil buffer clear width/height typo
|
|
||||||
- fixed GL error glitches in gl[Client]ActiveTextureARB()
|
|
||||||
- fixed Windows compilation problem in texutil.c
|
|
||||||
- fixed 1/8-pixel AA triangle sampling error
|
|
||||||
Changes:
|
|
||||||
- optimized writing mono-colored pixel spans to X pixmaps
|
|
||||||
- increased max viewport size to 2048 x 2048
|
|
||||||
|
|
||||||
|
|
||||||
3.5 June 21, 2001
|
|
||||||
New:
|
|
||||||
- internals of Mesa divided into modular pieces (Keith Whitwell)
|
|
||||||
- 100% OpenGL 1.2 conformance (passes all conformance tests)
|
|
||||||
- new AA line algorithm
|
|
||||||
- GL_EXT_convolution extension
|
|
||||||
- GL_ARB_imaging subset
|
|
||||||
- OSMesaCreateContextExt() function
|
|
||||||
- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
|
|
||||||
- GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
|
|
||||||
- GL_EXT_fog_coord extension (Keith Whitwell)
|
|
||||||
- GL_EXT_secondary_color extension (Keith Whitwell)
|
|
||||||
- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
|
|
||||||
- GL_SGIX_depth_texture extension
|
|
||||||
- GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
|
|
||||||
- demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
|
|
||||||
- GL_ARB_texture_env_combine extension
|
|
||||||
- GL_ARB_texture_env_dot3 extension
|
|
||||||
- GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
|
|
||||||
- OSMesaCreateContextExt() function
|
|
||||||
- libOSMesa.so library, contains the OSMesa driver interface
|
|
||||||
- GL/glxext.h header file for GLX extensions
|
|
||||||
- somewhat faster software texturing, fogging, depth testing
|
|
||||||
- all color-index conformance tests now pass (only 8bpp tested)
|
|
||||||
- SPARC assembly language TCL optimizations (David Miller)
|
|
||||||
- GL_SGIS_generate_mipmap extension
|
|
||||||
Bug Fixes:
|
|
||||||
- fbiRev and tmuRev were unitialized when using Glide3
|
|
||||||
- fixed a few color index mode conformance failures; all pass now
|
|
||||||
- now appling antialiasing coverage to alpha after texturing
|
|
||||||
- colors weren't getting clamped to [0,1] before color table lookup
|
|
||||||
- fixed RISC alignment errors caused by COPY_4UBV macro
|
|
||||||
- drawing wide, flat-shaded lines could cause a segfault
|
|
||||||
- vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
|
|
||||||
Changes:
|
|
||||||
- SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
|
|
||||||
- new libOSMesa.so library, contains the OSMesa driver interface
|
|
||||||
|
|
||||||
|
|
||||||
4.0 October 22, 2001
|
|
||||||
New:
|
|
||||||
- Mesa 4.0 implements the OpenGL 1.3 specification
|
|
||||||
- GL_IBM_rasterpos_clip extension
|
|
||||||
- GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
|
|
||||||
- GL_ARB_texture_mirrored_repeat extension
|
|
||||||
- WindML UGL driver (Stephane Raimbault)
|
|
||||||
- added OSMESA_MAX_WIDTH/HEIGHT queries
|
|
||||||
- attempted compiliation fixes for Solaris 5, 7 and 8
|
|
||||||
- updated glext.h and glxext.h files
|
|
||||||
- updated Windows driver (Karl Schultz)
|
|
||||||
Bug fixes:
|
|
||||||
- added some missing GLX 1.3 tokens to include/GL/glx.h
|
|
||||||
- GL_COLOR_MATRIX changes weren't recognized by teximage functions
|
|
||||||
- glCopyPixels with scale and bias was broken
|
|
||||||
- glRasterPos with lighting could segfault
|
|
||||||
- glDeleteTextures could leave a dangling pointer
|
|
||||||
- Proxy textures for cube maps didn't work
|
|
||||||
- fixed a number of 16-bit color channel bugs
|
|
||||||
- fixed a few minor memory leaks
|
|
||||||
- GLX context sharing was broken in 3.5
|
|
||||||
- fixed state-update bugs in glPopClientAttrib()
|
|
||||||
- fixed glDrawRangeElements() bug
|
|
||||||
- fixed a glPush/PopAttrib() bug related to texture binding
|
|
||||||
- flat-shaded, textured lines were broken
|
|
||||||
- fixed a dangling pointer problem in the XMesa code (Chris Burghart)
|
|
||||||
- lighting didn't always produce the correct alpha value
|
|
||||||
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
|
|
||||||
|
|
||||||
|
|
||||||
4.0.1 December 17, 2001
|
|
||||||
New:
|
|
||||||
- better sub-pixel sample positions for AA triangles (Ray Tice)
|
|
||||||
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
|
|
||||||
Bug fixes:
|
|
||||||
- added missing break statements in glGet*() for multisample cases
|
|
||||||
- fixed uninitialized hash table mutex bug (display lists / texobjs)
|
|
||||||
- fixed bad teximage error check conditional (bug 476846)
|
|
||||||
- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
|
|
||||||
- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
|
|
||||||
- silence some compiler warnings (gcc 2.96)
|
|
||||||
- enable the #define GL_VERSION_1_3 in GL/gl.h
|
|
||||||
- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
|
|
||||||
- fixed glu.h typedef problem found with MSDev 6.0
|
|
||||||
- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
|
|
||||||
- added missing 'const' to glXGetContextIDEXT() in glxext.h
|
|
||||||
- fixed a few glXGetProcAddress() errors (texture compression, etc)
|
|
||||||
- fixed start index bug in compiled vertex arrays (Keith)
|
|
||||||
- fixed compilation problems in src/SPARC/glapi_sparc.S
|
|
||||||
- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
|
|
||||||
- use glXGetProcAddressARB in GLUT to avoid extension linking problems
|
|
||||||
- provoking vertex of flat-shaded, color-index triangles was wrong
|
|
||||||
- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
|
|
||||||
- glTexParameter didn't flush the vertex buffer (Ray Tice)
|
|
||||||
- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
|
|
||||||
- fixed bug in normal length caching (ParaView lighting bug)
|
|
||||||
- fixed separate_specular color bug found in Chimera (18 Dec 2001)
|
|
||||||
|
|
||||||
|
|
||||||
4.0.2 April 2, 2002
|
|
||||||
New:
|
|
||||||
- New DOS (DJGPP) driver written by Daniel Borca
|
|
||||||
- New driver interface functions for TCL drivers (such as Radeon DRI)
|
|
||||||
- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
|
|
||||||
if using deep color channels
|
|
||||||
- latest GL/glext.h and GL/glxext.h headers from SGI
|
|
||||||
Bug fixes:
|
|
||||||
- GL_BLEND with non-black texture env color wasn't always correct
|
|
||||||
- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
|
|
||||||
- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
|
|
||||||
- glReadPixels was sometimes mistakenly clipped by the scissor box
|
|
||||||
- glDraw/ReadPixels didn't catch all the errors that they should have
|
|
||||||
- Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
|
|
||||||
- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
|
|
||||||
- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
|
|
||||||
- glColorMask as sometimes effecting glXSwapBuffers()
|
|
||||||
- fixed a potential bug in XMesaGarbageCollect()
|
|
||||||
- N threads rendering into one window didn't work reliably
|
|
||||||
- glCopyPixels didn't work for deep color channels
|
|
||||||
- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
|
|
||||||
- glPopAttrib() didn't correctly restore user clip planes
|
|
||||||
- user clip planes failed for some perspective projections (Chromium)
|
|
||||||
Known bugs:
|
|
||||||
- mipmap LOD computation
|
|
||||||
|
|
||||||
|
|
||||||
4.0.3 June 25, 2002
|
|
||||||
New:
|
|
||||||
- updated GL/glext.h file (version 15)
|
|
||||||
- corrected MMX blend code (Jose Fonseca)
|
|
||||||
- support for software-based alpha planes in Windows driver
|
|
||||||
- updated GGI driver (Filip Spacek)
|
|
||||||
Bug fixes:
|
|
||||||
- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
|
|
||||||
- OSMesaMakeCurrent() didn't recognize buffer size changes
|
|
||||||
- assorted conformance fixes for 16-bit/channel rendering
|
|
||||||
- texcombine alpha subtraction mode was broken
|
|
||||||
- fixed lighting bug with non-uniform scaling and display lists
|
|
||||||
- fixed bug when deleting shared display lists
|
|
||||||
- disabled SPARC cliptest assembly code (Mesa bug 544665)
|
|
||||||
- fixed a couple Solaris compilation/link problems
|
|
||||||
- blending clipped glDrawPixels didn't always work
|
|
||||||
- glGetTexImage() didn't accept packed pixel types
|
|
||||||
- glPixelMapu[is]v() could explode given too large of pixelmap
|
|
||||||
- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
|
|
||||||
- glXCopyContext() could lead to segfaults
|
|
||||||
- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
|
|
||||||
Changes:
|
|
||||||
- lots of C++ (g++) code clean-ups
|
|
||||||
- lots of T&L updates for the Radeon DRI driver
|
|
||||||
Known bugs:
|
|
||||||
- mipmap LOD computation (fixed for Mesa 4.1)
|
|
||||||
|
|
||||||
|
|
||||||
4.0.4 October 3, 2002
|
|
||||||
New:
|
|
||||||
- GL_NV_texture_rectangle extension
|
|
||||||
- updated glext.h header (version 17)
|
|
||||||
- updated DOS driver (Daniel Borca)
|
|
||||||
- updated BeOS R5 driver (Philippe Houdoin)
|
|
||||||
- added GL_IBM_texture_mirror_repeat
|
|
||||||
- glxinfo now takes -l option to print interesting OpenGL limits info
|
|
||||||
- GL_MESA_ycbcr_texture extension
|
|
||||||
- GL_APPLE_client_storage extension (for some DRI drivers only)
|
|
||||||
- GL_MESA_pack_invert extension
|
|
||||||
Bug fixes:
|
|
||||||
- fixed GL_LINEAR fog bug by adding clamping
|
|
||||||
- fixed FP exceptions found using Alpha CPU
|
|
||||||
- 3dfx MESA_GLX_FX=window (render to window) didn't work
|
|
||||||
- fixed memory leak in wglCreateContest (Karl Schultz)
|
|
||||||
- define GLAPIENTRY and GLAPI if undefined in glu.h
|
|
||||||
- wglGetProcAddress didn't handle all API functions
|
|
||||||
- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
|
|
||||||
- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
|
|
||||||
- error checking in compressed tex image functions had some glitches
|
|
||||||
- fixed AIX compile problem in src/config.c
|
|
||||||
- glGetTexImage was using pixel unpacking instead of packing params
|
|
||||||
- auto-mipmap generation for cube maps was incorrect
|
|
||||||
Changes:
|
|
||||||
- max texture units reduced to six to accommodate texture rectangles
|
|
||||||
- removed unfinished GL_MESA_sprite_point extension code
|
|
||||||
|
|
||||||
|
|
||||||
4.1 October 29, 2002
|
|
||||||
New:
|
|
||||||
- GL_NV_vertex_program extension
|
|
||||||
- GL_NV_vertex_program1_1 extension
|
|
||||||
- GL_ARB_window_pos extension
|
|
||||||
- GL_ARB_depth_texture extension
|
|
||||||
- GL_ARB_shadow extension
|
|
||||||
- GL_ARB_shadow_ambient extension
|
|
||||||
- GL_EXT_shadow_funcs extension
|
|
||||||
- GL_ARB_point_parameters extension
|
|
||||||
- GL_ARB_texture_env_crossbar
|
|
||||||
- GL_NV_point_sprite extension
|
|
||||||
- GL_NV_texture_rectangle extension
|
|
||||||
- GL_EXT_multi_draw_arrays extension
|
|
||||||
- GL_EXT_stencil_two_side extension
|
|
||||||
- GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
|
|
||||||
- GL_ATI_texture_mirror_once extension (Ian Romanick)
|
|
||||||
- massive overhaul/simplification of software rasterizer module,
|
|
||||||
many contributions from Klaus Niederkrueger
|
|
||||||
- faster software texturing in some cases (i.e. trilinear filtering)
|
|
||||||
- new OSMesaGetProcAddress() function
|
|
||||||
- more blend modes implemented with MMX code (Jose Fonseca)
|
|
||||||
- added glutGetProcAddress() to GLUT
|
|
||||||
- added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
|
|
||||||
- pbinfo and pbdemo PBuffer programs
|
|
||||||
- glxinfo -v prints transprent pixel info (Gerd Sussner)
|
|
||||||
Bug fixes:
|
|
||||||
- better mipmap LOD computation (prevents excessive blurriness)
|
|
||||||
- OSMesaMakeCurrent() didn't recognize buffer size changes
|
|
||||||
- assorted conformance fixes for 16-bit/channel rendering
|
|
||||||
- texcombine alpha subtraction mode was broken
|
|
||||||
- fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
|
|
||||||
- clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
|
|
||||||
- fixed divide by zero error in NURBS tessellator (Jon Perry)
|
|
||||||
- fixed GL_LINEAR fog bug by adding clamping
|
|
||||||
- fixed FP exceptions found using Alpha CPU
|
|
||||||
- 3dfx/glide driver render-to-window feature was broken
|
|
||||||
- added missing GLX_TRANSPARENT_RGB token to glx.h
|
|
||||||
- fixed error checking related to paletted textures
|
|
||||||
- fixed reference count error in glDeleteTextures (Randy Fayan)
|
|
||||||
Changes:
|
|
||||||
- New spec file and Python code to generate some GL dispatch files
|
|
||||||
- Glide driver defaults to "no" with autoconf/automake
|
|
||||||
- updated demos/stex3d with new options
|
|
||||||
|
|
||||||
|
|
||||||
5.0 November 13, 2002
|
|
||||||
New:
|
|
||||||
- OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
|
|
||||||
- removed some overlooked debugging code
|
|
||||||
- glxinfo updated to support GLX_ARB_multisample
|
|
||||||
- GLUT now support GLX_ARB_multisample
|
|
||||||
- updated DOS driver (Daniel Borca)
|
|
||||||
Bug fixes:
|
|
||||||
- GL_POINT and GL_LINE-mode polygons didn't obey cull state
|
|
||||||
- fixed potential bug in _mesa_align_malloc/calloc()
|
|
||||||
- fixed missing triangle bug when running vertex programs
|
|
||||||
- fixed a few HPUX compilation problems
|
|
||||||
- FX (Glide) driver didn't compile
|
|
||||||
- setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
|
|
||||||
- a few EXT functions, like glGenTexturesEXT, were no-ops
|
|
||||||
- a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
|
|
||||||
glMultiDrawArrays and glMultiDrawElements were missing
|
|
||||||
- glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
|
|
||||||
- Pentium 4 Mobile was mistakenly identified as having 3DNow!
|
|
||||||
- fixed one-bit error in point/line fragment Z calculation
|
|
||||||
- fixed potential segfault in fakeglx code
|
|
||||||
- fixed color overflow problem in DOT3 texture env mode
|
|
||||||
|
|
||||||
|
|
||||||
5.0.1 March 30, 2003
|
|
||||||
New:
|
|
||||||
- DOS driver updates from Daniel Borca
|
|
||||||
- updated GL/gl_mangle.h file (Bill Hoffman)
|
|
||||||
Bug fixes:
|
|
||||||
- auto mipmap generation for cube maps was broken (bug 641363)
|
|
||||||
- writing/clearing software alpha channels was unreliable
|
|
||||||
- minor compilation fixes for OS/2 (Evgeny Kotsuba)
|
|
||||||
- fixed some bad assertions found with shadowtex demo
|
|
||||||
- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
|
|
||||||
- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
|
|
||||||
- fixed potential segfault in texture object validation (bug 659012)
|
|
||||||
- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
|
|
||||||
- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
|
|
||||||
- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
|
|
||||||
- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
|
|
||||||
- fixed compilation problem on Solaris7/x86 (bug 536406)
|
|
||||||
- fixed prefetch bug in 3DNow! code (Felix Kuhling)
|
|
||||||
- fixed NeXT build problem (FABSF macro)
|
|
||||||
- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
|
|
||||||
- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
|
|
||||||
- AA line and triangle Z values are now rounded, not truncated
|
|
||||||
- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
|
|
||||||
- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
|
|
||||||
- fixed a minor GL_COLOR_MATERIAL bug
|
|
||||||
- NV vertex program EXP instruction was broken
|
|
||||||
- glColorMask misbehaved with X window / pixmap rendering
|
|
||||||
- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
|
|
||||||
- attempt to fix GGI compilation problem when MesaDemos not present
|
|
||||||
- NV vertex program ARL-relative fetches didn't work
|
|
||||||
Changes:
|
|
||||||
- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
|
|
||||||
- updated winpos and pointblast demos to use ARB extensions
|
|
||||||
- disable SPARC normal transformation code (bug 673938)
|
|
||||||
- GLU fixes for OS/2 (Evgeny Kotsuba)
|
|
||||||
|
|
||||||
|
|
||||||
5.0.2 September 5, 2003
|
|
||||||
Bug fixes:
|
|
||||||
- fixed texgen problem causing texcoord's Q to be zero (stex3d)
|
|
||||||
- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
|
|
||||||
- GL_CURRENT_MATRIX_NV query was wrong
|
|
||||||
- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
|
|
||||||
- GL_LIST_MODE query wasn't correct
|
|
||||||
- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
|
|
||||||
- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
|
|
||||||
- blended, wide lines didn't always work correctly (bug 711595)
|
|
||||||
- glVertexAttrib4svNV w component was always 1
|
|
||||||
- fixed bug in GL_IBM_rasterpos_clip (missing return)
|
|
||||||
- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
|
|
||||||
- a few Solaris compilation fixes
|
|
||||||
- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
|
|
||||||
- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
|
|
||||||
- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
|
|
||||||
- glFog() didn't clamp fog colors
|
|
||||||
- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
|
|
||||||
gl[Get]TexParameteri[v] functions
|
|
||||||
- fixed invalid memory references in glTexGen functions (bug 781602)
|
|
||||||
- integer-valued color arrays weren't handled correctly
|
|
||||||
- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
|
|
||||||
- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
|
|
||||||
Changes:
|
|
||||||
- build GLUT with -fexceptions so C++ apps propogate exceptions
|
|
||||||
|
|
||||||
|
|
||||||
5.1 December 17, 2003
|
|
||||||
New:
|
|
||||||
- reorganized directory tree
|
|
||||||
- GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
|
|
||||||
- GL_ATI_texture_env_combine3 extension (Ian Romanick)
|
|
||||||
- GL_SGI_texture_color_table extension (Eric Plante)
|
|
||||||
- GL_NV_fragment_program extension
|
|
||||||
- GL_NV_light_max_exponent extension
|
|
||||||
- GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
|
|
||||||
- GL_ARB_occlusion_query extension
|
|
||||||
- GL_ARB_point_sprite extension
|
|
||||||
- GL_ARB_texture_non_power_of_two extension
|
|
||||||
- GL_IBM_multimode_draw_arrays extension
|
|
||||||
- GL_EXT_texture_mirror_clamp extension (Ian Romanick)
|
|
||||||
- GL_ARB_vertex_buffer_object extension
|
|
||||||
- new X86 feature detection code (Petr Sebor)
|
|
||||||
- less memory used for display lists and vertex buffers
|
|
||||||
- demo of per-pixel lighting with a fragment program (demos/fplight.c)
|
|
||||||
- new version (18) of glext.h header
|
|
||||||
- new spriteblast.c demo of GL_ARB_point_sprite
|
|
||||||
- faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1)
|
|
||||||
- faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1)
|
|
||||||
Bug fixes:
|
|
||||||
- really enable OpenGL 1.4 features in DOS driver.
|
|
||||||
- fixed issues in glDrawPixels and glCopyPixels for very wide images
|
|
||||||
- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
|
|
||||||
- fixed some texgen bugs reported by Daniel Borca
|
|
||||||
- fixed wglMakeCurrent(NULL, NULL) bug (#835861)
|
|
||||||
- fixed glTexSubImage3D z-offset bug (Cedric Gautier)
|
|
||||||
- fixed RGBA blend enable bug (Ville Syrjala)
|
|
||||||
- glAccum is supposed to be a no-op in selection/feedback mode
|
|
||||||
- fixed texgen bug #597589 (John Popplewell)
|
|
||||||
Changes:
|
|
||||||
- dropped API trace feature (src/Trace/)
|
|
||||||
- documentation overhaul. merged with website content. more html.
|
|
||||||
- glxgears.c demo updated to use GLX swap rate extensions
|
|
||||||
- glTexImage1/2/3D now allows width/height/depth = 0
|
|
||||||
- disable SPARC asm code on Linux (bug 852204)
|
|
||||||
|
|
||||||
|
|
||||||
6.0 January 16, 2004
|
|
||||||
New:
|
|
||||||
- full OpenGL 1.5 support
|
|
||||||
- updated GL/glext.h file to version 21
|
|
||||||
Changes:
|
|
||||||
- changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
|
|
||||||
Bug fixes:
|
|
||||||
- fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
|
|
||||||
clamping issue
|
|
||||||
- updated suno5-gcc configs
|
|
||||||
- glColor3 functions sometimes resulted in undefined alpha values
|
|
||||||
- fixed FP divide by zero error seen on VMS with xlockmore, others
|
|
||||||
- fixed vertex/fragment program debug problem (bug 873011)
|
|
||||||
- building on AIX with gcc works now
|
|
||||||
- glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
|
|
||||||
- glDrawRangeElements tried to modify potentially read-only storage
|
|
||||||
- updated files for building on Windows
|
|
||||||
|
|
||||||
|
|
||||||
6.0.1 April 2, 2004
|
|
||||||
New:
|
|
||||||
- upgraded glext.h to version 22
|
|
||||||
- new build targets (Dan Schikore)
|
|
||||||
- new linux-x86-opteron build target (Heath Feather)
|
|
||||||
Bug fixes:
|
|
||||||
- glBindProgramARB didn't update all necessary state
|
|
||||||
- fixed build problems on OpenBSD
|
|
||||||
- omit CVS directories from tarballs
|
|
||||||
- glGetTexImage(GL_COLOR_INDEX) was broken
|
|
||||||
- fixed an infinite loop in t&l module
|
|
||||||
- silenced some valgrind warnings about using unitialized memory
|
|
||||||
- fixed some compilation/link glitches on IRIX (Mike Stephens)
|
|
||||||
- glBindProgram wasn't getting compiled into display lists
|
|
||||||
- GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
|
|
||||||
- two-sided lighting and vertex program didn't work (bug 887330)
|
|
||||||
- stores to program parameter registers in vertex state programs
|
|
||||||
didn't work.
|
|
||||||
- fixed glOrtho bug found with gcc 3.2.2 (RH9)
|
|
||||||
- glXCreateWindow() wasn't fully implemented (bug 890894)
|
|
||||||
- generic vertex attribute arrays didn't work in display lists
|
|
||||||
- vertex buffer objects' default usage and access fields were wrong
|
|
||||||
- glDrawArrays with start!=0 was broken
|
|
||||||
- fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
|
|
||||||
- linux-osmesa16-static config didn't work
|
|
||||||
- fixed a few color index rendering problems (bug 910687)
|
|
||||||
- glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
|
|
||||||
- OSMesa RGB and BGR modes were broken
|
|
||||||
- glProgramStringARB mistakenly required a null-terminated string
|
|
||||||
- fragment program XPD instruction was incorrect
|
|
||||||
- glGetMaterial() didn't work reliably
|
|
||||||
- ARB_fragment_program KIL instruction was incorrect
|
|
||||||
|
|
||||||
|
|
||||||
6.1 August 18, 2004
|
|
||||||
New:
|
|
||||||
- Revamped Makefile system
|
|
||||||
- glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
|
|
||||||
- internal driver interface changes related to texture object
|
|
||||||
allocation, vertex/fragment programs, BlendEquationSeparate, etc.
|
|
||||||
- option to walk triangle edges with double-precision floats
|
|
||||||
(Justin Novosad of Discreet) (see config.h file)
|
|
||||||
- support for AUX buffers in software GLX driver
|
|
||||||
- updated glext.h to version 24 and glxext.h to version 6
|
|
||||||
- new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
|
|
||||||
- updated BeOS support (Philippe Houdoin)
|
|
||||||
Changes:
|
|
||||||
- fragment fog interpolation is perspective corrected now
|
|
||||||
- new glTexImage code, much cleaner, may be a bit faster
|
|
||||||
Bug fixes:
|
|
||||||
- glArrayElement in display lists didn't handle generic vertex attribs
|
|
||||||
- glFogCoord didn't always work properly
|
|
||||||
- ARB_fragment_program fog options didn't work
|
|
||||||
- frag prog TEX instruction no longer incorrectly divides s,t,r by q
|
|
||||||
- ARB frag prog TEX and TEXP instructions now use LOD=0
|
|
||||||
- glTexEnviv in display lists didn't work
|
|
||||||
- glRasterPos didn't do texgen or apply texture matrix
|
|
||||||
- GL_DOUBLE-valued vertex arrays were broken in some cases
|
|
||||||
- fixed texture rectangle edge/border sampling bugs
|
|
||||||
- sampling an incomplete texture in a fragment program would segfault
|
|
||||||
- glTexImage was missing a few error checks
|
|
||||||
- fixed some minor glGetTexParameter glitches
|
|
||||||
- GL_INTENSITY was mistakenly accepted as a <format> to glTexImage
|
|
||||||
- fragment program writes to RC/HC register were broken
|
|
||||||
- fixed a few glitches in GL_HP_occlusion_test extension
|
|
||||||
- glBeginQueryARB and glEndQueryARB didn't work inside display lists
|
|
||||||
- vertex program state references were broken
|
|
||||||
- fixed triangle color interpolation bug on AIX (Shane Blackett)
|
|
||||||
- fixed a number of minor memory leaks (bug #1002030)
|
|
||||||
|
|
||||||
|
|
||||||
6.2 October 2, 2004
|
|
||||||
New:
|
|
||||||
- enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
|
|
||||||
- updated Doxygen support (Jose Fonseca)
|
|
||||||
Changes:
|
|
||||||
- some GGI driver updates (Christoph Egger, bug 1025977)
|
|
||||||
Bug fixes:
|
|
||||||
- Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
|
|
||||||
- fixed a few compilation issues on IRIX
|
|
||||||
- fixed a matrix classification bug (reported by Wes Bethel)
|
|
||||||
- we weren't reseting the vertex/fragment program error state
|
|
||||||
before parsing (Dave Reveman)
|
|
||||||
- adjust texcoords for sampling texture rectangles (Dave Reveman)
|
|
||||||
- glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
|
|
||||||
- repeated calls to glDeleteTexture(t) could lead to a crash
|
|
||||||
- fixed potential ref count bugs in VBOs and vertex/fragment programs
|
|
||||||
- spriteblast demo didn't handle window size changes correctly
|
|
||||||
- glTexSubImage didn't handle pixels=NULL correctly for PBOs
|
|
||||||
- fixed color index mode glDrawPixels bug (Karl Schultz)
|
|
||||||
|
|
||||||
|
|
||||||
6.2.1 December 9, 2004
|
|
||||||
Bug fixes:
|
|
||||||
- don't apply regular fog or color sum when using a fragment program
|
|
||||||
- glProgramEnvParameter4fARB always generated an error on
|
|
||||||
GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
|
|
||||||
- glVertexAttrib3svNV and glVertexAttrib3svARB were broken
|
|
||||||
- fixed width/height mix-up in glSeparableFilter2D()
|
|
||||||
- fixed regression in glCopyPixels + convolution
|
|
||||||
- glReadPixels from a clipped front color buffer didn't always work
|
|
||||||
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
|
|
||||||
- Attempting queries/accesses of VBO 0 weren't detected as errors
|
|
||||||
- paletted textures failed if the palette had fewer than 256 entries
|
|
||||||
Changes:
|
|
||||||
- fixed a bunch of compiler warnings found with gcc 3.4
|
|
||||||
- bug reports should to go bugzilla.freedesktop.org
|
|
||||||
|
|
||||||
|
|
||||||
6.3 July 20, 2005
|
|
||||||
New:
|
|
||||||
- GL_EXT_framebuffer_object extension
|
|
||||||
- GL_ARB_draw_buffers extension
|
|
||||||
- GL_ARB_pixel_buffer_object extension
|
|
||||||
- GL_OES_read_format extension (Ian Romanick)
|
|
||||||
- DirectFB driver (Claudio Ciccani)
|
|
||||||
- x86_64 vertex transformation code (Mikko T.)
|
|
||||||
- Updated GL/glext.h to version 29
|
|
||||||
Changes:
|
|
||||||
- added -stereo option for glxgears demo (Jacek Rosik)
|
|
||||||
- updated the PBuffer demo code in xdemos/ directory
|
|
||||||
- glDeleteTextures/Programs/Buffers() now makes the object ID
|
|
||||||
available for immediate re-use
|
|
||||||
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
|
|
||||||
- lots of internal changes for GL_EXT_framebuffer_object
|
|
||||||
Bug fixes:
|
|
||||||
- some functions didn't support PBO functionality
|
|
||||||
- glGetTexImage didn't convert color index images to RGBA as required
|
|
||||||
- fragment program texcoords were sometimes wrong for points and lines
|
|
||||||
- fixed problem with negative dot product in arbfplight, fplight demos
|
|
||||||
- fixed bug in perspective correction of antialiased, textured lines
|
|
||||||
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
|
|
||||||
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
|
|
||||||
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
|
|
||||||
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
|
|
||||||
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
|
|
||||||
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
|
|
||||||
- glXChooseFBConfig() crashed if attribList pointer was NULL
|
|
||||||
- program state.light[n].spot.direction.w was wrong value (bug 3083)
|
|
||||||
- fragment program fog option required glEnable(GL_FOG) - wrong.
|
|
||||||
- glColorTable() could produce a Mesa implementation error (bug 3135)
|
|
||||||
- RasterPos could get corrupted by color index rendering path
|
|
||||||
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
|
|
||||||
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
|
|
||||||
- fixed a few Darwin compilation problems
|
|
||||||
|
|
||||||
|
|
||||||
6.3.1
|
|
||||||
This was an intermediate release for X.org which wasn't otherwise released.
|
|
||||||
|
|
||||||
|
|
||||||
6.3.2 August 19, 2005
|
|
||||||
New:
|
|
||||||
- The distribution now includes the DRI drivers and GLX code
|
|
||||||
Changes:
|
|
||||||
- Made the DRI "new" driver interface standard, remove old code
|
|
||||||
Bug fixes:
|
|
||||||
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
|
|
||||||
extensions string
|
|
||||||
- negative relative addressing in vertex programs was broken
|
|
||||||
- update/fix SPARC assembly code for vertex transformation
|
|
||||||
- fixed memory leak when freeing GLX drawables/renderbuffers
|
|
||||||
- fixed display list memory leak
|
|
||||||
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
|
|
||||||
- wglGetProcAddress() didn't handle wgl-functions
|
|
||||||
- fixed glxext.h cross-compile issue (Colin Harrison)
|
|
||||||
- assorted DRI driver fixes
|
|
||||||
|
|
||||||
|
|
||||||
6.4 October 24, 2005
|
|
||||||
New:
|
|
||||||
- Added a fast XOR line drawing function in Xlib driver
|
|
||||||
- Added support for GL_ARB_texture_mirrored_repeat to savage
|
|
||||||
driver (supported only on Savage4 hardware).
|
|
||||||
Changes:
|
|
||||||
- Mesa now packaged in three parts: Library, Demos and GLUT
|
|
||||||
Bug fixes:
|
|
||||||
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
|
|
||||||
- Some files were present multiple times in the 6.3.2 tarballs
|
|
||||||
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
|
|
||||||
- glxgears_fbconfig demo didn't work (bug 4237)
|
|
||||||
- fixed bug when bilinear sampling 2d textures with borders
|
|
||||||
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
|
|
||||||
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
|
|
||||||
- fixed a few problems with proxy color tables (bug 4270)
|
|
||||||
- fixed precision problem in Z clearing (bug 4395)
|
|
||||||
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
|
|
||||||
- fixed potential segfault caused by reading pixels outside
|
|
||||||
of renderbuffer bounds
|
|
||||||
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
|
|
||||||
- fixed memory corruption bug involving software alpha buffers
|
|
||||||
- glReadPixels clipped by window bounds was sometimes broken
|
|
||||||
- glDraw/CopyPixels of stencil data ignored the stencil write mask
|
|
||||||
- glReadPixels from a texture bound to a framebuffer object didn't work
|
|
||||||
- glIsRender/FramebufferEXT weren't totally correct
|
|
||||||
- fixed a number of point size attenuation/fade bugs
|
|
||||||
- fixed glFogCoord bug 4729
|
|
||||||
- GLX encoding for transpose matrix functions was broken
|
|
||||||
- fixed broken fragment program KIL and SWZ instructions
|
|
||||||
- fragment programs that wrote result.depth.z didn't work
|
|
||||||
|
|
||||||
|
|
||||||
6.4.1 November 30, 2005
|
|
||||||
Bug fixes:
|
|
||||||
- redefining a vertex program string didn't take effect in TNL module
|
|
||||||
- fixed occasional segfault upon vertex/fragment parsing error
|
|
||||||
- vertex program LIT instruction didn't handle 0^0=1 correctly
|
|
||||||
- fragment program fog option didn't work with glDrawPixels, glBitmap
|
|
||||||
- USE_MGL_NAMESPACE didn't work for x86-64
|
|
||||||
- OSMesa demos were missing from previous release tarballs
|
|
||||||
- fixed problem with float->ushort conversion in glClear (bug 4992)
|
|
||||||
- popping of GL_EYE_PLANE texgen state was broken (bug 4996)
|
|
||||||
- popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
|
|
||||||
- fixed occasional triangle color interpolation problem on VMS
|
|
||||||
- work around invalid free() call (bug 5131)
|
|
||||||
- fixed BSD X server compilation problem by including stdint.h
|
|
||||||
|
|
||||||
|
|
||||||
6.4.2 February 2, 2006
|
|
||||||
New:
|
|
||||||
- added OSMesaColorClamp() function/feature
|
|
||||||
- added wglGetExtensionStringARB() function
|
|
||||||
Bug fixes:
|
|
||||||
- fixed some problems when building on Windows
|
|
||||||
- GLw header files weren't installed by installmesa script (bug 5396)
|
|
||||||
- GL/glfbdev.h file was missing from tarballs
|
|
||||||
- fixed TNL initialization bug which could lead to crash (bug 5791)
|
|
||||||
|
|
||||||
|
|
||||||
6.5 March 31, 2006
|
|
||||||
New:
|
|
||||||
- OpenGL Shading Language support through GL_ARB_shader_objects,
|
|
||||||
GL_ARB_shading_language_100, GL_ARB_vertex_shader and
|
|
||||||
GL_ARB_fragment_shader (done by Michal Krol)
|
|
||||||
- GL_EXT_packed_depth_stencil extension
|
|
||||||
- GL_EXT_timer_query extension
|
|
||||||
- GL_EXT_framebuffer_blit extension
|
|
||||||
- GL_ARB_half_float_pixel
|
|
||||||
- reflect demo improved to support multiple windows
|
|
||||||
- singlebuffer demo (shows no/little-flicker single-buffered rendering)
|
|
||||||
- r200: enable GL_ARB_texture_env_crossbar, separate the texture
|
|
||||||
sampling unit bits from the texture env combine enable bits
|
|
||||||
- r200: add support for GL_ATI_fragment_shader
|
|
||||||
- added fast XOR-mode line drawing optimization
|
|
||||||
- radeon: add support for all 3 tmus, GL_ARB_texture_cube_map
|
|
||||||
and GL_EXT_fog_coord
|
|
||||||
- MESA_GLX_ALPHA_BITS env var for xlib driver
|
|
||||||
- many DRI driver updates (including screen rotation support
|
|
||||||
for the Intel DRI driver)
|
|
||||||
Changes:
|
|
||||||
- removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead)
|
|
||||||
- removed GL_SGIX/SGIS_pixel_texture extensions
|
|
||||||
Bug fixes:
|
|
||||||
- fixed glxcontextmodes.c datatype problem (bug 5835)
|
|
||||||
- fixed aix-gcc build/install bugs (bug 5874)
|
|
||||||
- fixed some bugs in texture env program generation
|
|
||||||
- glXCopyContext() didn't handle texture object bindings properly
|
|
||||||
- glXCopyContext() didn't copy all lighting state
|
|
||||||
- fixed FreeBSD config (Pedro Giffuni)
|
|
||||||
- fixed some minor framebuffer object bugs
|
|
||||||
- replaced dprintf() with _glu_printf() in GLU (bug 6244)
|
|
||||||
- fixed a number of thread safety bugs/regressions
|
|
||||||
- fixed a number of GLU tesselator bugs (John Shell, bug 6339)
|
|
||||||
- paletted texturing was broken w/ floating point palettes (K. Schultz)
|
|
||||||
- lots of assorted framebuffer object bug fixes
|
|
||||||
|
|
||||||
6.5.1 August 31, 2006
|
|
||||||
New:
|
|
||||||
- Intel i965 DRI driver
|
|
||||||
- GL_APPLE_vertex_array_object extension (Ian Romanick)
|
|
||||||
- GL_EXT_texture_sRGB extension
|
|
||||||
- GL_EXT_gpu_program_parameters (Ian Romanick)
|
|
||||||
- "engine" demo
|
|
||||||
- updated fbdev driver and GLUT for fbdev (Sean D'Epagnier)
|
|
||||||
- many updates to the DRI drivers
|
|
||||||
Changes:
|
|
||||||
- The glVertexAttribARB functions no longer alias the conventional
|
|
||||||
vertex attributes.
|
|
||||||
- glxinfo program prints more info with -l option
|
|
||||||
- GL_FRAGMENT_PROGRAM_NV and GL_FRAGMENT_PROGRAM_ARB are now
|
|
||||||
compatible, in terms of glBindProgramARB()
|
|
||||||
Bug fixes:
|
|
||||||
- fixed broken texture border handling for depth textures (bug 6498)
|
|
||||||
- removed the test for duplicated framebuffer attachments, per
|
|
||||||
version 117 of the GL_EXT_framebuffer_object specification
|
|
||||||
- fixed a few render-to-texture bugs, including render to depth texture
|
|
||||||
- clipping of lines against user-defined clip planes was broken (6512)
|
|
||||||
- assembly language dispatch for SPARC was broken (bug 6484)
|
|
||||||
- assorted compilation fixes on various Unix platforms (Dan Schikore)
|
|
||||||
- glPopAttrib could restore an invalid value for GL_DRAW_BUFFER
|
|
||||||
- assorted minor fixes for 16 and 32 bit/channel modes
|
|
||||||
- fixed assorted bugs in texture compression paths
|
|
||||||
- fixed indirect rendering vertex array crashes (bug 6863)
|
|
||||||
- glDrawPixels GL_INDEX_OFFSET didn't always work
|
|
||||||
- fixed convolution memory leak (bug 7077)
|
|
||||||
- rectangular depth textures didn't work
|
|
||||||
- invalid mode to glBegin didn't generate an error (bug 7142)
|
|
||||||
- 'normalized' parameter to glVertexAttribPointerARB didn't work
|
|
||||||
- disable bogus GLX_SGI_video_sync extension in xlib driver
|
|
||||||
- fixed R128 driver locking bug (Martijn van Oosterhout)
|
|
||||||
- using evaluators with vertex programs caused crashes (bug 7564)
|
|
||||||
- fragment.position wasn't set correctly for point/line primitives
|
|
||||||
- fixed parser bug for scalar sources for GL_NV_fragment_program
|
|
||||||
- max fragment program length was incorrectly 128, now 1024
|
|
||||||
- writes to result.depth in fragment programs weren't clamped to [0,1]
|
|
||||||
- fixed potential dangling pointer bug in glBindProgram()
|
|
||||||
- fixed some memory leaks (and potential crashes) in Xlib driver
|
|
||||||
|
|||||||
@@ -1,83 +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>Application Issues</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>Application Issues</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This page documents known issues with some OpenGL applications.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Topogun</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
|
|
||||||
creates a GLX visual without requesting a depth buffer.
|
|
||||||
This causes bad rendering if the OpenGL driver happens to choose a visual
|
|
||||||
without a depth buffer.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa 9.1.2 and later (will) support a DRI configuration option to work around
|
|
||||||
this issue.
|
|
||||||
Using the <a href="http://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
|
|
||||||
set the "Create all visuals with a depth buffer" option before running Topogun.
|
|
||||||
Then, all GLX visuals will be created with a depth buffer.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Old OpenGL games</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Some old OpenGL games (approx. ten years or older) may crash during
|
|
||||||
start-up because of an extension string buffer-overflow problem.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The problem is a modern OpenGL driver will return a very long string
|
|
||||||
for the glGetString(GL_EXTENSIONS) query and if the application
|
|
||||||
naively copies the string into a fixed-size buffer it can overflow the
|
|
||||||
buffer and crash the application.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
|
|
||||||
to the approximate release year of the game.
|
|
||||||
This will cause the glGetString(GL_EXTENSIONS) query to only report extensions
|
|
||||||
older than the given year.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For example, if the game was released in 2001, do
|
|
||||||
<pre>
|
|
||||||
export MESA_EXTENSION_MAX_YEAR=2001
|
|
||||||
</pre>
|
|
||||||
before running the game.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Viewperf</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
|
|
||||||
of Viewperf issues.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,257 +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>Compilation and Installation using Autoconf</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>Compilation and Installation using Autoconf</h1>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li><p><a href="#basic">Basic Usage</a></li>
|
|
||||||
<li><p><a href="#driver">Driver Options</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#xlib">Xlib Driver Options</a></li>
|
|
||||||
<li><a href="#dri">DRI Driver Options</a></li>
|
|
||||||
<li><a href="#osmesa">OSMesa Driver Options</a></li>
|
|
||||||
</ul>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="basic">1. Basic Usage</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The autoconf generated configure script can be used to guess your
|
|
||||||
platform and change various options for building Mesa. To use the
|
|
||||||
configure script, type:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
./configure
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To see a short description of all the options, type <code>./configure
|
|
||||||
--help</code>. If you are using a development snapshot and the configure
|
|
||||||
script does not exist, type <code>./autogen.sh</code> to generate it
|
|
||||||
first. If you know the options you want to pass to
|
|
||||||
<code>configure</code>, you can pass them to <code>autogen.sh</code>. It
|
|
||||||
will run <code>configure</code> with these options after it is
|
|
||||||
generated. Once you have run <code>configure</code> and set the options
|
|
||||||
to your preference, type:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
make
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This will produce libGL.so and/or several other libraries depending on the
|
|
||||||
options you have chosen. Later, if you want to rebuild for a different
|
|
||||||
configuration run <code>make realclean</code> before rebuilding.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Some of the generic autoconf options are used with Mesa:
|
|
||||||
</p>
|
|
||||||
<dl>
|
|
||||||
<dt><code>--prefix=PREFIX</code></dt>
|
|
||||||
<dd><p>This is the root directory where
|
|
||||||
files will be installed by <code>make install</code>. The default is
|
|
||||||
<code>/usr/local</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--exec-prefix=EPREFIX</code></dt>
|
|
||||||
<dd><p>This is the root directory
|
|
||||||
where architecture-dependent files will be installed. In Mesa, this is
|
|
||||||
only used to derive the directory for the libraries. The default is
|
|
||||||
<code>${prefix}</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--libdir=LIBDIR</code></dt>
|
|
||||||
<dd><p>This option specifies the directory
|
|
||||||
where the GL libraries will be installed. The default is
|
|
||||||
<code>${exec_prefix}/lib</code>. It also serves as the name of the
|
|
||||||
library staging area in the source tree. For instance, if the option
|
|
||||||
<code>--libdir=/usr/local/lib64</code> is used, the libraries will be
|
|
||||||
created in a <code>lib64</code> directory at the top of the Mesa source
|
|
||||||
tree.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--sysconfdir=DIR</code></dt>
|
|
||||||
<dd><p>This option specifies the directory where the configuration
|
|
||||||
files will be installed. The default is <code>${prefix}/etc</code>.
|
|
||||||
Currently there's only one config file provided when dri drivers are
|
|
||||||
enabled - it's <code>drirc</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--enable-static, --disable-shared</code></dt>
|
|
||||||
<dd><p>By default, Mesa
|
|
||||||
will build shared libraries. Either of these options will force static
|
|
||||||
libraries to be built. It is not currently possible to build static and
|
|
||||||
shared libraries in a single pass.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
|
|
||||||
<dd><p>These environment variables
|
|
||||||
control the C and C++ compilers used during the build. By default,
|
|
||||||
<code>gcc</code> and <code>g++</code> are used and the debug/optimisation
|
|
||||||
level is left unchanged.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>LDFLAGS</code></dt>
|
|
||||||
<dd><p>An environment variable specifying flags to
|
|
||||||
pass when linking programs. These should be empty and
|
|
||||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
|
|
||||||
it can be used to direct the linker to use libraries in nonstandard
|
|
||||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
|
||||||
<dd><p>The
|
|
||||||
<code>pkg-config</code> utility is a hard requirement for cofiguring and
|
|
||||||
building mesa. It is used to search for external libraries
|
|
||||||
on the system. This environment variable is used to control the search
|
|
||||||
path for <code>pkg-config</code>. For instance, setting
|
|
||||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
|
|
||||||
package metadata in <code>/usr/X11R6</code> before the standard
|
|
||||||
directories.</p>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
There are also a few general options for altering the Mesa build:
|
|
||||||
</p>
|
|
||||||
<dl>
|
|
||||||
<dt><code>--enable-debug</code></dt>
|
|
||||||
<dd><p>This option will set the compiler debug/optimisation levels (if the user
|
|
||||||
hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in
|
|
||||||
debugging the Mesa libraries.</p>
|
|
||||||
|
|
||||||
<p>Note that enabling this option can lead to noticable loss of performance.</p>
|
|
||||||
|
|
||||||
<dt><code>--disable-asm</code></dt>
|
|
||||||
<dd><p>There are assembly routines
|
|
||||||
available for a few architectures. These will be used by default if
|
|
||||||
one of these architectures is detected. This option ensures that
|
|
||||||
assembly will not be used.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--build=</code></dt>
|
|
||||||
<dt><code>--host=</code></dt>
|
|
||||||
<dd><p>By default, the build will compile code for the architecture that
|
|
||||||
it's running on. In order to build cross-compile Mesa on a x86-64 machine
|
|
||||||
that is to run on a i686, one would need to set the options to:</p>
|
|
||||||
|
|
||||||
<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p>
|
|
||||||
|
|
||||||
Note that these can vary from distribution to distribution. For more
|
|
||||||
information check with the
|
|
||||||
<a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html">
|
|
||||||
autoconf manual</a>.
|
|
||||||
Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well.
|
|
||||||
|
|
||||||
|
|
||||||
<p>In some cases a single compiler is capable of handling both architectures
|
|
||||||
(multilib) in that case one would need to set the <code>CC,CXX</code> variables
|
|
||||||
appending the correct machine options. Seek your compiler documentation for
|
|
||||||
further information -
|
|
||||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc
|
|
||||||
machine dependent options</a></p>
|
|
||||||
|
|
||||||
<p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target
|
|
||||||
architecture, the following should be sufficient to configure multilib Mesa</p>
|
|
||||||
|
|
||||||
<code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="driver">2. GL Driver Options</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
There are several different driver modes that Mesa can use. These are
|
|
||||||
described in more detail in the <a href="install.html">basic
|
|
||||||
installation instructions</a>. The Mesa driver is controlled through the
|
|
||||||
configure options <code>--enable-glx</code> and <code>--enable-osmesa</code>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3 id="xlib">Xlib</h3><p>
|
|
||||||
It uses Xlib as a software renderer to do all rendering. It corresponds
|
|
||||||
to the option <code>--enable-glx=xlib</code> or <code>--enable-glx=gallium-xlib</code>.
|
|
||||||
|
|
||||||
<h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for
|
|
||||||
accelerated OpenGL rendering. To enable use <code>--enable-glx=dri
|
|
||||||
--enable-dri</code>.
|
|
||||||
|
|
||||||
<!-- DRI specific options -->
|
|
||||||
<dl>
|
|
||||||
<dt><code>--with-dri-driverdir=DIR</code>
|
|
||||||
<dd><p> This option specifies the
|
|
||||||
location the DRI drivers will be installed to and the location libGL
|
|
||||||
will search for DRI drivers. The default is <code>${libdir}/dri</code>.
|
|
||||||
<dt><code>--with-dri-drivers=DRIVER,DRIVER,...</code>
|
|
||||||
<dd><p> This option
|
|
||||||
allows a specific set of DRI drivers to be built. For example,
|
|
||||||
<code>--with-dri-drivers="swrast,i965,radeon,nouveau"</code>. By
|
|
||||||
default, the drivers will be chosen depending on the target platform.
|
|
||||||
See the directory <code>src/mesa/drivers/dri</code> in the source tree
|
|
||||||
for available drivers. Beware that the swrast DRI driver is used by both
|
|
||||||
libGL and the X.Org xserver GLX module to do software rendering, so you
|
|
||||||
may run into problems if it is not available.
|
|
||||||
<!-- This explanation might be totally bogus. Kristian? -->
|
|
||||||
<dt><code>--disable-driglx-direct</code>
|
|
||||||
<dd><p> Disable direct rendering in
|
|
||||||
GLX. Normally, direct hardware rendering through the DRI drivers and
|
|
||||||
indirect software rendering are enabled in GLX. This option disables
|
|
||||||
direct rendering entirely. It can be useful on architectures where
|
|
||||||
kernel DRM modules are not available.
|
|
||||||
<dt><code>--enable-glx-tls</code> <dd><p>
|
|
||||||
Enable Thread Local Storage (TLS) in
|
|
||||||
GLX.
|
|
||||||
<dt><code>--with-expat=DIR</code>
|
|
||||||
<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p>
|
|
||||||
<p>The DRI-enabled libGL uses expat to
|
|
||||||
parse the DRI configuration files in <code>${sysconfdir}/drirc</code> and
|
|
||||||
<code>~/.drirc</code>. This option allows a specific expat installation
|
|
||||||
to be used. For example, <code>--with-expat=/usr/local</code> will
|
|
||||||
search for expat headers and libraries in <code>/usr/local/include</code>
|
|
||||||
and <code>/usr/local/lib</code>, respectively.
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3 id="osmesa">OSMesa </h3><p> No libGL is built in this
|
|
||||||
mode. Instead, the driver code is built into the Off-Screen Mesa
|
|
||||||
(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a>
|
|
||||||
page for more details. It corresponds to the option
|
|
||||||
<code>--enable-osmesa</code>.
|
|
||||||
|
|
||||||
<!-- OSMesa specific options -->
|
|
||||||
<dl>
|
|
||||||
<dt><code>--with-osmesa-bits=BITS</code>
|
|
||||||
<dd><p> This option allows the size
|
|
||||||
of the color channel in bits to be specified. By default, an 8-bit
|
|
||||||
channel will be used, and the driver will be named libOSMesa. Other
|
|
||||||
options are 16- and 32-bit color channels, which will add the bit size
|
|
||||||
to the library name. For example, <code>--with-osmesa-bits=16</code>
|
|
||||||
will create the libOSMesa16 library with a 16-bit color channel.
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="library">3. Library Options</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The configure script provides more fine grained control over the libraries
|
|
||||||
that will be built.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,61 +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 Bug Reporting</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>Bug Database</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Mesa bug database is hosted on
|
|
||||||
<a href="http://freedesktop.org">freedesktop.org</a>.
|
|
||||||
The old bug database on SourceForge is no longer used.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To file a Mesa bug, go to
|
|
||||||
<a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa">
|
|
||||||
Bugzilla on freedesktop.org</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Please follow these bug reporting guidelines:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Check if a new version of Mesa is available which might have fixed
|
|
||||||
the problem.
|
|
||||||
<li>Check if your bug is already reported in the database.
|
|
||||||
<li>Monitor your bug report for requests for additional information, etc.
|
|
||||||
<li>If you're reporting a crash, try to use your debugger (gdb) to get a stack
|
|
||||||
trace. Also, recompile Mesa in debug mode to get more detailed information.
|
|
||||||
<li>Describe in detail how to reproduce the bug, especially with games
|
|
||||||
and applications that the Mesa developers might not be familiar with.
|
|
||||||
<li>Provide a simple GLUT-based test program if possible
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Bug reports will automatically be forwarded by bugzilla to the Mesa
|
|
||||||
developer's mailing list.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The easier a bug is to reproduce, the sooner it will be fixed.
|
|
||||||
Please do everything you can to facilitate quickly fixing bugs.
|
|
||||||
If your bug report is vague or your test program doesn't compile
|
|
||||||
easily, the problem may not be fixed very quickly.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<title>Coding Style</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Coding Style</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa is over 20 years old and the coding style has evolved over time.
|
|
||||||
Some old parts use a style that's a bit out of date.
|
|
||||||
|
|
||||||
Different sections of mesa can use different coding style as set in the local
|
|
||||||
EditorConfig (.editorconfig) and/or Emacs (.dir-locals.el) file.
|
|
||||||
|
|
||||||
Alternatively the following is applicable.
|
|
||||||
|
|
||||||
If the guidelines below don't cover something, try following the format of
|
|
||||||
existing, neighboring code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Basic formatting guidelines
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>3-space indentation, no tabs.
|
|
||||||
<li>Limit lines to 78 or fewer characters. The idea is to prevent line
|
|
||||||
wrapping in 80-column editors and terminals. There are exceptions, such
|
|
||||||
as if you're defining a large, static table of information.
|
|
||||||
<li>Opening braces go on the same line as the if/for/while statement.
|
|
||||||
For example:
|
|
||||||
<pre>
|
|
||||||
if (condition) {
|
|
||||||
foo;
|
|
||||||
} else {
|
|
||||||
bar;
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
|
|
||||||
and not <tt>a=b+c;</tt>
|
|
||||||
|
|
||||||
<li>This GNU indent command generally does the right thing for formatting:
|
|
||||||
<pre>
|
|
||||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<li>Use comments wherever you think it would be helpful for other developers.
|
|
||||||
Several specific cases and style examples follow. Note that we roughly
|
|
||||||
follow <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
Single-line comments:
|
|
||||||
<pre>
|
|
||||||
/* null-out pointer to prevent dangling reference below */
|
|
||||||
bufferObj = NULL;
|
|
||||||
</pre>
|
|
||||||
Or,
|
|
||||||
<pre>
|
|
||||||
bufferObj = NULL; /* prevent dangling reference below */
|
|
||||||
</pre>
|
|
||||||
Multi-line comment:
|
|
||||||
<pre>
|
|
||||||
/* If this is a new buffer object id, or one which was generated but
|
|
||||||
* never used before, allocate a buffer object now.
|
|
||||||
*/
|
|
||||||
</pre>
|
|
||||||
We try to quote the OpenGL specification where prudent:
|
|
||||||
<pre>
|
|
||||||
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
|
|
||||||
*
|
|
||||||
* "An INVALID_OPERATION error is generated for any of the following
|
|
||||||
* conditions:
|
|
||||||
*
|
|
||||||
* * <length> is zero."
|
|
||||||
*
|
|
||||||
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
|
|
||||||
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
|
|
||||||
* either.
|
|
||||||
*/
|
|
||||||
</pre>
|
|
||||||
Function comment example:
|
|
||||||
<pre>
|
|
||||||
/**
|
|
||||||
* Create and initialize a new buffer object. Called via the
|
|
||||||
* ctx->Driver.CreateObject() driver callback function.
|
|
||||||
* \param name integer name of the object
|
|
||||||
* \param type one of GL_FOO, GL_BAR, etc.
|
|
||||||
* \return pointer to new object or NULL if error
|
|
||||||
*/
|
|
||||||
struct gl_object *
|
|
||||||
_mesa_create_object(GLuint name, GLenum type)
|
|
||||||
{
|
|
||||||
/* function body */
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<li>Put the function return type and qualifiers on one line and the function
|
|
||||||
name and parameters on the next, as seen above. This makes it easy to use
|
|
||||||
<code>grep ^function_name dir/*</code> to find function definitions. Also,
|
|
||||||
the opening brace goes on the next line by itself (see above.)
|
|
||||||
|
|
||||||
<li>Function names follow various conventions depending on the type of function:
|
|
||||||
<pre>
|
|
||||||
glFooBar() - a public GL entry point (in glapi_dispatch.c)
|
|
||||||
_mesa_FooBar() - the internal immediate mode function
|
|
||||||
save_FooBar() - retained mode (display list) function in dlist.c
|
|
||||||
foo_bar() - a static (private) function
|
|
||||||
_mesa_foo_bar() - an internal non-static Mesa function
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
|
|
||||||
words.
|
|
||||||
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
|
|
||||||
while gallium typically uses underscores (Ex: "local_var_name").
|
|
||||||
<li>Global variables are almost never used because Mesa should be thread-safe.
|
|
||||||
|
|
||||||
<li>Booleans. Places that are not directly visible to the GL API
|
|
||||||
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
|
|
||||||
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
|
|
||||||
<tt>GL_FALSE</tt>. In C code, this may mean that
|
|
||||||
<tt>#include <stdbool.h></tt> needs to be added. The
|
|
||||||
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
|
|
||||||
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,703 +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>Conformance</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>Conformance</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
|
||||||
implementations. I, Brian Paul, have been given a copy of the tests
|
|
||||||
for testing Mesa. The tests are not publicly available.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This file has the latest results of testing Mesa with the OpenGL 1.2
|
|
||||||
conformance tests. Testing with the preliminary OpenGL 1.3 tests has
|
|
||||||
also been done. Mesa passes all the 1.3 tests.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The tests were run using the software X11 device driver on 24-bpp
|
|
||||||
and 16-bpp displays.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Mesa 4.0 and later pass all conformance tests at all path levels.
|
|
||||||
Note that this says nothing about the conformance of hardware drivers
|
|
||||||
based upon Mesa.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
|
|
||||||
COVERAGE TESTS
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Test that all API functions accept the legal parameters and reject
|
|
||||||
illegal parameters. The result of each test is either pass or fail.
|
|
||||||
|
|
||||||
% covgl
|
|
||||||
OpenGL Coverage Test.
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
covgl passed.
|
|
||||||
|
|
||||||
covgl passed at 1.1 level.
|
|
||||||
|
|
||||||
covgl passed at 1.2 level.
|
|
||||||
|
|
||||||
covgl passed for ARB_multitexture.
|
|
||||||
|
|
||||||
|
|
||||||
% covglu
|
|
||||||
OpenGL GLU Coverage Test.
|
|
||||||
Version 1.3
|
|
||||||
|
|
||||||
covglu passed.
|
|
||||||
|
|
||||||
covglu passed at 1.1 level.
|
|
||||||
|
|
||||||
|
|
||||||
% covglx
|
|
||||||
OpenGL X Coverage Test.
|
|
||||||
Version 1.1.1
|
|
||||||
|
|
||||||
covglx passed.
|
|
||||||
|
|
||||||
|
|
||||||
% primtest -v
|
|
||||||
Open GL Primitives Test.
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
[lots of output deleted]
|
|
||||||
|
|
||||||
292159 Combinations.
|
|
||||||
primtest passed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GL CONFORMANCE TEST
|
|
||||||
===================
|
|
||||||
|
|
||||||
Render test images, read them back, then test for expected results.
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
% conform -v 2
|
|
||||||
|
|
||||||
OpenGL Conformance Test
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path inactive.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 35. Indirect Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (5, 6, 5, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
Must Pass test passed.
|
|
||||||
Divide By Zero test passed.
|
|
||||||
Viewport Clamp test passed.
|
|
||||||
Matrix Stack test passed.
|
|
||||||
Matrix Stack Mixing test passed.
|
|
||||||
Vertex Order test passed.
|
|
||||||
Transformations test passed.
|
|
||||||
Transformation Normal test passed.
|
|
||||||
Viewport Transformation test passed.
|
|
||||||
Buffer Clear test passed.
|
|
||||||
Buffer Corners test passed.
|
|
||||||
Buffer Color test passed.
|
|
||||||
Color Ramp test passed.
|
|
||||||
Mask test passed.
|
|
||||||
Buffer Invariance test passed.
|
|
||||||
Accumulation Buffer test passed.
|
|
||||||
Select test passed.
|
|
||||||
Feedback test passed.
|
|
||||||
Scissor test passed.
|
|
||||||
Alpha Plane Function test passed.
|
|
||||||
Stencil Plane Clear test passed.
|
|
||||||
Stencil Plane Corners test passed.
|
|
||||||
Stencil Plane Operation test passed.
|
|
||||||
Stencil Plane Function test passed.
|
|
||||||
Depth Buffer Clear test passed.
|
|
||||||
Depth Buffer Function test passed.
|
|
||||||
Blend test passed.
|
|
||||||
Dither test passed.
|
|
||||||
LogicOp Function test does not exist for an RGB visual.
|
|
||||||
DrawPixels test passed.
|
|
||||||
CopyPixels test passed.
|
|
||||||
Bitmap Rasterization test passed.
|
|
||||||
Point Rasterization test passed.
|
|
||||||
Anti-aliased Point test passed.
|
|
||||||
Line Rasterization test passed.
|
|
||||||
Line Stipple test passed.
|
|
||||||
Anti-aliased Line test passed.
|
|
||||||
Horizontal and Vertical Line test passed.
|
|
||||||
Triangle Rasterization test passed.
|
|
||||||
Triangle Tile test passed.
|
|
||||||
Triangle Stipple test passed.
|
|
||||||
Anti-aliased Triangles test passed.
|
|
||||||
Quad Rasterization test passed.
|
|
||||||
Polygon Face test passed.
|
|
||||||
Polygon Cull test passed.
|
|
||||||
Polygon Stipple test passed.
|
|
||||||
Polygon Edge test passed.
|
|
||||||
Ambient Material test passed.
|
|
||||||
Ambient Scene test passed.
|
|
||||||
Attenuation Position test passed.
|
|
||||||
Diffuse Light test passed.
|
|
||||||
Diffuse Material test passed.
|
|
||||||
Diffuse Material Normal test passed.
|
|
||||||
Diffuse Material Positioning test passed.
|
|
||||||
Emissive Material test passed.
|
|
||||||
Specular Exponent test passed.
|
|
||||||
Specular Exponent Normal test passed.
|
|
||||||
Specular Local Eye Half Angle test passed.
|
|
||||||
Specular Light test passed.
|
|
||||||
Specular Material test passed.
|
|
||||||
Specular Normal test passed.
|
|
||||||
Spot Positioning test passed.
|
|
||||||
Spot Exponent and Positioning test passed.
|
|
||||||
Spot Exponent and Direction test passed.
|
|
||||||
Fog Exponential test passed.
|
|
||||||
Fog Linear test passed.
|
|
||||||
Texture Decal test passed.
|
|
||||||
Texture Border test passed.
|
|
||||||
Mipmaps Selection test passed.
|
|
||||||
Mipmaps Interpolation test passed.
|
|
||||||
Display Lists test passed.
|
|
||||||
Evaluator test passed.
|
|
||||||
Evaluator Color test passed.
|
|
||||||
Texture Edge Clamp test passed.
|
|
||||||
Packed Pixels test passed.
|
|
||||||
Texture LOD test passed.
|
|
||||||
Rescale Normal test passed.
|
|
||||||
Color Table test passed.
|
|
||||||
Convolution test passed.
|
|
||||||
Convolution Border test passed.
|
|
||||||
Histogram test passed.
|
|
||||||
MinMax test passed.
|
|
||||||
MultiTexture test passed.
|
|
||||||
|
|
||||||
Conform passed.
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
% conform -v 2 -p 1
|
|
||||||
|
|
||||||
OpenGL Conformance Test
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path level = 1.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 35. Indirect Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (5, 6, 5, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
Must Pass test passed.
|
|
||||||
Divide By Zero test passed.
|
|
||||||
Viewport Clamp test passed.
|
|
||||||
Matrix Stack test passed.
|
|
||||||
Matrix Stack Mixing test passed.
|
|
||||||
Vertex Order test passed.
|
|
||||||
Transformations test passed.
|
|
||||||
Transformation Normal test passed.
|
|
||||||
Viewport Transformation test passed.
|
|
||||||
Buffer Clear test passed.
|
|
||||||
Buffer Corners test passed.
|
|
||||||
Buffer Color test passed.
|
|
||||||
Color Ramp test passed.
|
|
||||||
Mask test passed.
|
|
||||||
Buffer Invariance test passed.
|
|
||||||
Accumulation Buffer test passed.
|
|
||||||
Select test passed.
|
|
||||||
Feedback test passed.
|
|
||||||
Scissor test passed.
|
|
||||||
Alpha Plane Function test passed.
|
|
||||||
Stencil Plane Clear test passed.
|
|
||||||
Stencil Plane Corners test passed.
|
|
||||||
Stencil Plane Operation test passed.
|
|
||||||
Stencil Plane Function test passed.
|
|
||||||
Depth Buffer Clear test passed.
|
|
||||||
Depth Buffer Function test passed.
|
|
||||||
Blend test passed.
|
|
||||||
Dither test passed.
|
|
||||||
LogicOp Function test does not exist for an RGB visual.
|
|
||||||
DrawPixels test passed.
|
|
||||||
CopyPixels test passed.
|
|
||||||
Bitmap Rasterization test passed.
|
|
||||||
Point Rasterization test passed.
|
|
||||||
Anti-aliased Point test passed.
|
|
||||||
Line Rasterization test passed.
|
|
||||||
Line Stipple test passed.
|
|
||||||
Anti-aliased Line test passed.
|
|
||||||
Horizontal and Vertical Line test passed.
|
|
||||||
Triangle Rasterization test passed.
|
|
||||||
Triangle Tile test passed.
|
|
||||||
Triangle Stipple test passed.
|
|
||||||
Anti-aliased Triangles test passed.
|
|
||||||
Quad Rasterization test passed.
|
|
||||||
Polygon Face test passed.
|
|
||||||
Polygon Cull test passed.
|
|
||||||
Polygon Stipple test passed.
|
|
||||||
Polygon Edge test passed.
|
|
||||||
Ambient Material test passed.
|
|
||||||
Ambient Scene test passed.
|
|
||||||
Attenuation Position test passed.
|
|
||||||
Diffuse Light test passed.
|
|
||||||
Diffuse Material test passed.
|
|
||||||
Diffuse Material Normal test passed.
|
|
||||||
Diffuse Material Positioning test passed.
|
|
||||||
Emissive Material test passed.
|
|
||||||
Specular Exponent test passed.
|
|
||||||
Specular Exponent Normal test passed.
|
|
||||||
Specular Local Eye Half Angle test passed.
|
|
||||||
Specular Light test passed.
|
|
||||||
Specular Material test passed.
|
|
||||||
Specular Normal test passed.
|
|
||||||
Spot Positioning test passed.
|
|
||||||
Spot Exponent and Positioning test passed.
|
|
||||||
Spot Exponent and Direction test passed.
|
|
||||||
Fog Exponential test passed.
|
|
||||||
Fog Linear test passed.
|
|
||||||
Texture Decal test passed.
|
|
||||||
Texture Border test passed.
|
|
||||||
Mipmaps Selection test passed.
|
|
||||||
Mipmaps Interpolation test passed.
|
|
||||||
Display Lists test passed.
|
|
||||||
Evaluator test passed.
|
|
||||||
Evaluator Color test passed.
|
|
||||||
Texture Edge Clamp test passed.
|
|
||||||
Packed Pixels test passed.
|
|
||||||
Texture LOD test passed.
|
|
||||||
Rescale Normal test passed.
|
|
||||||
Color Table test passed.
|
|
||||||
Convolution test passed.
|
|
||||||
Convolution Border test passed.
|
|
||||||
Histogram test passed.
|
|
||||||
MinMax test passed.
|
|
||||||
MultiTexture test passed.
|
|
||||||
|
|
||||||
Conform passed.
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
% conform -v 2 -p 2
|
|
||||||
|
|
||||||
OpenGL Conformance Test
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path level = 2.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 35. Indirect Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (5, 6, 5, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
Must Pass test passed.
|
|
||||||
Divide By Zero test passed.
|
|
||||||
Viewport Clamp test passed.
|
|
||||||
Matrix Stack test passed.
|
|
||||||
Matrix Stack Mixing test passed.
|
|
||||||
Vertex Order test passed.
|
|
||||||
Transformations test passed.
|
|
||||||
Transformation Normal test passed.
|
|
||||||
Viewport Transformation test passed.
|
|
||||||
Buffer Clear test passed.
|
|
||||||
Buffer Corners test passed.
|
|
||||||
Buffer Color test passed.
|
|
||||||
Color Ramp test passed.
|
|
||||||
Mask test passed.
|
|
||||||
Buffer Invariance test passed.
|
|
||||||
Accumulation Buffer test passed.
|
|
||||||
Select test passed.
|
|
||||||
Feedback test passed.
|
|
||||||
Scissor test passed.
|
|
||||||
Alpha Plane Function test passed.
|
|
||||||
Stencil Plane Clear test passed.
|
|
||||||
Stencil Plane Corners test passed.
|
|
||||||
Stencil Plane Operation test passed.
|
|
||||||
Stencil Plane Function test passed.
|
|
||||||
Depth Buffer Clear test passed.
|
|
||||||
Depth Buffer Function test passed.
|
|
||||||
Blend test passed.
|
|
||||||
Dither test passed.
|
|
||||||
LogicOp Function test does not exist for an RGB visual.
|
|
||||||
DrawPixels test passed.
|
|
||||||
CopyPixels test passed.
|
|
||||||
Bitmap Rasterization test passed.
|
|
||||||
Point Rasterization test passed.
|
|
||||||
Anti-aliased Point test passed.
|
|
||||||
Line Rasterization test passed.
|
|
||||||
Line Stipple test passed.
|
|
||||||
Anti-aliased Line test passed.
|
|
||||||
Horizontal and Vertical Line test passed.
|
|
||||||
Triangle Rasterization test passed.
|
|
||||||
Triangle Tile test passed.
|
|
||||||
Triangle Stipple test passed.
|
|
||||||
Anti-aliased Triangles test passed.
|
|
||||||
Quad Rasterization test passed.
|
|
||||||
Polygon Face test passed.
|
|
||||||
Polygon Cull test passed.
|
|
||||||
Polygon Stipple test passed.
|
|
||||||
Polygon Edge test passed.
|
|
||||||
Ambient Material test passed.
|
|
||||||
Ambient Scene test passed.
|
|
||||||
Attenuation Position test passed.
|
|
||||||
Diffuse Light test passed.
|
|
||||||
Diffuse Material test passed.
|
|
||||||
Diffuse Material Normal test passed.
|
|
||||||
Diffuse Material Positioning test passed.
|
|
||||||
Emissive Material test passed.
|
|
||||||
Specular Exponent test passed.
|
|
||||||
Specular Exponent Normal test passed.
|
|
||||||
Specular Local Eye Half Angle test passed.
|
|
||||||
Specular Light test passed.
|
|
||||||
Specular Material test passed.
|
|
||||||
Specular Normal test passed.
|
|
||||||
Spot Positioning test passed.
|
|
||||||
Spot Exponent and Positioning test passed.
|
|
||||||
Spot Exponent and Direction test passed.
|
|
||||||
Fog Exponential test passed.
|
|
||||||
Fog Linear test passed.
|
|
||||||
Texture Decal test passed.
|
|
||||||
Texture Border test passed.
|
|
||||||
Mipmaps Selection test passed.
|
|
||||||
Mipmaps Interpolation test passed.
|
|
||||||
Display Lists test passed.
|
|
||||||
Evaluator test passed.
|
|
||||||
Evaluator Color test passed.
|
|
||||||
Texture Edge Clamp test passed.
|
|
||||||
Packed Pixels test passed.
|
|
||||||
Texture LOD test passed.
|
|
||||||
Rescale Normal test passed.
|
|
||||||
Color Table test passed.
|
|
||||||
Convolution test passed.
|
|
||||||
Convolution Border test passed.
|
|
||||||
Histogram test passed.
|
|
||||||
MinMax test passed.
|
|
||||||
MultiTexture test passed.
|
|
||||||
|
|
||||||
Conform passed.
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
% conform -v 2 -p 3
|
|
||||||
|
|
||||||
OpenGL Conformance Test
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path level = 3.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 35. Indirect Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (5, 6, 5, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
Must Pass test passed.
|
|
||||||
Divide By Zero test passed.
|
|
||||||
Viewport Clamp test passed.
|
|
||||||
Matrix Stack test passed.
|
|
||||||
Matrix Stack Mixing test passed.
|
|
||||||
Vertex Order test passed.
|
|
||||||
Transformations test passed.
|
|
||||||
Transformation Normal test passed.
|
|
||||||
Viewport Transformation test passed.
|
|
||||||
Buffer Clear test passed.
|
|
||||||
Buffer Corners test passed.
|
|
||||||
Buffer Color test passed.
|
|
||||||
Color Ramp test passed.
|
|
||||||
Mask test passed.
|
|
||||||
Buffer Invariance test passed.
|
|
||||||
Accumulation Buffer test passed.
|
|
||||||
Select test passed.
|
|
||||||
Feedback test passed.
|
|
||||||
Scissor test passed.
|
|
||||||
Alpha Plane Function test passed.
|
|
||||||
Stencil Plane Clear test passed.
|
|
||||||
Stencil Plane Corners test passed.
|
|
||||||
Stencil Plane Operation test passed.
|
|
||||||
Stencil Plane Function test passed.
|
|
||||||
Depth Buffer Clear test passed.
|
|
||||||
Depth Buffer Function test passed.
|
|
||||||
Blend test passed.
|
|
||||||
Dither test passed.
|
|
||||||
LogicOp Function test does not exist for an RGB visual.
|
|
||||||
DrawPixels test passed.
|
|
||||||
CopyPixels test passed.
|
|
||||||
Bitmap Rasterization test passed.
|
|
||||||
Point Rasterization test passed.
|
|
||||||
Anti-aliased Point test passed.
|
|
||||||
Line Rasterization test passed.
|
|
||||||
Line Stipple test passed.
|
|
||||||
Anti-aliased Line test passed.
|
|
||||||
Horizontal and Vertical Line test passed.
|
|
||||||
Triangle Rasterization test passed.
|
|
||||||
Triangle Tile test passed.
|
|
||||||
Triangle Stipple test passed.
|
|
||||||
Anti-aliased Triangles test passed.
|
|
||||||
Quad Rasterization test passed.
|
|
||||||
Polygon Face test passed.
|
|
||||||
Polygon Cull test passed.
|
|
||||||
Polygon Stipple test passed.
|
|
||||||
Polygon Edge test passed.
|
|
||||||
Ambient Material test passed.
|
|
||||||
Ambient Scene test passed.
|
|
||||||
Attenuation Position test passed.
|
|
||||||
Diffuse Light test passed.
|
|
||||||
Diffuse Material test passed.
|
|
||||||
Diffuse Material Normal test passed.
|
|
||||||
Diffuse Material Positioning test passed.
|
|
||||||
Emissive Material test passed.
|
|
||||||
Specular Exponent test passed.
|
|
||||||
Specular Exponent Normal test passed.
|
|
||||||
Specular Local Eye Half Angle test passed.
|
|
||||||
Specular Light test passed.
|
|
||||||
Specular Material test passed.
|
|
||||||
Specular Normal test passed.
|
|
||||||
Spot Positioning test passed.
|
|
||||||
Spot Exponent and Positioning test passed.
|
|
||||||
Spot Exponent and Direction test passed.
|
|
||||||
Fog Exponential test passed.
|
|
||||||
Fog Linear test passed.
|
|
||||||
Texture Decal test passed.
|
|
||||||
Texture Border test passed.
|
|
||||||
Mipmaps Selection test passed.
|
|
||||||
Mipmaps Interpolation test passed.
|
|
||||||
Display Lists test passed.
|
|
||||||
Evaluator test passed.
|
|
||||||
Evaluator Color test passed.
|
|
||||||
Texture Edge Clamp test passed.
|
|
||||||
Packed Pixels test passed.
|
|
||||||
Texture LOD test passed.
|
|
||||||
Rescale Normal test passed.
|
|
||||||
Color Table test passed.
|
|
||||||
Convolution test passed.
|
|
||||||
Convolution Border test passed.
|
|
||||||
Histogram test passed.
|
|
||||||
MinMax test passed.
|
|
||||||
MultiTexture test passed.
|
|
||||||
|
|
||||||
Conform passed.
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
% conform -v 2 -p 4
|
|
||||||
|
|
||||||
OpenGL Conformance Test
|
|
||||||
Version 1.2
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path level = 4.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 35. Indirect Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (5, 6, 5, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
Must Pass test passed.
|
|
||||||
Divide By Zero test passed.
|
|
||||||
Viewport Clamp test passed.
|
|
||||||
Matrix Stack test passed.
|
|
||||||
Matrix Stack Mixing test passed.
|
|
||||||
Vertex Order test passed.
|
|
||||||
Transformations test passed.
|
|
||||||
Transformation Normal test passed.
|
|
||||||
Viewport Transformation test passed.
|
|
||||||
Buffer Clear test passed.
|
|
||||||
Buffer Corners test passed.
|
|
||||||
Buffer Color test passed.
|
|
||||||
Color Ramp test passed.
|
|
||||||
Mask test passed.
|
|
||||||
Buffer Invariance test passed.
|
|
||||||
Accumulation Buffer test passed.
|
|
||||||
Select test passed.
|
|
||||||
Feedback test passed.
|
|
||||||
Scissor test passed.
|
|
||||||
Alpha Plane Function test passed.
|
|
||||||
Stencil Plane Clear test passed.
|
|
||||||
Stencil Plane Corners test passed.
|
|
||||||
Stencil Plane Operation test passed.
|
|
||||||
Stencil Plane Function test passed.
|
|
||||||
Depth Buffer Clear test passed.
|
|
||||||
Depth Buffer Function test passed.
|
|
||||||
Blend test passed.
|
|
||||||
Dither test passed.
|
|
||||||
LogicOp Function test does not exist for an RGB visual.
|
|
||||||
DrawPixels test passed.
|
|
||||||
CopyPixels test passed.
|
|
||||||
Bitmap Rasterization test passed.
|
|
||||||
Point Rasterization test passed.
|
|
||||||
Anti-aliased Point test passed.
|
|
||||||
Line Rasterization test passed.
|
|
||||||
Line Stipple test passed.
|
|
||||||
Anti-aliased Line test passed.
|
|
||||||
Horizontal and Vertical Line test passed.
|
|
||||||
Triangle Rasterization test passed.
|
|
||||||
Triangle Tile test passed.
|
|
||||||
Triangle Stipple test passed.
|
|
||||||
Anti-aliased Triangles test passed.
|
|
||||||
Quad Rasterization test passed.
|
|
||||||
Polygon Face test passed.
|
|
||||||
Polygon Cull test passed.
|
|
||||||
Polygon Stipple test passed.
|
|
||||||
Polygon Edge test passed.
|
|
||||||
Ambient Material test passed.
|
|
||||||
Ambient Scene test passed.
|
|
||||||
Attenuation Position test passed.
|
|
||||||
Diffuse Light test passed.
|
|
||||||
Diffuse Material test passed.
|
|
||||||
Diffuse Material Normal test passed.
|
|
||||||
Diffuse Material Positioning test passed.
|
|
||||||
Emissive Material test passed.
|
|
||||||
Specular Exponent test passed.
|
|
||||||
Specular Exponent Normal test passed.
|
|
||||||
Specular Local Eye Half Angle test passed.
|
|
||||||
Specular Light test passed.
|
|
||||||
Specular Material test passed.
|
|
||||||
Specular Normal test passed.
|
|
||||||
Spot Positioning test passed.
|
|
||||||
Spot Exponent and Positioning test passed.
|
|
||||||
Spot Exponent and Direction test passed.
|
|
||||||
Fog Exponential test passed.
|
|
||||||
Fog Linear test passed.
|
|
||||||
Texture Decal test passed.
|
|
||||||
Texture Border test passed.
|
|
||||||
Mipmaps Selection test passed.
|
|
||||||
Mipmaps Interpolation test passed.
|
|
||||||
Display Lists test passed.
|
|
||||||
Evaluator test passed.
|
|
||||||
Evaluator Color test passed.
|
|
||||||
Texture Edge Clamp test passed.
|
|
||||||
Packed Pixels test passed.
|
|
||||||
Texture LOD test passed.
|
|
||||||
Rescale Normal test passed.
|
|
||||||
Color Table test passed.
|
|
||||||
Convolution test passed.
|
|
||||||
Convolution Border test passed.
|
|
||||||
Histogram test passed.
|
|
||||||
MinMax test passed.
|
|
||||||
MultiTexture test passed.
|
|
||||||
|
|
||||||
Conform passed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GLX CONFORMANCE TEST
|
|
||||||
====================
|
|
||||||
|
|
||||||
% conformx -v 2
|
|
||||||
|
|
||||||
OpenGL X Conformance Test
|
|
||||||
Version 1.1.1
|
|
||||||
|
|
||||||
Setup Report.
|
|
||||||
Verbose level = 2.
|
|
||||||
Random number seed = 1.
|
|
||||||
Path inactive.
|
|
||||||
|
|
||||||
Visual Report.
|
|
||||||
Display ID = 34. Direct Rendering.
|
|
||||||
Double Buffered.
|
|
||||||
RGBA (8, 8, 8, 0).
|
|
||||||
Stencil (8).
|
|
||||||
Depth (16).
|
|
||||||
Accumulation (16, 16, 16, 16).
|
|
||||||
|
|
||||||
Epsilon Report.
|
|
||||||
zero error epsilon = 0.000122.
|
|
||||||
RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
|
|
||||||
Depth buffer error epsilon = 0.000137.
|
|
||||||
Stencil plane error epsilon = 0.00404.
|
|
||||||
Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
|
|
||||||
|
|
||||||
Default State test passed.
|
|
||||||
glReadPixels() test passed.
|
|
||||||
Font test passed.
|
|
||||||
|
|
||||||
Conformx passed.
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
NOTE: conformx passes for all machine path levels (-p option).
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,106 +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>Contents</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
||||||
|
|
||||||
<!--Override a few values from the style sheet: -->
|
|
||||||
<style type="text/css">
|
|
||||||
<!--
|
|
||||||
body {
|
|
||||||
background-color: #cccccc;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
a:link {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
a:visited {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<b>Documentation</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="intro.html" target="_parent">Introduction</a>
|
|
||||||
<li><a href="index.html" target="_parent">News</a>
|
|
||||||
<li><a href="developers.html" target="_parent">Developers</a>
|
|
||||||
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
|
|
||||||
<li><a href="license.html" target="_parent">License & Copyright</a>
|
|
||||||
<li><a href="faq.html" target="_parent">FAQ</a>
|
|
||||||
<li><a href="relnotes.html" target="_parent">Release Notes</a>
|
|
||||||
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
|
|
||||||
<li><a href="conform.html" target="_parent">Conformance Testing</a>
|
|
||||||
<li>more docs below...
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Download / Install</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
|
|
||||||
<li><a href="install.html" target="_parent">Compiling / Installing</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="autoconf.html" target="_parent">Autoconf</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Resources</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="lists.html" target="_parent">Mailing Lists</a>
|
|
||||||
<li><a href="bugs.html" target="_parent">Bug Database</a>
|
|
||||||
<li><a href="webmaster.html" target="_parent">Webmaster</a>
|
|
||||||
<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>User Topics</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="shading.html" target="_parent">Shading Language</a>
|
|
||||||
<li><a href="egl.html" target="_parent">EGL</a>
|
|
||||||
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
|
|
||||||
<li><a href="envvars.html" target="_parent">Environment Variables</a>
|
|
||||||
<li><a href="osmesa.html" target="_parent">Off-Screen Rendering</a>
|
|
||||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
|
|
||||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
|
|
||||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
|
|
||||||
<li><a href="mangling.html" target="_parent">GL Function Name Mangling</a>
|
|
||||||
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
|
|
||||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
|
|
||||||
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
|
|
||||||
<li><a href="application-issues.html" target="_parent">Application Issues</a>
|
|
||||||
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Developer Topics</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="repository.html" target="_parent">Source Code Repository</a>
|
|
||||||
<li><a href="sourcetree.html" target="_parent">Source Code Tree</a>
|
|
||||||
<li><a href="utilities.html" target="_parent">Utilities</a>
|
|
||||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
|
|
||||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
|
|
||||||
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
|
|
||||||
<li><a href="submittingpatches.html" target="_parent">Submitting patches</a>
|
|
||||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
|
|
||||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Links</b>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
|
|
||||||
<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
|
|
||||||
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
|
||||||
<li><a href="http://planet.freedesktop.org" target="_parent">Developer blogs</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Hosted by:</b>
|
|
||||||
<br>
|
|
||||||
<blockquote>
|
|
||||||
<a href="http://sourceforge.net"
|
|
||||||
target="_parent">sourceforge.net</a>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,47 +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>Debugging Tips</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>Debugging Tips</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Normally Mesa (and OpenGL) records but does not notify the user of
|
|
||||||
errors. It is up to the application to call
|
|
||||||
<code>glGetError</code> to check for errors. Mesa supports an
|
|
||||||
environment variable, MESA_DEBUG, to help with debugging. If
|
|
||||||
MESA_DEBUG is defined, a message will be printed to stdout whenever
|
|
||||||
an error occurs.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
More extensive error checking is done when Mesa is compiled with the
|
|
||||||
DEBUG symbol defined. You'll have to edit the Make-config file and
|
|
||||||
add -DDEBUG to the CFLAGS line for your system configuration. You may
|
|
||||||
also want to replace any optimization flags with the -g flag so you can
|
|
||||||
use your debugger. After you've edited Make-config type 'make clean'
|
|
||||||
before recompiling.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
In your debugger you can set a breakpoint in _mesa_error() to trap Mesa
|
|
||||||
errors.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
There is a display list printing/debugging facility. See the end of
|
|
||||||
src/dlist.c for details.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,58 +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>Developers</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>Developers</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Both professional and volunteer developers contribute to Mesa.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<a href="http://www.vmware.com/">VMware</a>
|
|
||||||
employs several of the main Mesa developers including Brian Paul
|
|
||||||
and Keith Whitwell.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In the past, Tungsten Graphics contracts implemented many Mesa features
|
|
||||||
including:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>DRI drivers for Intel i965, i945, i915 and other chips
|
|
||||||
<li>Advanced memory manager and framebuffer object support
|
|
||||||
<li>Shading language compiler and OpenGL 2.0 support
|
|
||||||
<li>MiniGLX environment
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Other companies including
|
|
||||||
<a href="https://01.org/linuxgraphics">Intel</a>
|
|
||||||
and RedHat also actively contribute to the project.
|
|
||||||
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://www.lunarg.com/">LunarG</a> can be contacted
|
|
||||||
for custom Mesa / 3D graphics development.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Volunteers have made significant contributions to all parts of Mesa, including
|
|
||||||
complete device drivers.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,83 +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>Development 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>Development Notes</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="#extensions">Adding Extensions</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2 id="extensions">Adding Extensions</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To add a new GL extension to Mesa you have to do at least the following.
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
If glext.h doesn't define the extension, edit include/GL/gl.h and add
|
|
||||||
code like this:
|
|
||||||
<pre>
|
|
||||||
#ifndef GL_EXT_the_extension_name
|
|
||||||
#define GL_EXT_the_extension_name 1
|
|
||||||
/* declare the new enum tokens */
|
|
||||||
/* prototype the new functions */
|
|
||||||
/* TYPEDEFS for the new functions */
|
|
||||||
#endif
|
|
||||||
</pre>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
In the src/mapi/glapi/gen/ directory, add the new extension functions and
|
|
||||||
enums to the gl_API.xml file.
|
|
||||||
Then, a bunch of source files must be regenerated by executing the
|
|
||||||
corresponding Python scripts.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
|
|
||||||
if the extension requires driver capabilities not already exposed by
|
|
||||||
another extension.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Add a new entry to the src/mesa/main/extensions_table.h file.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
From this point, the best way to proceed is to find another extension,
|
|
||||||
similar to the new one, that's already implemented in Mesa and use it
|
|
||||||
as an example.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
If the new extension adds new GL state, the functions in get.c, enable.c
|
|
||||||
and attrib.c will most likely require new code.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
To determine if the new extension is active in the current context,
|
|
||||||
use the auto-generated _mesa_has_##name_str() function defined in
|
|
||||||
src/mesa/main/extensions.h.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
The dispatch tests check_table.cpp and dispatch_sanity.cpp
|
|
||||||
should be updated with details about the new extensions functions. These
|
|
||||||
tests are run using 'make check'
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,278 +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>GL Dispatch in Mesa</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>GL Dispatch in Mesa</h1>
|
|
||||||
|
|
||||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
|
|
||||||
fairly complicated. This document attempts to explain some of the issues
|
|
||||||
and introduce the reader to Mesa's implementation. Readers already familiar
|
|
||||||
with the issues around GL dispatch can safely skip ahead to the <a
|
|
||||||
href="#overview">overview of Mesa's implementation</a>.</p>
|
|
||||||
|
|
||||||
<h2>1. Complexity of GL Dispatch</h2>
|
|
||||||
|
|
||||||
<p>Every GL application has at least one object called a GL <em>context</em>.
|
|
||||||
This object, which is an implicit parameter to every GL function, stores all
|
|
||||||
of the GL related state for the application. Every texture, every buffer
|
|
||||||
object, every enable, and much, much more is stored in the context. Since
|
|
||||||
an application can have more than one context, the context to be used is
|
|
||||||
selected by a window-system dependent function such as
|
|
||||||
<tt>glXMakeContextCurrent</tt>.</p>
|
|
||||||
|
|
||||||
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
|
|
||||||
function, including the pointers returned by <tt>glXGetProcAddress</tt>, are
|
|
||||||
<em>context independent</em>. This means that no matter what context is
|
|
||||||
currently active, the same <tt>glVertex3fv</tt> function is used.</p>
|
|
||||||
|
|
||||||
<p>This creates the first bit of dispatch complexity. An application can
|
|
||||||
have two GL contexts. One context is a direct rendering context where
|
|
||||||
function calls are routed directly to a driver loaded within the
|
|
||||||
application's address space. The other context is an indirect rendering
|
|
||||||
context where function calls are converted to GLX protocol and sent to a
|
|
||||||
server. The same <tt>glVertex3fv</tt> has to do the right thing depending
|
|
||||||
on which context is current.</p>
|
|
||||||
|
|
||||||
<p>Highly optimized drivers or GLX protocol implementations may want to
|
|
||||||
change the behavior of GL functions depending on current state. For
|
|
||||||
example, <tt>glFogCoordf</tt> may operate differently depending on whether
|
|
||||||
or not fog is enabled.</p>
|
|
||||||
|
|
||||||
<p>In multi-threaded environments, it is possible for each thread to have a
|
|
||||||
different GL context current. This means that poor old <tt>glVertex3fv</tt>
|
|
||||||
has to know which GL context is current in the thread where it is being
|
|
||||||
called.</p>
|
|
||||||
|
|
||||||
<h2 id="overview">2. Overview of Mesa's Implementation</h2>
|
|
||||||
|
|
||||||
<p>Mesa uses two per-thread pointers. The first pointer stores the address
|
|
||||||
of the context current in the thread, and the second pointer stores the
|
|
||||||
address of the <em>dispatch table</em> associated with that context. The
|
|
||||||
dispatch table stores pointers to functions that actually implement
|
|
||||||
specific GL functions. Each time a new context is made current in a thread,
|
|
||||||
these pointers a updated.</p>
|
|
||||||
|
|
||||||
<p>The implementation of functions such as <tt>glVertex3fv</tt> becomes
|
|
||||||
conceptually simple:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Fetch the current dispatch table pointer.</li>
|
|
||||||
<li>Fetch the pointer to the real <tt>glVertex3fv</tt> function from the
|
|
||||||
table.</li>
|
|
||||||
<li>Call the real function.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>This can be implemented in just a few lines of C code. The file
|
|
||||||
<tt>src/mesa/glapi/glapitemp.h</tt> contains code very similar to this.</p>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<table border="1">
|
|
||||||
<tr><td><pre>
|
|
||||||
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
|
|
||||||
{
|
|
||||||
const struct _glapi_table * const dispatch = GET_DISPATCH();
|
|
||||||
|
|
||||||
(*dispatch->Vertex3f)(x, y, z);
|
|
||||||
}</pre></td></tr>
|
|
||||||
<tr><td>Sample dispatch function</td></tr></table>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p>The problem with this simple implementation is the large amount of
|
|
||||||
overhead that it adds to every GL function call.</p>
|
|
||||||
|
|
||||||
<p>In a multithreaded environment, a naive implementation of
|
|
||||||
<tt>GET_DISPATCH</tt> involves a call to <tt>pthread_getspecific</tt> or a
|
|
||||||
similar function. Mesa provides a wrapper function called
|
|
||||||
<tt>_glapi_get_dispatch</tt> that is used by default.</p>
|
|
||||||
|
|
||||||
<h2>3. Optimizations</h2>
|
|
||||||
|
|
||||||
<p>A number of optimizations have been made over the years to diminish the
|
|
||||||
performance hit imposed by GL dispatch. This section describes these
|
|
||||||
optimizations. The benefits of each optimization and the situations where
|
|
||||||
each can or cannot be used are listed.</p>
|
|
||||||
|
|
||||||
<h3>3.1. Dual dispatch table pointers</h3>
|
|
||||||
|
|
||||||
<p>The vast majority of OpenGL applications use the API in a single threaded
|
|
||||||
manner. That is, the application has only one thread that makes calls into
|
|
||||||
the GL. In these cases, not only do the calls to
|
|
||||||
<tt>pthread_getspecific</tt> hurt performance, but they are completely
|
|
||||||
unnecessary! It is possible to detect this common case and avoid these
|
|
||||||
calls.</p>
|
|
||||||
|
|
||||||
<p>Each time a new dispatch table is set, Mesa examines and records the ID
|
|
||||||
of the executing thread. If the same thread ID is always seen, Mesa knows
|
|
||||||
that the application is, from OpenGL's point of view, single threaded.</p>
|
|
||||||
|
|
||||||
<p>As long as an application is single threaded, Mesa stores a pointer to
|
|
||||||
the dispatch table in a global variable called <tt>_glapi_Dispatch</tt>.
|
|
||||||
The pointer is also stored in a per-thread location via
|
|
||||||
<tt>pthread_setspecific</tt>. When Mesa detects that an application has
|
|
||||||
become multithreaded, <tt>NULL</tt> is stored in <tt>_glapi_Dispatch</tt>.</p>
|
|
||||||
|
|
||||||
<p>Using this simple mechanism the dispatch functions can detect the
|
|
||||||
multithreaded case by comparing <tt>_glapi_Dispatch</tt> to <tt>NULL</tt>.
|
|
||||||
The resulting implementation of <tt>GET_DISPATCH</tt> is slightly more
|
|
||||||
complex, but it avoids the expensive <tt>pthread_getspecific</tt> call in
|
|
||||||
the common case.</p>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<table border="1">
|
|
||||||
<tr><td><pre>
|
|
||||||
#define GET_DISPATCH() \
|
|
||||||
(_glapi_Dispatch != NULL) \
|
|
||||||
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
|
|
||||||
</pre></td></tr>
|
|
||||||
<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<h3>3.2. ELF TLS</h3>
|
|
||||||
|
|
||||||
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
|
|
||||||
of per-thread, global storage. Variables can be put in this area using some
|
|
||||||
extensions to GCC. By storing the dispatch table pointer in this area, the
|
|
||||||
expensive call to <tt>pthread_getspecific</tt> and the test of
|
|
||||||
<tt>_glapi_Dispatch</tt> can be avoided.</p>
|
|
||||||
|
|
||||||
<p>The dispatch table pointer is stored in a new variable called
|
|
||||||
<tt>_glapi_tls_Dispatch</tt>. A new variable name is used so that a single
|
|
||||||
libGL can implement both interfaces. This allows the libGL to operate with
|
|
||||||
direct rendering drivers that use either interface. Once the pointer is
|
|
||||||
properly declared, <tt>GET_DISPACH</tt> becomes a simple variable
|
|
||||||
reference.</p>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<table border="1">
|
|
||||||
<tr><td><pre>
|
|
||||||
extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
|
||||||
__attribute__((tls_model("initial-exec")));
|
|
||||||
|
|
||||||
#define GET_DISPATCH() _glapi_tls_Dispatch
|
|
||||||
</pre></td></tr>
|
|
||||||
<tr><td>TLS <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p>Use of this path is controlled by the preprocessor define
|
|
||||||
<tt>GLX_USE_TLS</tt>. Any platform capable of using TLS should use this as
|
|
||||||
the default dispatch method.</p>
|
|
||||||
|
|
||||||
<h3>3.3. Assembly Language Dispatch Stubs</h3>
|
|
||||||
|
|
||||||
<p>Many platforms has difficulty properly optimizing the tail-call in the
|
|
||||||
dispatch stubs. Platforms like x86 that pass parameters on the stack seem
|
|
||||||
to have even more difficulty optimizing these routines. All of the dispatch
|
|
||||||
routines are very short, and it is trivial to create optimal assembly
|
|
||||||
language versions. The amount of optimization provided by using assembly
|
|
||||||
stubs varies from platform to platform and application to application.
|
|
||||||
However, by using the assembly stubs, many platforms can use an additional
|
|
||||||
space optimization (see <a href="#fixedsize">below</a>).</p>
|
|
||||||
|
|
||||||
<p>The biggest hurdle to creating assembly stubs is handling the various
|
|
||||||
ways that the dispatch table pointer can be accessed. There are four
|
|
||||||
different methods that can be used:</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>Using <tt>_glapi_Dispatch</tt> directly in builds for non-multithreaded
|
|
||||||
environments.</li>
|
|
||||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>_glapi_get_dispatch</tt> in
|
|
||||||
multithreaded environments.</li>
|
|
||||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>pthread_getspecific</tt> in
|
|
||||||
multithreaded environments.</li>
|
|
||||||
<li>Using <tt>_glapi_tls_Dispatch</tt> directly in TLS enabled
|
|
||||||
multithreaded environments.</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>People wishing to implement assembly stubs for new platforms should focus
|
|
||||||
on #4 if the new platform supports TLS. Otherwise, implement #2 followed by
|
|
||||||
#3. Environments that do not support multithreading are uncommon and not
|
|
||||||
terribly relevant.</p>
|
|
||||||
|
|
||||||
<p>Selection of the dispatch table pointer access method is controlled by a
|
|
||||||
few preprocessor defines.</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>If <tt>GLX_USE_TLS</tt> is defined, method #3 is used.</li>
|
|
||||||
<li>If <tt>HAVE_PTHREAD</tt> is defined, method #2 is used.</li>
|
|
||||||
<li>If none of the preceding are defined, method #1 is used.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Two different techniques are used to handle the various different cases.
|
|
||||||
On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used. In the preamble
|
|
||||||
of the assembly source file different implementations of the macro are
|
|
||||||
selected based on the defined preprocessor variables. The assembly code
|
|
||||||
then consists of a series of invocations of the macros such as:
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<table border="1">
|
|
||||||
<tr><td><pre>
|
|
||||||
GL_STUB(Color3fv, _gloffset_Color3fv)
|
|
||||||
</pre></td></tr>
|
|
||||||
<tr><td>SPARC Assembly Implementation of <tt>glColor3fv</tt></td></tr></table>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p>The benefit of this technique is that changes to the calling pattern
|
|
||||||
(i.e., addition of a new dispatch table pointer access method) require fewer
|
|
||||||
changed lines in the assembly code.</p>
|
|
||||||
|
|
||||||
<p>However, this technique can only be used on platforms where the function
|
|
||||||
implementation does not change based on the parameters passed to the
|
|
||||||
function. For example, since x86 passes all parameters on the stack, no
|
|
||||||
additional code is needed to save and restore function parameters around a
|
|
||||||
call to <tt>pthread_getspecific</tt>. Since x86-64 passes parameters in
|
|
||||||
registers, varying amounts of code needs to be inserted around the call to
|
|
||||||
<tt>pthread_getspecific</tt> to save and restore the GL function's
|
|
||||||
parameters.</p>
|
|
||||||
|
|
||||||
<p>The other technique, used by platforms like x86-64 that cannot use the
|
|
||||||
first technique, is to insert <tt>#ifdef</tt> within the assembly
|
|
||||||
implementation of each function. This makes the assembly file considerably
|
|
||||||
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
|
|
||||||
<tt>glapi_x86.S</tt>) and causes simple changes to the function
|
|
||||||
implementation to generate many lines of diffs. Since the assembly files
|
|
||||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
|
|
||||||
isn't a significant problem.</p>
|
|
||||||
|
|
||||||
<p>Once a new assembly file is created, it must be inserted in the build
|
|
||||||
system. There are two steps to this. The file must first be added to
|
|
||||||
<tt>src/mesa/sources</tt>. That gets the file built and linked. The second
|
|
||||||
step is to add the correct <tt>#ifdef</tt> magic to
|
|
||||||
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
|
|
||||||
dispatch functions from being built.</p>
|
|
||||||
|
|
||||||
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
|
|
||||||
|
|
||||||
<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
|
|
||||||
associates function names with pointers to those functions. This table is
|
|
||||||
stored in <tt>src/mesa/glapi/glprocs.h</tt>. For different reasons on
|
|
||||||
different platforms, storing all of those pointers is inefficient. On most
|
|
||||||
platforms, including all known platforms that support TLS, we can avoid this
|
|
||||||
added overhead.</p>
|
|
||||||
|
|
||||||
<p>If the assembly stubs are all the same size, the pointer need not be
|
|
||||||
stored for every function. The location of the function can instead be
|
|
||||||
calculated by multiplying the size of the dispatch stub by the offset of the
|
|
||||||
function in the table. This value is then added to the address of the first
|
|
||||||
dispatch stub.</p>
|
|
||||||
|
|
||||||
<p>This path is activated by adding the correct <tt>#ifdef</tt> magic to
|
|
||||||
<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
|
|
||||||
included.</p>
|
|
||||||
|
|
||||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,119 +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>Getting Mesa</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>Downloading</h1>
|
|
||||||
|
|
||||||
<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).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When a new release is coming, release candidates (betas) may be found
|
|
||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/beta/">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Unpacking</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa releases are available in three formats: .tar.bz2, .tar.gz, and .zip
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To unpack .tar.gz files:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
tar zxf MesaLib-x.y.z.tar.gz
|
|
||||||
</pre>
|
|
||||||
or
|
|
||||||
<pre>
|
|
||||||
gzcat MesaLib-x.y.z.tar.gz | tar xf -
|
|
||||||
</pre>
|
|
||||||
or
|
|
||||||
<pre>
|
|
||||||
gunzip MesaLib-x.y.z.tar.gz ; tar xf MesaLib-x.y.z.tar
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
To unpack .tar.bz2 files:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
bunzip2 -c MesaLib-x.y.z.tar.gz | tar xf -
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
To unpack .zip files:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
unzip MesaLib-x.y.z.zip
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Contents</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
After unpacking you'll have these files and directories (among others):
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
Makefile - top-level Makefile for most systems
|
|
||||||
configs/ - makefile parameter files for various systems
|
|
||||||
include/ - GL header (include) files
|
|
||||||
bin/ - shell scripts for making shared libraries, etc
|
|
||||||
docs/ - documentation
|
|
||||||
src/ - source code for libraries
|
|
||||||
src/mesa - sources for the main Mesa library and device drivers
|
|
||||||
src/gallium - sources for Gallium and Gallium drivers
|
|
||||||
src/glx - sources for building libGL with full GLX and DRI support
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Proceed to the <a href="install.html">compilation and installation
|
|
||||||
instructions</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Demos, GLUT, and GLU</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A package of SGI's GLU library is available
|
|
||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/glu/">here</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A package of Mark Kilgard's GLUT library is available
|
|
||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/glut/">here</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Mesa demos collection is available
|
|
||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/">here</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In the past, GLUT, GLU and the Mesa demos were released in conjunction with
|
|
||||||
Mesa releases. But since GLUT, GLU and the demos change infrequently, they
|
|
||||||
were split off into their own git repositories:
|
|
||||||
|
|
||||||
<a href="http://cgit.freedesktop.org/mesa/glut/">GLUT</a>,
|
|
||||||
<a href="http://cgit.freedesktop.org/mesa/glu/">GLU</a> and
|
|
||||||
<a href="http://cgit.freedesktop.org/mesa/demos/">Demos</a>,
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
291
docs/egl.html
291
docs/egl.html
@@ -1,291 +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 EGL</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 EGL</h1>
|
|
||||||
|
|
||||||
<p>The current version of EGL in Mesa implements EGL 1.4. More information
|
|
||||||
about EGL can be found at
|
|
||||||
<a href="http://www.khronos.org/egl/">
|
|
||||||
http://www.khronos.org/egl/</a>.</p>
|
|
||||||
|
|
||||||
<p>The Mesa's implementation of EGL uses a driver architecture. The main
|
|
||||||
library (<code>libEGL</code>) is window system neutral. It provides the EGL
|
|
||||||
API entry points and helper functions for use by the drivers. Drivers are
|
|
||||||
dynamically loaded by the main library and most of the EGL API calls are
|
|
||||||
directly dispatched to the drivers.</p>
|
|
||||||
|
|
||||||
<p>The driver in use decides the window system to support.</p>
|
|
||||||
|
|
||||||
<h2>Build EGL</h2>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>Run <code>configure</code> with the desired client APIs and enable
|
|
||||||
the driver for your hardware. For example</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
$ ./configure --enable-gles1 --enable-gles2 \
|
|
||||||
--with-dri-drivers=... \
|
|
||||||
--with-gallium-drivers=...
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>The main library and OpenGL is enabled by default. The first two options
|
|
||||||
above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The last two
|
|
||||||
options enables the listed classic and and Gallium drivers respectively.</p>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>Build and install Mesa as usual.</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>In the given example, it will build and install <code>libEGL</code>,
|
|
||||||
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>, and one
|
|
||||||
or more EGL drivers.</p>
|
|
||||||
|
|
||||||
<h3>Configure Options</h3>
|
|
||||||
|
|
||||||
<p>There are several options that control the build of EGL at configuration
|
|
||||||
time</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt><code>--enable-egl</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>By default, EGL is enabled. When disabled, the main library and the drivers
|
|
||||||
will not be built.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--with-egl-driver-dir</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>The directory EGL drivers should be installed to. If not specified, EGL
|
|
||||||
drivers will be installed to <code>${libdir}/egl</code>.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--with-egl-platforms</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>List the platforms (window systems) to support. Its argument is a comma
|
|
||||||
separated string such as <code>--with-egl-platforms=x11,drm</code>. It decides
|
|
||||||
the platforms a driver may support. The first listed platform is also used by
|
|
||||||
the main library to decide the native platform: the platform the EGL native
|
|
||||||
types such as <code>EGLNativeDisplayType</code> or
|
|
||||||
<code>EGLNativeWindowType</code> defined for.</p>
|
|
||||||
|
|
||||||
<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.
|
|
||||||
Unless for special needs, the build system should
|
|
||||||
select the right platforms automatically.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--enable-gles1</code></dt>
|
|
||||||
<dt><code>--enable-gles2</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>These options enable OpenGL ES support in OpenGL. The result is one big
|
|
||||||
internal library that supports multiple APIs.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--enable-shared-glapi</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
|
|
||||||
This options makes <code>libGL</code> use the shared <code>libglapi</code>. This
|
|
||||||
is required if applications mix OpenGL and OpenGL ES.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h2>Use EGL</h2>
|
|
||||||
|
|
||||||
<h3>Demos</h3>
|
|
||||||
|
|
||||||
<p>There are demos for the client APIs supported by EGL. They can be found in
|
|
||||||
mesa/demos repository.</p>
|
|
||||||
|
|
||||||
<h3>Environment Variables</h3>
|
|
||||||
|
|
||||||
<p>There are several environment variables that control the behavior of EGL at
|
|
||||||
runtime</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt><code>EGL_DRIVERS_PATH</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>By default, the main library will look for drivers in the directory where
|
|
||||||
the drivers are installed to. This variable specifies a list of
|
|
||||||
colon-separated directories where the main library will look for drivers, in
|
|
||||||
addition to the default directory. This variable is ignored for setuid/setgid
|
|
||||||
binaries.</p>
|
|
||||||
|
|
||||||
<p>This variable is usually set to test an uninstalled build. For example, one
|
|
||||||
may set</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
$ export LD_LIBRARY_PATH=$mesa/lib
|
|
||||||
$ export EGL_DRIVERS_PATH=$mesa/lib/egl
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>to test a build without installation</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>EGL_DRIVER</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>This variable specifies a full path to or the name of an EGL driver. It
|
|
||||||
forces the specified EGL driver to be loaded. It comes in handy when one wants
|
|
||||||
to test a specific driver. This variable is ignored for setuid/setgid
|
|
||||||
binaries.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>EGL_PLATFORM</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>This variable specifies the native platform. The valid values are the same
|
|
||||||
as those for <code>--with-egl-platforms</code>. When the variable is not set,
|
|
||||||
the main library uses the first platform listed in
|
|
||||||
<code>--with-egl-platforms</code> as the native platform.</p>
|
|
||||||
|
|
||||||
<p>Extensions like <code>EGL_MESA_drm_display</code> define new functions to
|
|
||||||
create displays for non-native platforms. These extensions are usually used by
|
|
||||||
applications that support non-native platforms. Setting this variable is
|
|
||||||
probably required only for some of the demos found in mesa/demo repository.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>EGL_LOG_LEVEL</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>This changes the log level of the main library and the drivers. The valid
|
|
||||||
values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
|
|
||||||
<code>fatal</code>.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h2>EGL Drivers</h2>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt><code>egl_dri2</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
|
|
||||||
It functions as a DRI driver loader. For <code>x11</code> support, it talks to
|
|
||||||
the X server directly using (XCB-)DRI2 protocol.</p>
|
|
||||||
|
|
||||||
<p>This driver can share DRI drivers with <code>libGL</code>.</p>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<h2>Packaging</h2>
|
|
||||||
|
|
||||||
<p>The ABI between the main library and its drivers are not stable. Nor is
|
|
||||||
there a plan to stabilize it at the moment.</p>
|
|
||||||
|
|
||||||
<h2>Developers</h2>
|
|
||||||
|
|
||||||
<p>The sources of the main library and drivers can be found at
|
|
||||||
<code>src/egl/</code>.</p>
|
|
||||||
|
|
||||||
<h3>Lifetime of Display Resources</h3>
|
|
||||||
|
|
||||||
<p>Contexts and surfaces are examples of display resources. They might live
|
|
||||||
longer than the display that creates them.</p>
|
|
||||||
|
|
||||||
<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all
|
|
||||||
display resources should be destroyed. Similarly, when a thread is released
|
|
||||||
through <code>eglReleaseThread</code>, all current display resources should be
|
|
||||||
released. Another way to destroy or release resources is through functions
|
|
||||||
such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p>
|
|
||||||
|
|
||||||
<p>When a resource that is current to some thread is destroyed, the resource
|
|
||||||
should not be destroyed immediately. EGL requires the resource to live until
|
|
||||||
it is no longer current. A driver usually calls
|
|
||||||
<code>eglIs<Resource>Bound</code> to check if a resource is bound
|
|
||||||
(current) to any thread in the destroy callbacks. If it is still bound, the
|
|
||||||
resource is not destroyed.</p>
|
|
||||||
|
|
||||||
<p>The main library will mark destroyed current resources as unlinked. In a
|
|
||||||
driver's <code>MakeCurrent</code> callback,
|
|
||||||
<code>eglIs<Resource>Linked</code> can then be called to check if a newly
|
|
||||||
released resource is linked to a display. If it is not, the last reference to
|
|
||||||
the resource is removed and the driver should destroy the resource. But it
|
|
||||||
should be careful here because <code>MakeCurrent</code> might be called with an
|
|
||||||
uninitialized display.</p>
|
|
||||||
|
|
||||||
<p>This is the only mechanism provided by the main library to help manage the
|
|
||||||
resources. The drivers are responsible to the correct behavior as defined by
|
|
||||||
EGL.</p>
|
|
||||||
|
|
||||||
<h3><code>EGL_RENDER_BUFFER</code></h3>
|
|
||||||
|
|
||||||
<p>In EGL, the color buffer a context should try to render to is decided by the
|
|
||||||
binding surface. It should try to render to the front buffer if the binding
|
|
||||||
surface has <code>EGL_RENDER_BUFFER</code> set to
|
|
||||||
<code>EGL_SINGLE_BUFFER</code>; If the same context is later bound to a
|
|
||||||
surface with <code>EGL_RENDER_BUFFER</code> set to
|
|
||||||
<code>EGL_BACK_BUFFER</code>, the context should try to render to the back
|
|
||||||
buffer. However, the context is allowed to make the final decision as to which
|
|
||||||
color buffer it wants to or is able to render to.</p>
|
|
||||||
|
|
||||||
<p>For pbuffer surfaces, the render buffer is always
|
|
||||||
<code>EGL_BACK_BUFFER</code>. And for pixmap surfaces, the render buffer is
|
|
||||||
always <code>EGL_SINGLE_BUFFER</code>. Unlike window surfaces, EGL spec
|
|
||||||
requires their <code>EGL_RENDER_BUFFER</code> values to be honored. As a
|
|
||||||
result, a driver should never set <code>EGL_PIXMAP_BIT</code> or
|
|
||||||
<code>EGL_PBUFFER_BIT</code> bits of a config if the contexts created with the
|
|
||||||
config won't be able to honor the <code>EGL_RENDER_BUFFER</code> of pixmap or
|
|
||||||
pbuffer surfaces.</p>
|
|
||||||
|
|
||||||
<p>It should also be noted that pixmap and pbuffer surfaces are assumed to be
|
|
||||||
single-buffered, in that <code>eglSwapBuffers</code> has no effect on them. It
|
|
||||||
is desirable that a driver allocates a private color buffer for each pbuffer
|
|
||||||
surface created. If the window system the driver supports has native pbuffers,
|
|
||||||
or if the native pixmaps have more than one color buffers, the driver should
|
|
||||||
carefully attach the native color buffers to the EGL surfaces, re-route them if
|
|
||||||
required.</p>
|
|
||||||
|
|
||||||
<p>There is no defined behavior as to, for example, how
|
|
||||||
<code>glDrawBuffer</code> interacts with <code>EGL_RENDER_BUFFER</code>. Right
|
|
||||||
now, it is desired that the draw buffer in a client API be fixed for pixmap and
|
|
||||||
pbuffer surfaces. Therefore, the driver is responsible to guarantee that the
|
|
||||||
client API renders to the specified render buffer for pixmap and pbuffer
|
|
||||||
surfaces.</p>
|
|
||||||
|
|
||||||
<h3><code>EGLDisplay</code> Mutex</h3>
|
|
||||||
|
|
||||||
The <code>EGLDisplay</code> will be locked before calling any of the dispatch
|
|
||||||
functions (well, except for GetProcAddress which does not take an
|
|
||||||
<code>EGLDisplay</code>). This guarantees that the same dispatch function will
|
|
||||||
not be called with the sample display at the same time. If a driver has access
|
|
||||||
to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
|
|
||||||
should as well lock the display before using it.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,326 +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>Environment Variables</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>Environment Variables</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Normally, no environment variables need to be set. Most of the environment
|
|
||||||
variables used by Mesa/Gallium are for debugging purposes, but they can
|
|
||||||
sometimes be useful for debugging end-user issues.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>LibGL environment variables</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
|
|
||||||
If set to 'verbose' additional information will be printed.
|
|
||||||
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
|
|
||||||
<li>LIBGL_ALWAYS_INDIRECT - forces an indirect rendering context/connection.
|
|
||||||
<li>LIBGL_ALWAYS_SOFTWARE - if set, always use software rendering
|
|
||||||
<li>LIBGL_NO_DRAWARRAYS - if set do not use DrawArrays GLX protocol (for debugging)
|
|
||||||
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
|
|
||||||
calls per second.
|
|
||||||
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set (the value does not matter)
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Core Mesa environment variables</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>MESA_NO_ASM - if set, disables all assembly language optimizations
|
|
||||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
|
|
||||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
|
|
||||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
|
|
||||||
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
|
|
||||||
if the application generates a GL_INVALID_ENUM error, a corresponding error
|
|
||||||
message indicating where the error occurred, and possibly why, will be
|
|
||||||
printed to stderr.<br>
|
|
||||||
|
|
||||||
For release builds, MESA_DEBUG defaults to off (no debug output).
|
|
||||||
|
|
||||||
MESA_DEBUG accepts the following comma-separated list of named
|
|
||||||
flags, which adds extra behaviour to just set MESA_DEBUG=1:
|
|
||||||
<ul>
|
|
||||||
<li>silent - turn off debug messages. Only useful for debug builds.</li>
|
|
||||||
<li>flush - flush after each drawing command</li>
|
|
||||||
<li>incomplete_tex - extra debug messages when a texture is incomplete</li>
|
|
||||||
<li>incomplete_fbo - extra debug messages when a fbo is incomplete</li>
|
|
||||||
<li>context - create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB) and
|
|
||||||
print error and performance messages to stderr (or MESA_LOG_FILE).</li>
|
|
||||||
</ul>
|
|
||||||
<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
|
|
||||||
etc., rather than stderr
|
|
||||||
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
|
|
||||||
fragment programs (intended for developers only)
|
|
||||||
<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
|
|
||||||
operations with vertex programs (intended for developers only).
|
|
||||||
Setting this variable automatically sets the MESA_TEX_PROG variable as well.
|
|
||||||
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
|
|
||||||
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
|
|
||||||
and disable the GL_EXT_bar extension.
|
|
||||||
<li>MESA_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted
|
|
||||||
by extension year.
|
|
||||||
If this variable is set to year X, only extensions defined on or before year
|
|
||||||
X will be reported.
|
|
||||||
This is to work-around a bug in some games where the extension string is
|
|
||||||
copied into a fixed-size buffer without truncating.
|
|
||||||
If the extension string is too long, the buffer overrun can cause the game
|
|
||||||
to crash.
|
|
||||||
This is a work-around for that.
|
|
||||||
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
|
|
||||||
glGetString(GL_VERSION) and possibly the GL API type.
|
|
||||||
<ul>
|
|
||||||
<li> The format should be MAJOR.MINOR[FC]
|
|
||||||
<li> FC is an optional suffix that indicates a forward compatible context.
|
|
||||||
This is only valid for versions >= 3.0.
|
|
||||||
<li> GL versions < 3.0 are set to a compatibility (non-Core) profile
|
|
||||||
<li> GL versions = 3.0, see below
|
|
||||||
<li> GL versions > 3.0 are set to a Core profile
|
|
||||||
<li> Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
|
|
||||||
<ul>
|
|
||||||
<li> 2.1 - select a compatibility (non-Core) profile with GL version 2.1
|
|
||||||
<li> 3.0 - select a compatibility (non-Core) profile with GL version 3.0
|
|
||||||
<li> 3.0FC - select a Core+Forward Compatible profile with GL version 3.0
|
|
||||||
<li> 3.1 - select a Core profile with GL version 3.1
|
|
||||||
<li> 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
|
|
||||||
</ul>
|
|
||||||
<li> Mesa may not really implement all the features of the given version.
|
|
||||||
(for developers only)
|
|
||||||
</ul>
|
|
||||||
<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
|
|
||||||
glGetString(GL_VERSION) for OpenGL ES.
|
|
||||||
<ul>
|
|
||||||
<li> The format should be MAJOR.MINOR
|
|
||||||
<li> Examples: 2.0, 3.0, 3.1
|
|
||||||
<li> Mesa may not really implement all the features of the given version.
|
|
||||||
(for developers only)
|
|
||||||
</ul>
|
|
||||||
<li>MESA_GLSL_VERSION_OVERRIDE - changes the value returned by
|
|
||||||
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
|
|
||||||
"130". Mesa will not really implement all the features of the given language version
|
|
||||||
if it's higher than what's normally reported. (for developers only)
|
|
||||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
|
|
||||||
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Mesa Xlib driver environment variables</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The following are only applicable to the Mesa Xlib software driver.
|
|
||||||
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
|
|
||||||
<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode
|
|
||||||
<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer,
|
|
||||||
either "pixmap" or "ximage"
|
|
||||||
<li>MESA_GAMMA - gamma correction coefficients for red, green, blue channels
|
|
||||||
<li>MESA_XSYNC - enable synchronous X behavior (for debugging only)
|
|
||||||
<li>MESA_GLX_FORCE_CI - if set, force GLX to treat 8bpp visuals as CI visuals
|
|
||||||
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
|
|
||||||
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
|
|
||||||
<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware.
|
|
||||||
This is useful for debugging hangs, etc.</li>
|
|
||||||
<li>INTEL_DEBUG - a comma-separated list of named flags, which do various things:
|
|
||||||
<ul>
|
|
||||||
<li>tex - emit messages about textures.</li>
|
|
||||||
<li>state - emit messages about state flag tracking</li>
|
|
||||||
<li>blit - emit messages about blit operations</li>
|
|
||||||
<li>miptree - emit messages about miptrees</li>
|
|
||||||
<li>perf - emit messages about performance issues</li>
|
|
||||||
<li>perfmon - emit messages about AMD_performance_monitor</li>
|
|
||||||
<li>bat - emit batch information</li>
|
|
||||||
<li>pix - emit messages about pixel operations</li>
|
|
||||||
<li>buf - emit messages about buffer objects</li>
|
|
||||||
<li>fbo - emit messages about framebuffers</li>
|
|
||||||
<li>fs - dump shader assembly for fragment shaders</li>
|
|
||||||
<li>gs - dump shader assembly for geometry shaders</li>
|
|
||||||
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
|
||||||
<li>prim - emit messages about drawing primitives</li>
|
|
||||||
<li>vert - emit messages about vertex assembly</li>
|
|
||||||
<li>dri - emit messages about the DRI interface</li>
|
|
||||||
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
|
|
||||||
<li>stats - enable statistics counters. you probably actually want perfmon or intel_gpu_top instead.</li>
|
|
||||||
<li>urb - emit messages about URB setup</li>
|
|
||||||
<li>vs - dump shader assembly for vertex shaders</li>
|
|
||||||
<li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
|
|
||||||
<li>aub - dump batches into an AUB trace for use with simulation tools</li>
|
|
||||||
<li>shader_time - record how much GPU time is spent in each shader</li>
|
|
||||||
<li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
|
|
||||||
<li>blorp - emit messages about the blorp operations (blits & clears)</li>
|
|
||||||
<li>nodualobj - suppress generation of dual-object geometry shader code</li>
|
|
||||||
<li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
|
|
||||||
<li>ann - annotate IR in assembly dumps</li>
|
|
||||||
<li>no8 - don't generate SIMD8 fragment shader</li>
|
|
||||||
<li>vec4 - force vec4 mode in vertex shader</li>
|
|
||||||
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
|
||||||
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
|
||||||
<li>cs - dump shader assembly for compute shaders</li>
|
|
||||||
<li>hex - print instruction hex dump with the disassembly</li>
|
|
||||||
<li>nocompact - disable instruction compaction</li>
|
|
||||||
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
|
||||||
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
|
||||||
<li>l3 - emit messages about the new L3 state during transitions</li>
|
|
||||||
<li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
|
|
||||||
<li>norbc - disable single sampled render buffer compression</li>
|
|
||||||
</ul>
|
|
||||||
<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
|
|
||||||
accuracy over performance in trig functions.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>RADEON_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>EGL environment variables</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa EGL supports different sets of environment variables. See the
|
|
||||||
<a href="egl.html">Mesa EGL</a> page for the details.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Gallium environment variables</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>GALLIUM_HUD - draws various information on the screen, like framerate,
|
|
||||||
cpu load, driver statistics, performance counters, etc.
|
|
||||||
Set GALLIUM_HUD=help and run e.g. glxgears for more info.
|
|
||||||
<li>GALLIUM_HUD_PERIOD - sets the hud update rate in seconds (float). Use zero
|
|
||||||
to update every frame. The default period is 1/2 second.
|
|
||||||
<li>GALLIUM_HUD_VISIBLE - control default visibility, defaults to true.
|
|
||||||
<li>GALLIUM_HUD_TOGGLE_SIGNAL - toggle visibility via user specified signal.
|
|
||||||
Especially useful to toggle hud at specific points of application and
|
|
||||||
disable for unencumbered viewing the rest of the time. For example, set
|
|
||||||
GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_TOGGLE_SIGNAL to 10 (SIGUSR1).
|
|
||||||
Use kill -10 <pid> to toggle the hud as desired.
|
|
||||||
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
|
|
||||||
hud values into files.
|
|
||||||
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=1 for
|
|
||||||
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
|
|
||||||
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
|
|
||||||
rather than stderr.
|
|
||||||
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
|
|
||||||
variables which are used, and their current values.
|
|
||||||
<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
|
|
||||||
<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
|
|
||||||
print any errors to stderr.
|
|
||||||
<LI>DRAW_FSE - ???
|
|
||||||
<LI>DRAW_NO_FSE - ???
|
|
||||||
<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
|
|
||||||
shaders, vertex fetch, etc.
|
|
||||||
<li>ST_DEBUG - controls debug output from the Mesa/Gallium state tracker.
|
|
||||||
Setting to "tgsi", for example, will print all the TGSI shaders.
|
|
||||||
See src/mesa/state_tracker/st_debug.c for other options.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Clover state tracker environment variables</h3>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
|
||||||
program in clBuildProgram.
|
|
||||||
<li>CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
|
||||||
program in clCompileProgram.
|
|
||||||
<li>CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
|
||||||
program in clLinkProgram.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Softpipe driver environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
|
|
||||||
to stderr
|
|
||||||
<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
|
|
||||||
to stderr
|
|
||||||
<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd. For profiling purposes.
|
|
||||||
<li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for
|
|
||||||
vertex shading processing.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>LLVMpipe driver environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
|
|
||||||
<li>LP_DEBUG - a comma-separated list of debug options is accepted. See the
|
|
||||||
source code for details.
|
|
||||||
<li>LP_PERF - a comma-separated list of options to selectively no-op various
|
|
||||||
parts of the driver. See the source code for details.
|
|
||||||
<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
|
|
||||||
Zero turns off threading completely. The default value is the number of CPU
|
|
||||||
cores present.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>VMware SVGA driver environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>SVGA_FORCE_SWTNL - force use of software vertex transformation
|
|
||||||
<li>SVGA_NO_SWTNL - don't allow software vertex transformation fallbacks
|
|
||||||
(will often result in incorrect rendering).
|
|
||||||
<li>SVGA_DEBUG - for dumping shaders, constant buffers, etc. See the code
|
|
||||||
for details.
|
|
||||||
<li>See the driver code for other, lesser-used variables.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>VA-API state tracker environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>VAAPI_MPEG4_ENABLED - enable MPEG4 for VA-API, disabled by default.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>VC4 driver environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>VC4_DEBUG - a comma-separated list of named flags, which do various things:
|
|
||||||
<ul>
|
|
||||||
<li>cl - dump command list during creation</li>
|
|
||||||
<li>qpu - dump generated QPU instructions</li>
|
|
||||||
<li>qir - dump QPU IR during program compile</li>
|
|
||||||
<li>nir - dump NIR during program compile</li>
|
|
||||||
<li>tgsi - dump TGSI during program compile</li>
|
|
||||||
<li>shaderdb - dump program compile information for shader-db analysis</li>
|
|
||||||
<li>perf - print during performance-related events</li>
|
|
||||||
<li>norast - skip actual hardware execution of commands</li>
|
|
||||||
<li>always_flush - flush after each draw call</li>
|
|
||||||
<li>always_sync - wait for finish after each flush</li>
|
|
||||||
<li>dump - write a GPU command stream trace file (VC4 simulator only)</li>
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Other Gallium drivers have their own environment variables. These may change
|
|
||||||
frequently so the source code should be consulted for details.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,51 +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 Extensions</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 Extensions</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A number of extensions have been developed especially for Mesa.
|
|
||||||
The specifications follow.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="specs/MESA_agp_offset.spec">MESA_agp_offset.spec</a>
|
|
||||||
<li><a href="specs/MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</a>
|
|
||||||
<li><a href="specs/MESA_drm_image.spec">MESA_drm_image.spec</a>
|
|
||||||
<li><a href="specs/MESA_multithread_makecurrent.spec">MESA_multithread_makecurrent.spec</a>
|
|
||||||
<li><a href="specs/OLD/MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</a> (obsolete)
|
|
||||||
<li><a href="specs/MESA_pack_invert.spec">MESA_pack_invert.spec</a>
|
|
||||||
<li><a href="specs/MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</a>
|
|
||||||
<li><a href="specs/OLD/MESA_program_debug.spec">MESA_program_debug.spec</a> (obsolete)
|
|
||||||
<li><a href="specs/MESA_release_buffers.spec">MESA_release_buffers.spec</a>
|
|
||||||
<li><a href="specs/OLD/MESA_resize_buffers.spec">MESA_resize_buffers.spec</a> (obsolete)
|
|
||||||
<li><a href="specs/MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</a>
|
|
||||||
<li><a href="specs/MESA_shader_debug.spec">MESA_shader_debug.spec</a>
|
|
||||||
<li><a href="specs/OLD/MESA_sprite_point.spec">MESA_sprite_point.spec</a> (obsolete)
|
|
||||||
<li><a href="specs/MESA_swap_control.spec">MESA_swap_control.spec</a>
|
|
||||||
<li><a href="specs/MESA_swap_frame_usage.spec">MESA_swap_frame_usage.spec</a>
|
|
||||||
<li><a href="specs/MESA_texture_array.spec">MESA_texture_array.spec</a>
|
|
||||||
<li><a href="specs/MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</a>
|
|
||||||
<li><a href="specs/OLD/MESA_trace.spec">MESA_trace.spec</a> (obsolete)
|
|
||||||
<li><a href="specs/MESA_window_pos.spec">MESA_window_pos.spec</a>
|
|
||||||
<li><a href="specs/MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</a>
|
|
||||||
<li><a href="specs/WL_bind_wayland_display.spec">WL_bind_wayland_display.spec</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
392
docs/faq.html
392
docs/faq.html
@@ -1,392 +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 FAQ</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">
|
|
||||||
|
|
||||||
<center>
|
|
||||||
<h1>Mesa Frequently Asked Questions</h1>
|
|
||||||
Last updated: 9 October 2012
|
|
||||||
</center>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<h2>Index</h2>
|
|
||||||
<a href="#part1">1. High-level Questions and Answers</a>
|
|
||||||
<br>
|
|
||||||
<a href="#part2">2. Compilation and Installation Problems</a>
|
|
||||||
<br>
|
|
||||||
<a href="#part3">3. Runtime / Rendering Problems</a>
|
|
||||||
<br>
|
|
||||||
<a href="#part4">4. Developer Questions</a>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="part1">1. High-level Questions and Answers</h1>
|
|
||||||
|
|
||||||
<h2>1.1 What is Mesa?</h2>
|
|
||||||
<p>
|
|
||||||
Mesa is an open-source implementation of the OpenGL specification.
|
|
||||||
OpenGL is a programming library for writing interactive 3D applications.
|
|
||||||
See the <a href="http://www.opengl.org/">OpenGL website</a> for more
|
|
||||||
information.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Mesa 9.x supports the OpenGL 3.1 specification.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
|
|
||||||
<p>
|
|
||||||
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
|
|
||||||
drivers for X.org.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>See the <a href="http://dri.freedesktop.org/">DRI website</a>
|
|
||||||
for more information.</li>
|
|
||||||
<li>See <a href="https://01.org/linuxgraphics">01.org</a>
|
|
||||||
for more information about Intel drivers.</li>
|
|
||||||
<li>See <a href="http://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
|
|
||||||
for more information about Nouveau drivers.</li>
|
|
||||||
<li>See <a href="http://www.x.org/wiki/RadeonFeature">www.x.org/wiki/RadeonFeature</a>
|
|
||||||
for more information about Radeon drivers.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>1.3 What purpose does Mesa serve today?</h2>
|
|
||||||
<p>
|
|
||||||
Hardware-accelerated OpenGL implementations are available for most popular
|
|
||||||
operating systems today.
|
|
||||||
Still, Mesa serves at least these purposes:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Mesa is used as the core of the open-source X.org DRI
|
|
||||||
hardware drivers.
|
|
||||||
</li>
|
|
||||||
<li>Mesa is quite portable and allows OpenGL to be used on systems
|
|
||||||
that have no other OpenGL solution.
|
|
||||||
</li>
|
|
||||||
<li>Software rendering with Mesa serves as a reference for validating the
|
|
||||||
hardware drivers.
|
|
||||||
</li>
|
|
||||||
<li>A software implementation of OpenGL is useful for experimentation,
|
|
||||||
such as testing new rendering techniques.
|
|
||||||
</li>
|
|
||||||
<li>Mesa can render images with deep color channels: 16-bit integer
|
|
||||||
and 32-bit floating point color channels are supported.
|
|
||||||
This capability is only now appearing in hardware.
|
|
||||||
</li>
|
|
||||||
<li>Mesa's internal limits (max lights, clip planes, texture size, etc) can be
|
|
||||||
changed for special needs (hardware limits are hard to overcome).
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?</h2>
|
|
||||||
<p>
|
|
||||||
<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
|
|
||||||
On systems running the X Window System it does all its rendering through
|
|
||||||
the Xlib API:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>The GLX API is supported, but it's really just an emulation of the
|
|
||||||
real thing.
|
|
||||||
<li>The GLX wire protocol is not supported and there's no OpenGL extension
|
|
||||||
loaded by the X server.
|
|
||||||
<li>There is no hardware acceleration.
|
|
||||||
<li>The OpenGL library, libGL.so, contains everything (the programming API,
|
|
||||||
the GLX functions and all the rendering code).
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
|
|
||||||
within the DRI (Direct Rendering Infrastructure):
|
|
||||||
<ul>
|
|
||||||
<li>The libGL.so library provides the GL and GLX API functions, a GLX
|
|
||||||
protocol encoder, and a device driver loader.
|
|
||||||
<li>The device driver modules (such as r200_dri.so) contain a built-in
|
|
||||||
copy of the core Mesa code.
|
|
||||||
<li>The X server loads the GLX module.
|
|
||||||
The GLX module decodes incoming GLX protocol and dispatches the commands
|
|
||||||
to a rendering module.
|
|
||||||
For the DRI, this module is basically a software Mesa renderer.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
|
|
||||||
<p>
|
|
||||||
This wasn't easy in the past.
|
|
||||||
Now, the DRI drivers are included in the Mesa tree and can be compiled
|
|
||||||
separately from the X server.
|
|
||||||
Just follow the Mesa <a href="install.html">compilation instructions</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
|
|
||||||
<p>
|
|
||||||
Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html">
|
|
||||||
OpenGL Sample Implementation (SI)</a> is available.
|
|
||||||
The SI was written during the time that OpenGL was originally designed.
|
|
||||||
Unfortunately, development of the SI has stagnated.
|
|
||||||
Mesa is much more up to date with modern features and extensions.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://sourceforge.net/projects/ogl-es/">Vincent</a> is
|
|
||||||
an open-source implementation of OpenGL ES for mobile devices.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://www.dsbox.com/minigl.html">miniGL</a>
|
|
||||||
is a subset of OpenGL for PalmOS devices.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://bellard.org/TinyGL/">TinyGL</a>
|
|
||||||
is a subset of OpenGL.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://sourceforge.net/projects/softgl/">SoftGL</a>
|
|
||||||
is an OpenGL subset for mobile devices.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://chromium.sourceforge.net/">Chromium</a>
|
|
||||||
isn't a conventional OpenGL implementation (it's layered upon OpenGL),
|
|
||||||
but it does export the OpenGL API. It allows tiled rendering, sort-last
|
|
||||||
rendering, etc.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://www.ticalc.org/archives/files/fileinfo/361/36173.html">ClosedGL</a>
|
|
||||||
is an OpenGL subset library for TI graphing calculators.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
There may be other open OpenGL implementations, but Mesa is the most
|
|
||||||
popular and feature-complete.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="part2">2. Compilation and Installation Problems</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.1 What's the easiest way to install Mesa?</h2>
|
|
||||||
<p>
|
|
||||||
If you're using a Linux-based system, your distro CD most likely already
|
|
||||||
has Mesa packages (like RPM or DEB) which you can easily install.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h2>
|
|
||||||
<p>
|
|
||||||
You're application is written in IRIS GL, not OpenGL.
|
|
||||||
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
|
|
||||||
entirely.
|
|
||||||
Mesa's not the solution.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.3 Where is the GLUT library?</h2>
|
|
||||||
<p>
|
|
||||||
GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
|
|
||||||
If you don't already have GLUT installed, you should grab
|
|
||||||
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.4 Where is the GLw library?</h2>
|
|
||||||
<p>
|
|
||||||
GLw (OpenGL widget library) is now available from a separate <a href="http://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.5 What's the proper place for the libraries and headers?</h2>
|
|
||||||
<p>
|
|
||||||
On Linux-based systems you'll want to follow the
|
|
||||||
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html">Linux ABI</a> standard.
|
|
||||||
Basically you'll want the following:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>/usr/include/GL/gl.h - the main OpenGL header
|
|
||||||
</li><li>/usr/include/GL/glu.h - the OpenGL GLU (utility) header
|
|
||||||
</li><li>/usr/include/GL/glx.h - the OpenGL GLX header
|
|
||||||
</li><li>/usr/include/GL/glext.h - the OpenGL extensions header
|
|
||||||
</li><li>/usr/include/GL/glxext.h - the OpenGL GLX extensions header
|
|
||||||
</li><li>/usr/include/GL/osmesa.h - the Mesa off-screen rendering header
|
|
||||||
</li><li>/usr/lib/libGL.so - a symlink to libGL.so.1
|
|
||||||
</li><li>/usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
|
|
||||||
</li><li>/usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library. xyz denotes the
|
|
||||||
Mesa version number.
|
|
||||||
</li></ul>
|
|
||||||
<p>
|
|
||||||
When configuring Mesa, there are three autoconf options that affect the install
|
|
||||||
location that you should take care with: <code>--prefix</code>,
|
|
||||||
<code>--libdir</code>, and <code>--with-dri-driverdir</code>. To install Mesa
|
|
||||||
into the system location where it will be available for all programs to use, set
|
|
||||||
<code>--prefix=/usr</code>. Set <code>--libdir</code> to where your Linux
|
|
||||||
distribution installs system libraries, usually either <code>/usr/lib</code> or
|
|
||||||
<code>/usr/lib64</code>. Set <code>--with-dri-driverdir</code> to the directory
|
|
||||||
where your Linux distribution installs DRI drivers. To find your system's DRI
|
|
||||||
driver directory, try executing <code>find /usr -type d -name dri</code>. For
|
|
||||||
example, if the <code>find</code> command listed <code>/usr/lib64/dri</code>,
|
|
||||||
then set <code>--with-dri-driverdir=/usr/lib64/dri</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
After determining the correct values for the install location, configure Mesa
|
|
||||||
with <code>./configure --prefix=/usr --libdir=xxx --with-dri-driverdir=xxx</code>
|
|
||||||
and then install with <code>sudo make install</code>.
|
|
||||||
</p>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="part3">3. Runtime / Rendering Problems</h1>
|
|
||||||
|
|
||||||
<h2>3.1 Rendering is slow / why isn't my graphics hardware being used?</h2>
|
|
||||||
<p>
|
|
||||||
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
|
|
||||||
(eg. classic swrast, softpipe or llvmpipe)
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
You can run the <code>glxinfo</code> program to learn about your OpenGL
|
|
||||||
library.
|
|
||||||
Look for the <code>OpenGL vendor</code> and <code>OpenGL renderer</code> values.
|
|
||||||
That will identify who's OpenGL library with which driver you're using and what sort of
|
|
||||||
hardware it has detected.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
If you're using a hardware accelerated driver you want <code>direct rendering: Yes</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
If your DRI-based driver isn't working, go to the
|
|
||||||
<a href="http://dri.freedesktop.org/">DRI website</a> for trouble-shooting information.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>3.2 I'm seeing errors in depth (Z) buffering. Why?</h2>
|
|
||||||
<p>
|
|
||||||
Make sure the ratio of the far to near clipping planes isn't too great.
|
|
||||||
Look
|
|
||||||
<a href="http://www.opengl.org/resources/faq/technical/depthbuffer.htm#0040">here</a>
|
|
||||||
for details.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Mesa uses a 16-bit depth buffer by default which is smaller and faster
|
|
||||||
to clear than a 32-bit buffer but not as accurate.
|
|
||||||
If you need a deeper you can modify the parameters to
|
|
||||||
<code> glXChooseVisual</code> in your code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>3.3 Why Isn't depth buffering working at all?</h2>
|
|
||||||
<p>
|
|
||||||
Be sure you're requesting a depth buffered-visual. If you set the MESA_DEBUG
|
|
||||||
environment variable it will warn you about trying to enable depth testing
|
|
||||||
when you don't have a depth buffer.
|
|
||||||
</p>
|
|
||||||
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
|
|
||||||
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
|
|
||||||
called with a non-zero value for GLX_DEPTH_SIZE.
|
|
||||||
</p>
|
|
||||||
<p>This discussion applies to stencil buffers, accumulation buffers and
|
|
||||||
alpha channels too.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>3.4 Why does glGetString() always return NULL?</h2>
|
|
||||||
<p>
|
|
||||||
Be sure you have an active/current OpenGL rendering context before
|
|
||||||
calling glGetString.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>3.5 GL_POINTS and GL_LINES don't touch the right pixels</h2>
|
|
||||||
<p>
|
|
||||||
If you're trying to draw a filled region by using GL_POINTS or GL_LINES
|
|
||||||
and seeing holes or gaps it's because of a float-to-int rounding problem.
|
|
||||||
But this is not a bug.
|
|
||||||
See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips".
|
|
||||||
Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
|
|
||||||
will fix the problem.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="part4">4. Developer Questions</h1>
|
|
||||||
|
|
||||||
<h2>4.1 How can I contribute?</h2>
|
|
||||||
<p>
|
|
||||||
First, join the <a href="lists.html">mesa-dev mailing list</a>.
|
|
||||||
That's where Mesa development is discussed.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The <a href="http://www.opengl.org/documentation">
|
|
||||||
OpenGL Specification</a> is the bible for OpenGL implementation work.
|
|
||||||
You should read it.
|
|
||||||
</p>
|
|
||||||
<p>Most of the Mesa development work involves implementing new OpenGL
|
|
||||||
extensions, writing hardware drivers (for the DRI), and code optimization.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>4.2 How do I write a new device driver?</h2>
|
|
||||||
<p>
|
|
||||||
Unfortunately, writing a device driver isn't easy.
|
|
||||||
It requires detailed understanding of OpenGL, the Mesa code, and your
|
|
||||||
target hardware/operating system.
|
|
||||||
3D graphics are not simple.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The best way to get started is to use an existing driver as your starting
|
|
||||||
point.
|
|
||||||
For a classic hardware driver, the i965 driver is a good example.
|
|
||||||
For a Gallium3D hardware driver, the r300g, r600g and the i915g are good examples.
|
|
||||||
</p>
|
|
||||||
<p>The DRI website has more information about writing hardware drivers.
|
|
||||||
The process isn't well document because the Mesa driver interface changes
|
|
||||||
over time, and we seldom have spare time for writing documentation.
|
|
||||||
That being said, many people have managed to figure out the process.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Joining the appropriate mailing lists and asking questions (and searching
|
|
||||||
the archives) is a good way to get information.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?</h2>
|
|
||||||
<p>
|
|
||||||
The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt">specification for the extension</a>
|
|
||||||
indicates that there are intellectual property (IP) and/or patent issues
|
|
||||||
to be dealt with.
|
|
||||||
</p>
|
|
||||||
<p>We've been unsuccessful in getting a response from S3 (or whoever owns
|
|
||||||
the IP nowadays) to indicate whether or not an open source project can
|
|
||||||
implement the extension (specifically the compression/decompression
|
|
||||||
algorithms).
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
In the mean time, a 3rd party <a href="http://dri.freedesktop.org/wiki/S3TC">
|
|
||||||
plug-in library</a> is available.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,337 +0,0 @@
|
|||||||
# Status of OpenGL extensions in Mesa
|
|
||||||
|
|
||||||
Here's how to read this file:
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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 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
|
|
||||||
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
|
|
||||||
------------------------------------------------------- ------------------------
|
|
||||||
|
|
||||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
|
||||||
|
|
||||||
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 ()
|
|
||||||
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 ()
|
|
||||||
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 ()
|
|
||||||
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 ()
|
|
||||||
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 (freedreno (*), llvmpipe (*), softpipe (*), swr (*))
|
|
||||||
|
|
||||||
(*) freedreno, llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
|
||||||
|
|
||||||
|
|
||||||
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
|
|
||||||
|
|
||||||
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 ()
|
|
||||||
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 ()
|
|
||||||
|
|
||||||
|
|
||||||
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 (freedreno, swr)
|
|
||||||
GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno, swr)
|
|
||||||
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno, swr)
|
|
||||||
GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno, swr)
|
|
||||||
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno, swr)
|
|
||||||
GL_ARB_texture_multisample (Multisample textures) DONE (swr)
|
|
||||||
GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno, swr)
|
|
||||||
GL_ARB_sync (Fence objects) DONE (freedreno, swr)
|
|
||||||
GLX_ARB_create_context_profile DONE
|
|
||||||
|
|
||||||
|
|
||||||
GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
|
||||||
|
|
||||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, swr)
|
|
||||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
|
||||||
GL_ARB_occlusion_query2 DONE (freedreno, swr)
|
|
||||||
GL_ARB_sampler_objects DONE (all drivers)
|
|
||||||
GL_ARB_shader_bit_encoding DONE (freedreno, swr)
|
|
||||||
GL_ARB_texture_rgb10_a2ui DONE (freedreno, swr)
|
|
||||||
GL_ARB_texture_swizzle DONE (freedreno, swr)
|
|
||||||
GL_ARB_timer_query DONE (swr)
|
|
||||||
GL_ARB_instanced_arrays DONE (freedreno, swr)
|
|
||||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (freedreno, swr)
|
|
||||||
|
|
||||||
|
|
||||||
GL 4.0, GLSL 4.00 --- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_draw_indirect DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_gpu_shader5 DONE (i965/gen7+)
|
|
||||||
- '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/hsw+, llvmpipe, softpipe)
|
|
||||||
GL_ARB_sample_shading DONE (i965/gen6+, nv50)
|
|
||||||
GL_ARB_shader_subroutine DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_tessellation_shader DONE (i965/gen7+)
|
|
||||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965/gen6+, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
|
|
||||||
GL_ARB_texture_gather DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
|
|
||||||
GL_ARB_transform_feedback2 DONE (i965/gen7+, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
|
||||||
|
|
||||||
|
|
||||||
GL 4.1, GLSL 4.10 --- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_get_program_binary DONE (0 binary formats)
|
|
||||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
|
||||||
GL_ARB_shader_precision DONE (i965/hsw+, all drivers that support GLSL 4.10)
|
|
||||||
GL_ARB_vertex_attrib_64bit DONE (i965/hsw+, llvmpipe, softpipe)
|
|
||||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
|
|
||||||
|
|
||||||
|
|
||||||
GL 4.2, GLSL 4.20 -- all DONE: i965/hsw+, nvc0, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_texture_compression_bptc DONE (i965, r600)
|
|
||||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
|
||||||
GL_ARB_shader_atomic_counters DONE (i965, softpipe)
|
|
||||||
GL_ARB_texture_storage DONE (all drivers)
|
|
||||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_base_instance DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_shader_image_load_store DONE (i965, softpipe)
|
|
||||||
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
|
|
||||||
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
|
|
||||||
GL_ARB_shading_language_packing DONE (all drivers)
|
|
||||||
GL_ARB_internalformat_query DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
|
||||||
|
|
||||||
|
|
||||||
GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
|
||||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
|
||||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
|
||||||
GL_ARB_compute_shader DONE (i965, softpipe)
|
|
||||||
GL_ARB_copy_image DONE (i965, nv50, r600, softpipe, llvmpipe)
|
|
||||||
GL_KHR_debug DONE (all drivers)
|
|
||||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
|
||||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, r600, llvmpipe, softpipe)
|
|
||||||
GL_ARB_framebuffer_no_attachments DONE (i965, r600, softpipe)
|
|
||||||
GL_ARB_internalformat_query2 DONE (all drivers)
|
|
||||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
|
||||||
GL_ARB_multi_draw_indirect DONE (i965, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_program_interface_query DONE (all drivers)
|
|
||||||
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
|
||||||
GL_ARB_shader_image_size DONE (i965, softpipe)
|
|
||||||
GL_ARB_shader_storage_buffer_object DONE (i965, softpipe)
|
|
||||||
GL_ARB_stencil_texturing DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_texture_buffer_range DONE (nv50, i965, r600, llvmpipe)
|
|
||||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
|
||||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
|
||||||
GL_ARB_texture_view DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
|
||||||
|
|
||||||
|
|
||||||
GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, radeonsi
|
|
||||||
|
|
||||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
|
||||||
GL_ARB_buffer_storage DONE (i965, nv50, r600)
|
|
||||||
GL_ARB_clear_texture DONE (i965, nv50, r600)
|
|
||||||
GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe)
|
|
||||||
- compile-time constant expressions DONE
|
|
||||||
- explicit byte offsets for blocks DONE
|
|
||||||
- forced alignment within blocks DONE
|
|
||||||
- specified vec4-slot component numbers DONE (i965, nv50, llvmpipe, softpipe)
|
|
||||||
- specified transform/feedback layout DONE
|
|
||||||
- input/output block locations DONE
|
|
||||||
GL_ARB_multi_bind DONE (all drivers)
|
|
||||||
GL_ARB_query_buffer_object DONE (i965/hsw+)
|
|
||||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_texture_stencil8 DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
|
|
||||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+)
|
|
||||||
GL_ARB_clip_control DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_derivative_control DONE (i965, nv50, r600)
|
|
||||||
GL_ARB_direct_state_access DONE (all drivers)
|
|
||||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
|
||||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600)
|
|
||||||
GL_ARB_texture_barrier DONE (i965, nv50, r600)
|
|
||||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
|
||||||
GL_KHR_robustness DONE (i965)
|
|
||||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
|
||||||
|
|
||||||
These are the extensions cherry-picked to make GLES 3.1
|
|
||||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi
|
|
||||||
|
|
||||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
|
||||||
GL_ARB_compute_shader DONE (i965/gen7+, softpipe)
|
|
||||||
GL_ARB_draw_indirect DONE (i965/gen7+, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
|
||||||
GL_ARB_framebuffer_no_attachments DONE (i965/gen7+, r600, softpipe)
|
|
||||||
GL_ARB_program_interface_query DONE (all drivers)
|
|
||||||
GL_ARB_shader_atomic_counters DONE (i965/gen7+, softpipe)
|
|
||||||
GL_ARB_shader_image_load_store DONE (i965/gen7+, softpipe)
|
|
||||||
GL_ARB_shader_image_size DONE (i965/gen7+, softpipe)
|
|
||||||
GL_ARB_shader_storage_buffer_object DONE (i965/gen7+, softpipe)
|
|
||||||
GL_ARB_shading_language_packing DONE (all drivers)
|
|
||||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
|
||||||
GL_ARB_stencil_texturing DONE (nv50, r600, llvmpipe, softpipe, swr)
|
|
||||||
GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, r600, llvmpipe, softpipe)
|
|
||||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
|
||||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
|
||||||
GS5 Enhanced textureGather DONE (i965/gen7+, r600)
|
|
||||||
GS5 Packing/bitfield/conversion functions DONE (i965/gen6+, r600)
|
|
||||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
|
||||||
|
|
||||||
Additional functionality not covered above:
|
|
||||||
glMemoryBarrierByRegion DONE
|
|
||||||
glGetTexLevelParameter[fi]v - needs updates DONE
|
|
||||||
glGetBooleani_v - restrict to GLES enums
|
|
||||||
gl_HelperInvocation support DONE (i965, r600)
|
|
||||||
|
|
||||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
|
|
||||||
|
|
||||||
GL_EXT_color_buffer_float DONE (all drivers)
|
|
||||||
GL_KHR_blend_equation_advanced DONE (i965, nvc0)
|
|
||||||
GL_KHR_debug DONE (all drivers)
|
|
||||||
GL_KHR_robustness DONE (i965, nvc0, radeonsi)
|
|
||||||
GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
|
|
||||||
GL_OES_copy_image DONE (all drivers)
|
|
||||||
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
|
|
||||||
GL_OES_draw_elements_base_vertex DONE (all drivers)
|
|
||||||
GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi)
|
|
||||||
GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
|
|
||||||
GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi)
|
|
||||||
GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi)
|
|
||||||
GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi)
|
|
||||||
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
|
|
||||||
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
|
|
||||||
GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
|
|
||||||
GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
|
|
||||||
GL_OES_texture_border_clamp DONE (all drivers)
|
|
||||||
GL_OES_texture_buffer DONE (i965, nvc0, radeonsi)
|
|
||||||
GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi)
|
|
||||||
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
|
|
||||||
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
|
|
||||||
|
|
||||||
Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
|
|
||||||
|
|
||||||
GL_ARB_bindless_texture started (airlied)
|
|
||||||
GL_ARB_cl_event not started
|
|
||||||
GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
|
|
||||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
|
|
||||||
GL_ARB_fragment_shader_interlock not started
|
|
||||||
GL_ARB_gl_spirv not started
|
|
||||||
GL_ARB_gpu_shader_int64 started (airlied for core and Gallium, idr for i965)
|
|
||||||
GL_ARB_indirect_parameters DONE (nvc0, radeonsi)
|
|
||||||
GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
|
|
||||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, softpipe, swr)
|
|
||||||
GL_ARB_post_depth_coverage DONE (i965)
|
|
||||||
GL_ARB_robustness_isolation not started
|
|
||||||
GL_ARB_sample_locations not started
|
|
||||||
GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr)
|
|
||||||
GL_ARB_shader_atomic_counter_ops DONE (nvc0, radeonsi, softpipe)
|
|
||||||
GL_ARB_shader_ballot not started
|
|
||||||
GL_ARB_shader_clock DONE (i965/gen7+)
|
|
||||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
|
||||||
GL_ARB_shader_group_vote DONE (nvc0)
|
|
||||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, radeonsi, softpipe, llvmpipe, swr)
|
|
||||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+)
|
|
||||||
GL_ARB_sparse_buffer not started
|
|
||||||
GL_ARB_sparse_texture not started
|
|
||||||
GL_ARB_sparse_texture2 not started
|
|
||||||
GL_ARB_sparse_texture_clamp not started
|
|
||||||
GL_ARB_texture_filter_minmax not started
|
|
||||||
GL_ARB_transform_feedback_overflow_query not started
|
|
||||||
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
|
|
||||||
GL_KHR_no_error not started
|
|
||||||
GL_KHR_texture_compression_astc_hdr DONE (core only)
|
|
||||||
GL_KHR_texture_compression_astc_sliced_3d not started
|
|
||||||
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
|
|
||||||
GL_OES_EGL_image DONE (all drivers)
|
|
||||||
GL_OES_EGL_image_external_essl3 not started
|
|
||||||
GL_OES_required_internalformat not started - GLES2 extension based on OpenGL ES 3.0 feature
|
|
||||||
GL_OES_surfaceless_context DONE (all drivers)
|
|
||||||
GL_OES_texture_compression_astc DONE (core only)
|
|
||||||
GL_OES_texture_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
|
||||||
GL_OES_texture_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
|
||||||
GL_OES_texture_half_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
|
||||||
GL_OES_texture_half_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
|
||||||
GL_OES_texture_view not started - based on GL_ARB_texture_view
|
|
||||||
GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
|
|
||||||
GLX_ARB_context_flush_control not started
|
|
||||||
GLX_ARB_robustness_application_isolation not started
|
|
||||||
GLX_ARB_robustness_share_group_isolation not started
|
|
||||||
|
|
||||||
The following extensions are not part of any OpenGL or OpenGL ES version, and
|
|
||||||
we DO NOT WANT implementations of these extensions for Mesa.
|
|
||||||
|
|
||||||
GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
|
|
||||||
GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
|
|
||||||
GL_ARB_shading_language_include Not interesting
|
|
||||||
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
|
|
||||||
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
|
|
||||||
|
|
||||||
More info about these features and the work involved can be found at
|
|
||||||
http://dri.freedesktop.org/wiki/MissingFunctionality
|
|
||||||
BIN
docs/gears.png
BIN
docs/gears.png
Binary file not shown.
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -1,105 +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>Help Wanted</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>Help Wanted / To-Do List</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
We can always use more help with the Mesa project.
|
|
||||||
Here are some specific ideas and areas where help would be appreciated:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<b>Driver patching and testing.</b>
|
|
||||||
Patches are often posted to the <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev mailing list</a>, but aren't
|
|
||||||
immediately checked into git because not enough people are testing them.
|
|
||||||
Just applying patches, testing and reporting back is helpful.
|
|
||||||
<li>
|
|
||||||
<b>Driver debugging.</b>
|
|
||||||
There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa">bug database</a>.
|
|
||||||
<li>
|
|
||||||
<b>Remove aliasing warnings.</b>
|
|
||||||
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
|
||||||
issues in the code.
|
|
||||||
<li>
|
|
||||||
<b>Windows driver building, testing and maintenance.</b>
|
|
||||||
Fixing MSVC builds.
|
|
||||||
<li>
|
|
||||||
<b>Contribute more tests to
|
|
||||||
<a href="http://piglit.freedesktop.org/">Piglit</a>.</b>
|
|
||||||
<li>
|
|
||||||
<b>Automatic testing.
|
|
||||||
</b>
|
|
||||||
It would be great if someone would set up an automated system for grabbing
|
|
||||||
the latest Mesa code and run tests (such as piglit) then report issues to
|
|
||||||
the mailing list.
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You can find some further To-do lists here:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Common To-Do lists:</b>
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/features.txt">
|
|
||||||
<b>features.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
|
||||||
<li><a href="http://dri.freedesktop.org/wiki/MissingFunctionality">
|
|
||||||
<b>MissingFunctionality</b></a> - Detailed information about missing OpenGL features.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Driver specific To-Do lists:</b>
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/docs/llvm-todo.txt">
|
|
||||||
<b>LLVMpipe</b></a> - Software driver using LLVM for runtime code generation.</li>
|
|
||||||
<li><a href="http://dri.freedesktop.org/wiki/RadeonsiToDo">
|
|
||||||
<b>radeonsi</b></a> - Driver for AMD Southern Island.</li>
|
|
||||||
<li><a href="http://dri.freedesktop.org/wiki/R600ToDo">
|
|
||||||
<b>r600g</b></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
|
||||||
<li><a href="http://dri.freedesktop.org/wiki/R300ToDo">
|
|
||||||
<b>r300g</b></a> - Driver for ATI R300 - R500.</li>
|
|
||||||
<li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/i915/TODO">
|
|
||||||
<b>i915g</b></a> - Driver for Intel i915/i945.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
If you want to do something new in Mesa, first join the Mesa developer's
|
|
||||||
mailing list.
|
|
||||||
Then post a message to propose what you want to do, just to make sure
|
|
||||||
there's no issues.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Anyone is welcome to contribute code to the Mesa project.
|
|
||||||
By doing so, it's assumed that you agree to the code's licensing terms.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Finally:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>Try to write high-quality code that follows the existing style.
|
|
||||||
<li>Use uniform indentation, write comments, use meaningful identifiers, etc.
|
|
||||||
<li>Test your code thoroughly. Include test programs if appropriate.
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
2076
docs/index.html
2076
docs/index.html
File diff suppressed because it is too large
Load Diff
@@ -1,252 +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>Compiling and Installing</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>Compiling and Installing</h1>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li><a href="#prereq-general">Prerequisites for building</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#prereq-general">General prerequisites</a>
|
|
||||||
<li><a href="#prereq-dri">For DRI and hardware acceleration</a>
|
|
||||||
</ul>
|
|
||||||
<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
|
|
||||||
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
|
|
||||||
<li><a href="#android">Building with AOSP (Android)</a>
|
|
||||||
<li><a href="#libs">Library Information</a>
|
|
||||||
<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="prereq-general">1. Prerequisites for building</h1>
|
|
||||||
|
|
||||||
<h2>1.1 General</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Build system.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Autoconf is required when building on *nix platforms.
|
|
||||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
|
||||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
|
||||||
</li>
|
|
||||||
<li>Android Build system when building as native Android component. Autoconf
|
|
||||||
is used when when building ARC.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The following compilers are known to work, if you know of others or you're
|
|
||||||
willing to maintain support for other compiler get in touch.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>GCC 4.2.0 or later (some parts of Mesa may require later versions)
|
|
||||||
<li>clang - exact minimum requirement is currently unknown.
|
|
||||||
<li>Microsoft Visual Studio 2013 Update 4 or later is required, for building on Windows.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Third party/extra tools.
|
|
||||||
<br>
|
|
||||||
<strong>Note</strong>: These should not be required, when building from a release tarball. If
|
|
||||||
you think you've spotted a bug let developers know by filing a
|
|
||||||
<a href="bugs.html">bug report</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.python.org/">Python</a> - Python is required.
|
|
||||||
Version 2.6.4 or later should work.
|
|
||||||
</li>
|
|
||||||
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
|
||||||
Python Mako module is required. Version 0.3.4 or later should work.
|
|
||||||
</li>
|
|
||||||
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
|
||||||
<div>
|
|
||||||
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
|
|
||||||
(or later) should work.
|
|
||||||
On Windows with MinGW, install flex and bison with:
|
|
||||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
|
||||||
For MSVC on Windows, install
|
|
||||||
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="prereq-dri">1.2 Requirements</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The requirements depends on the features selected at configure stage.
|
|
||||||
Check/install the respective -devel package as prompted by the configure error
|
|
||||||
message.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Here are some common ways to retrieve most/all of the dependencies based on
|
|
||||||
the packaging tool used by your distro.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES
|
|
||||||
yum-builddep mesa # yum Fedora, OpenSuse(?)
|
|
||||||
dnf builddep mesa # dnf Fedora
|
|
||||||
apt-get build-dep mesa # Debian and derivatives
|
|
||||||
... # others
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The primary method to build Mesa on Unix systems is with autoconf.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The general approach is the standard:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
sudo make install
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
But please read the <a href="autoconf.html">detailed autoconf instructions</a>
|
|
||||||
for more details.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To build Mesa with SCons on Linux or Windows do
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
scons
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
The build output will be placed in
|
|
||||||
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
|
|
||||||
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
|
|
||||||
by -debug for debug builds.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
This will create:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe (or llvmpipe), binary compatible with Windows's opengl32.dll
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Put them all in the same directory to test them.
|
|
||||||
|
|
||||||
Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
|
||||||
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="android">4. Building with AOSP (Android)</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
|
||||||
your experience might vary.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In order to achieve that one should update their local manifest to point to the
|
|
||||||
upstream repo, set the approapriate BOARD_GPU_DRIVERS and build the
|
|
||||||
libGLES_mesa library.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
FINISHME: Improve on the instructions add references to Rob H repos/Jenkins,
|
|
||||||
Android-x86 and/or other resources.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="libs">5. Library Information</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When compilation has finished, look in the top-level <code>lib/</code>
|
|
||||||
(or <code>lib64/</code>) directory.
|
|
||||||
You'll see a set of library files similar to this:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
|
|
||||||
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
|
|
||||||
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
|
|
||||||
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
|
|
||||||
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
|
|
||||||
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
|
|
||||||
<br>
|
|
||||||
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
If you built the DRI hardware drivers, you'll also see the DRI drivers:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
|
|
||||||
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so
|
|
||||||
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
|
|
||||||
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
If you built with Gallium support, look in lib/gallium/ for Gallium-based
|
|
||||||
versions of libGL and device drivers.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Running <code>make install</code> will install package configuration files
|
|
||||||
for the pkg-config utility.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When compiling your OpenGL application you can use pkg-config to determine
|
|
||||||
the proper compiler and linker flags.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For example, compiling and linking a GLUT application can be done with:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
380
docs/intro.html
380
docs/intro.html
@@ -1,380 +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 Introduction</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>Introduction</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa is an open-source implementation of the
|
|
||||||
<a href="http://www.opengl.org/">OpenGL</a> specification -
|
|
||||||
a system for rendering interactive 3D graphics.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A variety of device drivers allows Mesa to be used in many different
|
|
||||||
environments ranging from software emulation to complete hardware acceleration
|
|
||||||
for modern GPUs.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa ties into several other open-source projects: the
|
|
||||||
<a href="http://dri.freedesktop.org/">Direct Rendering
|
|
||||||
Infrastructure</a> and <a href="http://x.org">X.org</a> to
|
|
||||||
provide OpenGL support to users of X on Linux, FreeBSD and other operating
|
|
||||||
systems.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Project History</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Mesa project was originally started by Brian Paul.
|
|
||||||
Here's a short history of the project.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
August, 1993: I begin working on Mesa in my spare time. The project
|
|
||||||
has no name at that point. I was simply interested in writing a simple
|
|
||||||
3D graphics library that used the then-new OpenGL API. I was partially
|
|
||||||
inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL.
|
|
||||||
I had been programming with IRIS GL since 1991.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
November 1994: I contact SGI to ask permission to distribute my OpenGL-like
|
|
||||||
graphics library on the internet. SGI was generally receptive to the
|
|
||||||
idea and after negotiations with SGI's legal department, I get permission
|
|
||||||
to release it.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
February 1995: Mesa 1.0 is released on the internet. I expected that
|
|
||||||
a few people would be interested in it, but not thousands.
|
|
||||||
I was soon receiving patches, new features and thank-you notes on a
|
|
||||||
daily basis. That encouraged me to continue working on Mesa. The
|
|
||||||
name Mesa just popped into my head one day. SGI had asked me not to use
|
|
||||||
the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't
|
|
||||||
want to make up a new acronym. Later, I heard of the Mesa programming
|
|
||||||
language and the Mesa spreadsheet for NeXTStep.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In the early days, OpenGL wasn't available on too many systems.
|
|
||||||
It even took a while for SGI to support it across their product line.
|
|
||||||
Mesa filled a big hole during that time.
|
|
||||||
For a lot of people, Mesa was their first introduction to OpenGL.
|
|
||||||
I think SGI recognized that Mesa actually helped to promote
|
|
||||||
the OpenGL API, so they didn't feel threatened by the project.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
1995-1996: I continue working on Mesa both during my spare time and during
|
|
||||||
my work hours at the Space Science and Engineering Center at the University
|
|
||||||
of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because
|
|
||||||
Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html">Vis5D</a> project.
|
|
||||||
</p><p>
|
|
||||||
October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo graphics
|
|
||||||
card via the Glide library. It's the first really popular hardware OpenGL
|
|
||||||
implementation for Linux.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
September 1998: Mesa 3.0 is released. It's the first publicly-available
|
|
||||||
implementation of the OpenGL 1.2 API.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
March 1999: I attend my first OpenGL ARB meeting. I contribute to the
|
|
||||||
development of several official OpenGL extensions over the years.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
September 1999: I'm hired by Precision Insight, Inc. Mesa is a key
|
|
||||||
component of 3D hardware acceleration in the new DRI project for XFree86.
|
|
||||||
Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
October 2001: Mesa 4.0 is released.
|
|
||||||
It implements the OpenGL 1.3 specification.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
|
|
||||||
Jens Owen, David Dawes and Frank LaMonica.
|
|
||||||
Tungsten Graphics was acquired by VMware in December 2008.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
November 2002: Mesa 5.0 is released.
|
|
||||||
It implements the OpenGL 1.4 specification.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
January 2003: Mesa 6.0 is released. It implements the OpenGL 1.5
|
|
||||||
specification as well as the GL_ARB_vertex_program and
|
|
||||||
GL_ARB_fragment_program extensions.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
|
|
||||||
and OpenGL Shading Language.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
2008: Keith Whitwell and other Tungsten Graphics employees develop
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Gallium3D">Gallium</a>
|
|
||||||
- a new GPU abstraction layer. The latest Mesa drivers are based on
|
|
||||||
Gallium and other APIs such as OpenVG are implemented on top of Gallium.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0 specification
|
|
||||||
and version 1.30 of the OpenGL Shading Language.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Ongoing: Mesa is the OpenGL implementation for several types of hardware
|
|
||||||
made by Intel, AMD and NVIDIA, plus the VMware virtual GPU.
|
|
||||||
There's also several software-based renderers: swrast (the legacy
|
|
||||||
Mesa rasterizer), softpipe (a gallium reference driver) and llvmpipe
|
|
||||||
(LLVM/JIT-based high-speed rasterizer).
|
|
||||||
Work continues on the drivers and core Mesa to implement newer versions
|
|
||||||
of the OpenGL specification.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Major Versions</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This is a summary of the major versions of Mesa.
|
|
||||||
Mesa's major version number has been incremented whenever a new version
|
|
||||||
of the OpenGL specification is implemented.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 12.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
|
|
||||||
support OpenGL 4.3.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 11.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
|
|
||||||
support OpenGL 4.1.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 10.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
|
|
||||||
support OpenGL 3.3.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 9.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 9.x of Mesa implements the OpenGL 3.1 API.
|
|
||||||
While the driver for Intel Sandy Bridge and Ivy Bridge is the only
|
|
||||||
driver to support OpenGL 3.1, many developers across the open-source
|
|
||||||
community contributed features required for OpenGL 3.1. The primary
|
|
||||||
features added since the Mesa 8.0 release are
|
|
||||||
GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Version 9.0 of Mesa also included the first release of the Clover state
|
|
||||||
tracker for OpenCL.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 8.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 8.x of Mesa implements the OpenGL 3.0 API.
|
|
||||||
The developers at Intel deserve a lot of credit for implementing most
|
|
||||||
of the OpenGL 3.0 features in core Mesa, the GLSL compiler as well as
|
|
||||||
the i965 driver.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 7.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
|
||||||
of OpenGL 2.x is the OpenGL Shading Language.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 6.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
|
|
||||||
extensions incorporated as standard features:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>GL_ARB_occlusion_query
|
|
||||||
<li>GL_ARB_vertex_buffer_object
|
|
||||||
<li>GL_EXT_shadow_funcs
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Also note that several OpenGL tokens were renamed in OpenGL 1.5
|
|
||||||
for the sake of consistency.
|
|
||||||
The old tokens are still available.
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
New Token Old Token
|
|
||||||
------------------------------------------------------------
|
|
||||||
GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
|
|
||||||
GL_FOG_COORD GL_FOG_COORDINATE
|
|
||||||
GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
|
|
||||||
GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
|
|
||||||
GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
|
|
||||||
GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
|
|
||||||
GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
|
|
||||||
GL_SRC0_RGB GL_SOURCE0_RGB
|
|
||||||
GL_SRC1_RGB GL_SOURCE1_RGB
|
|
||||||
GL_SRC2_RGB GL_SOURCE2_RGB
|
|
||||||
GL_SRC0_ALPHA GL_SOURCE0_ALPHA
|
|
||||||
GL_SRC1_ALPHA GL_SOURCE1_ALPHA
|
|
||||||
GL_SRC2_ALPHA GL_SOURCE2_ALPHA
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
See the
|
|
||||||
<a href="http://www.opengl.org/documentation/spec.html">
|
|
||||||
OpenGL specification</a> for more details.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 5.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
|
|
||||||
extensions incorporated as standard features:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>GL_ARB_depth_texture
|
|
||||||
<li>GL_ARB_shadow
|
|
||||||
<li>GL_ARB_texture_env_crossbar
|
|
||||||
<li>GL_ARB_texture_mirror_repeat
|
|
||||||
<li>GL_ARB_window_pos
|
|
||||||
<li>GL_EXT_blend_color
|
|
||||||
<li>GL_EXT_blend_func_separate
|
|
||||||
<li>GL_EXT_blend_logic_op
|
|
||||||
<li>GL_EXT_blend_minmax
|
|
||||||
<li>GL_EXT_blend_subtract
|
|
||||||
<li>GL_EXT_fog_coord
|
|
||||||
<li>GL_EXT_multi_draw_arrays
|
|
||||||
<li>GL_EXT_point_parameters
|
|
||||||
<li>GL_EXT_secondary_color
|
|
||||||
<li>GL_EXT_stencil_wrap
|
|
||||||
<li>GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
|
|
||||||
<li>GL_SGIS_generate_mipmap
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 4.x features</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
|
|
||||||
extensions incorporated as standard features:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>GL_ARB_multisample
|
|
||||||
<li>GL_ARB_multitexture
|
|
||||||
<li>GL_ARB_texture_border_clamp
|
|
||||||
<li>GL_ARB_texture_compression
|
|
||||||
<li>GL_ARB_texture_cube_map
|
|
||||||
<li>GL_ARB_texture_env_add
|
|
||||||
<li>GL_ARB_texture_env_combine
|
|
||||||
<li>GL_ARB_texture_env_dot3
|
|
||||||
<li>GL_ARB_transpose_matrix
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Version 3.x features</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
|
|
||||||
features:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>BGR, BGRA and packed pixel formats
|
|
||||||
<li>New texture border clamp mode
|
|
||||||
<li>glDrawRangeElements()
|
|
||||||
<li>standard 3-D texturing
|
|
||||||
<li>advanced MIPMAP control
|
|
||||||
<li>separate specular color interpolation
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Version 2.x features</h2>
|
|
||||||
<p>
|
|
||||||
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
|
|
||||||
features.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Texture mapping:
|
|
||||||
<ul>
|
|
||||||
<li>glAreTexturesResident
|
|
||||||
<li>glBindTexture
|
|
||||||
<li>glCopyTexImage1D
|
|
||||||
<li>glCopyTexImage2D
|
|
||||||
<li>glCopyTexSubImage1D
|
|
||||||
<li>glCopyTexSubImage2D
|
|
||||||
<li>glDeleteTextures
|
|
||||||
<li>glGenTextures
|
|
||||||
<li>glIsTexture
|
|
||||||
<li>glPrioritizeTextures
|
|
||||||
<li>glTexSubImage1D
|
|
||||||
<li>glTexSubImage2D
|
|
||||||
</ul>
|
|
||||||
<li>Vertex Arrays:
|
|
||||||
<ul>
|
|
||||||
<li>glArrayElement
|
|
||||||
<li>glColorPointer
|
|
||||||
<li>glDrawElements
|
|
||||||
<li>glEdgeFlagPointer
|
|
||||||
<li>glIndexPointer
|
|
||||||
<li>glInterleavedArrays
|
|
||||||
<li>glNormalPointer
|
|
||||||
<li>glTexCoordPointer
|
|
||||||
<li>glVertexPointer
|
|
||||||
</ul>
|
|
||||||
<li>Client state management:
|
|
||||||
<ul>
|
|
||||||
<li>glDisableClientState
|
|
||||||
<li>glEnableClientState
|
|
||||||
<li>glPopClientAttrib
|
|
||||||
<li>glPushClientAttrib
|
|
||||||
</ul>
|
|
||||||
<li>Misc:
|
|
||||||
<ul>
|
|
||||||
<li>glGetPointer
|
|
||||||
<li>glIndexub
|
|
||||||
<li>glIndexubv
|
|
||||||
<li>glPolygonOffset
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
197
docs/libGL.txt
197
docs/libGL.txt
@@ -1,197 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
This document describes the implementation of the XFree86 4.0 libGL.so
|
|
||||||
library defined by the Linux/OpenGL Base specification found at
|
|
||||||
http://reality.sgi.com/opengl/linux/linuxbase.html.
|
|
||||||
|
|
||||||
The documentation is divided into two sections:
|
|
||||||
User's Guide
|
|
||||||
Driver Developer's Guide
|
|
||||||
|
|
||||||
Author: Brian Paul (brian@precisioninsight.com)
|
|
||||||
Date: February 2000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
User's Guide
|
|
||||||
------------
|
|
||||||
|
|
||||||
Using libGL.so
|
|
||||||
|
|
||||||
The libGL.so library defines the gl- and glX-prefixed functions needed to
|
|
||||||
run OpenGL programs. OpenGL client applications should link with the
|
|
||||||
-lGL option to use it.
|
|
||||||
|
|
||||||
libGL.so serves two primary functions: GLX protocol generation for indirect
|
|
||||||
rendering and loading/management of hardware drivers for direct rendering.
|
|
||||||
|
|
||||||
When libGL.so initializes itself it uses the DRI to determine the
|
|
||||||
appropriate hardware driver for each screen on the local X display.
|
|
||||||
The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
|
|
||||||
directory. Drivers are named with the convention <name>_dri.so where
|
|
||||||
<name> is a driver such as "radeon", "i965", "nouveau", etc.
|
|
||||||
|
|
||||||
The LIBGL_DRIVERS_DIR environment variable may be used to specify a
|
|
||||||
different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
|
|
||||||
This environment variable is ignored in setuid programs for security
|
|
||||||
reasons.
|
|
||||||
|
|
||||||
When libGL.so is unable to locate appropriate hardware drivers it will
|
|
||||||
fall back to using indirect GLX rendering.
|
|
||||||
|
|
||||||
To aid in solving problems, libGL.so will print diagnostic messages to
|
|
||||||
stderr if the LIBGL_DEBUG environment variable is defined.
|
|
||||||
|
|
||||||
libGL.so is thread safe. The overhead of thread safety for common,
|
|
||||||
single-thread clients is negligible. However, the overhead of thread
|
|
||||||
safety for multi-threaded clients is significant. Each GL API call
|
|
||||||
requires two calls to pthread_get_specific() which can noticeably
|
|
||||||
impact performance. Warning: libGL.so is thread safe but individual
|
|
||||||
DRI drivers may not be. Please consult the documentation for a driver
|
|
||||||
to learn if it is thread safe.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Indirect Rendering
|
|
||||||
|
|
||||||
You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
|
|
||||||
environment variable. Hardware acceleration will not be used.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
libGL.so Extensibility
|
|
||||||
|
|
||||||
libGL.so is designed to be extended without upgrading. That is,
|
|
||||||
drivers may install new OpenGL extension functions into libGL.so
|
|
||||||
without requiring libGL.so to be replaced. Clients of libGL.so should
|
|
||||||
use the glXGetProcAddressEXT() function to obtain the address of
|
|
||||||
functions by name. For more details of GLX_ARB_get_proc_address see
|
|
||||||
http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
|
|
||||||
|
|
||||||
libGL.so is also designed with flexibility such that it may be used
|
|
||||||
with many generations of hardware drivers to come.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Driver Developer's Guide
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
This section describes the requirements to make an XFree86 4.0
|
|
||||||
libGL.so-compatible hardware driver. It is not intended for end
|
|
||||||
users of libGL.so.
|
|
||||||
|
|
||||||
|
|
||||||
XFree86 source files
|
|
||||||
|
|
||||||
libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
|
|
||||||
Specifically, libGL.so is built from:
|
|
||||||
|
|
||||||
xc/lib/GL/glx/*.c
|
|
||||||
xc/lib/dri/XF86dri.c
|
|
||||||
xc/lib/dri/dri_glx.c
|
|
||||||
xc/lib/GL/mesa/src/glapi.c
|
|
||||||
xc/lib/GL/mesa/src/glapitemp.h
|
|
||||||
xc/lib/GL/mesa/src/glapitable.h
|
|
||||||
xc/lib/GL/mesa/src/glapioffsets.h
|
|
||||||
xc/lib/GL/mesa/src/glapinoop.c
|
|
||||||
xc/lib/GL/mesa/src/glheader.h
|
|
||||||
xc/lib/GL/mesa/src/glthread.c
|
|
||||||
xc/lib/GL/mesa/src/glthread.h
|
|
||||||
xc/lib/GL/mesa/src/X86/glapi_x86.S
|
|
||||||
xc/lib/GL/mesa/src/X86/assyntax.h
|
|
||||||
|
|
||||||
Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They
|
|
||||||
have no dependencies on the rest of Mesa and are designed to be reusable
|
|
||||||
in a number of projects.
|
|
||||||
|
|
||||||
The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
|
|
||||||
of GL functions. They are not required; C-based dispatch can be used
|
|
||||||
instead, with a slight performance penalty.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Driver loading and binding
|
|
||||||
|
|
||||||
When libGL.so initializes itself (via the __glXInitialize function) a
|
|
||||||
call is made to driCreateDisplay(). This function uses DRI facilities
|
|
||||||
to determine the driver file appropriate for each screen on the local
|
|
||||||
display. Each screen's driver is then opened with dlopen() and asked
|
|
||||||
for its __driCreateScreen() function. The pointers to the __driCreateScreen()
|
|
||||||
functions are kept in an array, indexed by screen number, in the
|
|
||||||
__DRIdisplayRec struct.
|
|
||||||
|
|
||||||
When a driver's __driCreateScreen() function is called, it must initialize
|
|
||||||
a __DRIscreenRec struct. This struct acts as the root of a tree of
|
|
||||||
function pointers which are called to create and destroy contexts and
|
|
||||||
drawables and perform all the operations needed by the GLX interface.
|
|
||||||
See the xc/lib/GL/glx/glxclient.h file for details.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dynamic Extension Function Registration
|
|
||||||
|
|
||||||
In order to provide forward compatibility with future drivers, libGL.so
|
|
||||||
allows drivers to register new OpenGL extension functions which weren't
|
|
||||||
known when libGL.so was built.
|
|
||||||
|
|
||||||
The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
|
|
||||||
as soon as libGL.so is loaded. This is done with gcc's constructor
|
|
||||||
attribute. This mechanism will likely have to be changed for other compilers.
|
|
||||||
|
|
||||||
register_extensions() loops over all local displays and screens, determines
|
|
||||||
the DRI driver for each, and calls the driver's __driRegisterExtensions()
|
|
||||||
function, if present.
|
|
||||||
|
|
||||||
The __driRegisterExtensions() function can add new entrypoints to libGL
|
|
||||||
by calling:
|
|
||||||
|
|
||||||
GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
|
|
||||||
|
|
||||||
The parameters are the name of the function (such as "glFoobarEXT") and the
|
|
||||||
offset of the dispatch slot in the API dispatch table. The return value
|
|
||||||
indicates success (GL_TRUE) or failure (GL_FALSE).
|
|
||||||
|
|
||||||
_glapi_add_entrypoint() will synthesize entrypoint code in assembly
|
|
||||||
language. Assembly languages is required since parameter passing
|
|
||||||
can't be handled correctly using a C-based solution.
|
|
||||||
|
|
||||||
The address of the new entrypoint is obtained by calling the
|
|
||||||
glXGetProcAddressARB() function.
|
|
||||||
|
|
||||||
The dispatch offset number MUST be a number allocated by SGI in the same
|
|
||||||
manner in which new GL_* constants are allocated. Using an arbitrary
|
|
||||||
offset number will result in many problems.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dispatch Management
|
|
||||||
|
|
||||||
When a GL context is made current, the driver must install its dispatch
|
|
||||||
table as the current dispatch table. This is done by calling
|
|
||||||
|
|
||||||
void _glapi_set_dispatch(struct _glapi_table *dispatch);
|
|
||||||
|
|
||||||
This will install the named dispatch table for the calling thread.
|
|
||||||
The current dispatch table for a thread can be obtained by calling
|
|
||||||
|
|
||||||
struct _glapi_table *_glapi_get_dispatch(void);
|
|
||||||
|
|
||||||
For higher performance in the common single-thread case, the global
|
|
||||||
variable _glapi_Dispatch will point to the current dispatch table.
|
|
||||||
This variable will be NULL when in multi-thread mode.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Context Management
|
|
||||||
|
|
||||||
libGL.so uses the XFree86 xthreads package to manage a thread-specific
|
|
||||||
current context pointer. See __glXGet/SetCurrentContext() in glext.c
|
|
||||||
|
|
||||||
Drivers may use the _glapi_set/get_context() functions to maintain
|
|
||||||
a private thread-specific context pointer.
|
|
||||||
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<title>License / Copyright Information</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>Disclaimer</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa is a 3-D graphics library with an API which is very similar to
|
|
||||||
that of <a href="http://www.opengl.org/">OpenGL</a>.*
|
|
||||||
To the extent that Mesa utilizes the OpenGL command syntax or state
|
|
||||||
machine, it is being used with authorization from <a
|
|
||||||
href="http://www.sgi.com/">Silicon Graphics,
|
|
||||||
Inc.</a>(SGI). However, the author does not possess an OpenGL license
|
|
||||||
from SGI, and makes no claim that Mesa is in any way a compatible
|
|
||||||
replacement for OpenGL or associated with SGI. Those who want a
|
|
||||||
licensed implementation of OpenGL should contact a licensed
|
|
||||||
vendor.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Please do not refer to the library as <em>MesaGL</em> (for legal
|
|
||||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
|
||||||
library</em>. <br>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
* OpenGL is a trademark of <a href="http://www.sgi.com/"
|
|
||||||
>Silicon Graphics Incorporated</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>License / Copyright Information</h1>
|
|
||||||
|
|
||||||
<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.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The core Mesa library is licensed according to the terms of the MIT license.
|
|
||||||
This allows integration with the XFree86, Xorg and DRI projects.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The default Mesa license is as follows:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the "Software"),
|
|
||||||
to deal in the Software without restriction, including without limitation
|
|
||||||
the rights to use, copy, modify, merge, publish, distribute, 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.
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Attention, Contributors</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When contributing to the Mesa project you must agree to the licensing terms
|
|
||||||
of the component to which you're contributing.
|
|
||||||
The following section lists the primary components of the Mesa distribution
|
|
||||||
and their respective licenses.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Mesa Component Licenses</h1>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
Component Location License
|
|
||||||
------------------------------------------------------------------
|
|
||||||
Main Mesa code src/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>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In general, consult the source files for license terms.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,97 +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 Mailing Lists</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>Mailing Lists</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<p>There are four Mesa 3D / DRI mailing lists:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-users">mesa-users</a>
|
|
||||||
- intended for end-users of Mesa and DRI drivers. Newbie questions are OK,
|
|
||||||
but please try the general OpenGL resources and Mesa/DRI documentation first.</p>
|
|
||||||
</li>
|
|
||||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
|
|
||||||
- for Mesa, Gallium and DRI development
|
|
||||||
discussion. Not for beginners.</p>
|
|
||||||
</li>
|
|
||||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit">mesa-commit</a>
|
|
||||||
- relays git check-in messages (for developers).
|
|
||||||
In general, people should not post to this list.</p>
|
|
||||||
</li>
|
|
||||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-announce">mesa-announce</a>
|
|
||||||
- announcements of new Mesa
|
|
||||||
versions are sent to this list. Very low traffic.</p>
|
|
||||||
</li>
|
|
||||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/piglit">piglit</a>
|
|
||||||
- for Piglit (OpenGL driver testing framework) discussion.</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>NOTE</b>: You <b>must</b> subscribe to these lists in order to post to them.
|
|
||||||
If you try to post to a list and you're not a subscriber (or if you try to post
|
|
||||||
from a different email address than you subscribed with) your posting will be
|
|
||||||
held for an indefinite period or may be discarded entirely.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Follow the links above for list archives.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The old Mesa lists hosted at SourceForge are no longer in use.
|
|
||||||
The archives are still available, however:
|
|
||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce">mesa3d-announce</a>,
|
|
||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users">mesa3d-users</a>,
|
|
||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev">mesa3d-dev</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD
|
|
||||||
kernels, see the
|
|
||||||
<a href="http://dri.freedesktop.org/wiki/MailingLists">DRI wiki</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>IRC</h1>
|
|
||||||
|
|
||||||
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
|
|
||||||
on <a href="http://webchat.freenode.net/">irc.freenode.net</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>OpenGL Forums</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Here are some other OpenGL-related forums you might find useful:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi">OpenGL discussion forums</a>
|
|
||||||
at www.opengl.org</li>
|
|
||||||
<li>Usenet newsgroups:
|
|
||||||
<ul>
|
|
||||||
<li>comp.graphics.algorithms</li>
|
|
||||||
<li>comp.graphics.api.opengl</li>
|
|
||||||
<li>comp.os.linux.x</li>
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,318 +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>llvmpipe</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>Introduction</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
|
|
||||||
do runtime code generation.
|
|
||||||
Shaders, point/line/triangle rasterization and vertex processing are
|
|
||||||
implemented with LLVM IR which is translated to x86 or x86-64 machine
|
|
||||||
code.
|
|
||||||
Also, the driver is multithreaded to take advantage of multiple CPU cores
|
|
||||||
(up to 8 at this time).
|
|
||||||
It's the fastest software rasterizer for Mesa.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Requirements</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>An x86 or amd64 processor; 64-bit mode recommended.</p>
|
|
||||||
<p>
|
|
||||||
Support for SSE2 is strongly encouraged. Support for SSSE3 and SSE4.1 will
|
|
||||||
yield the most efficient code. The fewer features the CPU has the more
|
|
||||||
likely is that you run into underperforming, buggy, or incomplete code.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
See /proc/cpuinfo to know what your CPU supports.
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>LLVM: version 3.4 recommended; 3.3 or later required.</p>
|
|
||||||
<p>
|
|
||||||
For Linux, on a recent Debian based distribution do:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
aptitude install llvm-dev
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
For a RPM-based distribution do:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
yum install llvm-devel
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For Windows you will need to build LLVM from source with MSVC or MINGW
|
|
||||||
(either natively or through cross compilers) and CMake, and set the LLVM
|
|
||||||
environment variable to the directory you installed it to.
|
|
||||||
|
|
||||||
LLVM will be statically linked, so when building on MSVC it needs to be
|
|
||||||
built with a matching CRT as Mesa, and you'll need to pass
|
|
||||||
<code>-DLLVM_USE_CRT_xxx=yyy</code> as described below.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<table border="1">
|
|
||||||
<tr>
|
|
||||||
<th rowspan="2">LLVM build-type</th>
|
|
||||||
<th colspan="2" align="center">Mesa build-type</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>debug,checked</th>
|
|
||||||
<th>release,profile</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Debug</th>
|
|
||||||
<td><code>-DLLVM_USE_CRT_DEBUG=MTd</code></td>
|
|
||||||
<td><code>-DLLVM_USE_CRT_DEBUG=MT</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Release</th>
|
|
||||||
<td><code>-DLLVM_USE_CRT_RELEASE=MTd</code></td>
|
|
||||||
<td><code>-DLLVM_USE_CRT_RELEASE=MT</code></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You can build only the x86 target by passing -DLLVM_TARGETS_TO_BUILD=X86
|
|
||||||
to cmake.
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<p>scons (optional)</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Building</h1>
|
|
||||||
|
|
||||||
To build everything on Linux invoke scons as:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
scons build=debug libgl-xlib
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
Alternatively, you can build it with GNU make, if you prefer, by invoking it as
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
make linux-llvm
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
but the rest of these instructions assume that scons is used.
|
|
||||||
|
|
||||||
For Windows the procedure is similar except the target:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
scons platform=windows build=debug libgl-gdi
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Using</h1>
|
|
||||||
|
|
||||||
<h2>Linux</h2>
|
|
||||||
|
|
||||||
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
|
||||||
</pre>
|
|
||||||
or
|
|
||||||
<pre>
|
|
||||||
lib/gallium/libGL.so
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
|
|
||||||
|
|
||||||
<p>For performance evaluation pass build=release to scons, and use the corresponding
|
|
||||||
lib directory without the "-debug" suffix.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Windows</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
On Windows, building will create
|
|
||||||
<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
|
|
||||||
which is a drop-in alternative for system's <code>opengl32.dll</code>. To use
|
|
||||||
it put it in the same directory as your application. It can also be used by
|
|
||||||
replacing the native ICD driver, but it's quite an advanced usage, so if you
|
|
||||||
need to ask, don't even try it.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
There is however an easy way to replace the OpenGL software renderer that comes
|
|
||||||
with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
|
|
||||||
any OpenGL drivers):
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
|
|
||||||
<li><p>load this registry settings:</p>
|
|
||||||
<pre>REGEDIT4
|
|
||||||
|
|
||||||
; http://technet.microsoft.com/en-us/library/cc749368.aspx
|
|
||||||
; http://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
|
|
||||||
"DLL"="mesadrv.dll"
|
|
||||||
"DriverVersion"=dword:00000001
|
|
||||||
"Flags"=dword:00000001
|
|
||||||
"Version"=dword:00000002
|
|
||||||
</pre>
|
|
||||||
</li>
|
|
||||||
<li>Ditto for 64 bits drivers if you need them.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Profiling</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To profile llvmpipe you should build as
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
scons build=profile <same-as-before>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This will ensure that frame pointers are used both in C and JIT functions, and
|
|
||||||
that no tail call optimizations are done by gcc.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Linux perf integration</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
On Linux, it is possible to have symbol resolution of JIT code with <a href="http://perf.wiki.kernel.org/">Linux perf</a>:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
perf record -g /my/application
|
|
||||||
perf report
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When run inside Linux perf, llvmpipe will create a /tmp/perf-XXXXX.map file with
|
|
||||||
symbol address table. It also dumps assembly code to /tmp/perf-XXXXX.map.asm,
|
|
||||||
which can be used by the bin/perf-annotate-jit script to produce disassembly of
|
|
||||||
the generated code annotated with the samples.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>You can obtain a call graph via
|
|
||||||
<a href="http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#linux_perf">Gprof2Dot</a>.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Unit testing</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Building will also create several unit tests in
|
|
||||||
build/linux-???-debug/gallium/drivers/llvmpipe:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li> lp_test_blend: blending
|
|
||||||
<li> lp_test_conv: SIMD vector conversion
|
|
||||||
<li> lp_test_format: pixel unpacking/packing
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Some of this tests can output results and benchmarks to a tab-separated-file
|
|
||||||
for posterior analysis, e.g.:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Development Notes</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
When looking to this code by the first time start in lp_state_fs.c, and
|
|
||||||
then skim through the lp_bld_* functions called in there, and the comments
|
|
||||||
at the top of the lp_bld_*.c functions.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
The driver-independent parts of the LLVM / Gallium code are found in
|
|
||||||
src/gallium/auxiliary/gallivm/. The filenames and function prefixes
|
|
||||||
need to be renamed from "lp_bld_" to something else though.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
We use LLVM-C bindings for now. They are not documented, but follow the C++
|
|
||||||
interfaces very closely, and appear to be complete enough for code
|
|
||||||
generation. See
|
|
||||||
<a href="http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
|
|
||||||
this stand-alone example</a>. See the llvm-c/Core.h file for reference.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h1 id="recommended_reading">Recommended Reading</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>Rasterization</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.cs.unc.edu/~olano/papers/2dh-tri/">Triangle Scan Conversion using 2D Homogeneous Coordinates</a></li>
|
|
||||||
<li><a href="http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602">Rasterization on Larrabee</a> (<a href="http://devmaster.net/posts/2887/rasterization-on-larrabee">DevMaster copy</a>)</li>
|
|
||||||
<li><a href="http://devmaster.net/posts/6133/rasterization-using-half-space-functions">Rasterization using half-space functions</a></li>
|
|
||||||
<li><a href="http://devmaster.net/posts/6145/advanced-rasterization">Advanced Rasterization</a></li>
|
|
||||||
<li><a href="http://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/">Optimizing Software Occlusion Culling</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Texture sampling</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://chrishecker.com/Miscellaneous_Technical_Articles#Perspective_Texture_Mapping">Perspective Texture Mapping</a></li>
|
|
||||||
<li><a href="http://www.flipcode.com/archives/Texturing_As_In_Unreal.shtml">Texturing As In Unreal</a></li>
|
|
||||||
<li><a href="http://www.gamasutra.com/view/feature/3301/runtime_mipmap_filtering.php">Run-Time MIP-Map Filtering</a></li>
|
|
||||||
<li><a href="http://alt.3dcenter.org/artikel/2003/10-26_a_english.php">Will "brilinear" filtering persist?</a></li>
|
|
||||||
<li><a href="http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html">Trilinear filtering</a></li>
|
|
||||||
<li><a href="http://devmaster.net/posts/12785/texture-swizzling">Texture Swizzling</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>SIMD</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.cdl.uni-saarland.de/projects/wfv/#header4">Whole-Function Vectorization</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Optimization</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807">Optimizing Pixomatic For Modern x86 Processors</a></li>
|
|
||||||
<li><a href="http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html">Intel 64 and IA-32 Architectures Optimization Reference Manual</a></li>
|
|
||||||
<li><a href="http://www.agner.org/optimize/">Software optimization resources</a></li>
|
|
||||||
<li><a href="http://software.intel.com/en-us/articles/intel-intrinsics-guide">Intel Intrinsics Guide</a><li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>LLVM</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://llvm.org/docs/LangRef.html">LLVM Language Reference Manual</a></li>
|
|
||||||
<li><a href="http://npcontemplation.blogspot.co.uk/2008/06/secret-of-llvm-c-bindings.html">The secret of LLVM C bindings</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>General</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/">A trip through the Graphics Pipeline</a></li>
|
|
||||||
<li><a href="http://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture">WARP Architecture and Performance</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,37 +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>GL Function Name Mangling</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>GL Function Name Mangling</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
If you want to use both Mesa and another OpenGL library in the same
|
|
||||||
application at the same time you may find it useful to compile Mesa with
|
|
||||||
<i>name mangling</i>.
|
|
||||||
This results in all the Mesa functions being prefixed with
|
|
||||||
<b>mgl</b> instead of <b>gl</b>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This option is supported only with the autoconf build. To use it add
|
|
||||||
--enable-mangling to your configure line.
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
<code>./configure --enable-mangling ...</code>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
/* Mesa CSS */
|
|
||||||
body {
|
|
||||||
background-color: #ffffff;
|
|
||||||
font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
|
|
||||||
color: black;
|
|
||||||
link: #111188;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold;
|
|
||||||
font-weight: bold;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 10pt;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
pre {
|
|
||||||
/*font-family: monospace;*/
|
|
||||||
font-size: 10pt;
|
|
||||||
/*color: black;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
iframe {
|
|
||||||
width: 19em;
|
|
||||||
height: 80em;
|
|
||||||
border: none;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
position: absolute;
|
|
||||||
left: 20em;
|
|
||||||
right: 10px;
|
|
||||||
overflow: hidden
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
background: black url('gears.png') 15px no-repeat;
|
|
||||||
margin:0;
|
|
||||||
padding: 5px;
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header h1 {
|
|
||||||
background: url('gears.png') right no-repeat;
|
|
||||||
color: white;
|
|
||||||
font: x-large sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
height: 50px;
|
|
||||||
margin: 0;
|
|
||||||
padding-top: 30px;
|
|
||||||
}
|
|
||||||
@@ -1,70 +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>OpenGL ES</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>OpenGL ES</h1>
|
|
||||||
|
|
||||||
<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More information about
|
|
||||||
OpenGL ES can be found at <a href="http://www.khronos.org/opengles/">
|
|
||||||
http://www.khronos.org/opengles/</a>.</p>
|
|
||||||
|
|
||||||
<p>OpenGL ES depends on a working EGL implementation. Please refer to
|
|
||||||
<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
|
|
||||||
|
|
||||||
<h2>Build the Libraries</h2>
|
|
||||||
<ol>
|
|
||||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code> and enable the Gallium driver for your hardware.</li>
|
|
||||||
<li>Build and install Mesa as usual.</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
Alternatively, if XCB-DRI2 is installed on the system, one can use
|
|
||||||
<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code>.</li>
|
|
||||||
<li>Build and install Mesa as usual.</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
|
|
||||||
EGL drivers for your hardware.</p>
|
|
||||||
|
|
||||||
<h2>Run the Demos</h2>
|
|
||||||
|
|
||||||
<p>There are some demos in <code>mesa/demos</code> repository.</p>
|
|
||||||
|
|
||||||
<h2>Developers</h2>
|
|
||||||
|
|
||||||
<h3>Dispatch Table</h3>
|
|
||||||
|
|
||||||
<p>OpenGL ES has an additional indirection when dispatching functions</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
Mesa: glFoo() --> _mesa_Foo()
|
|
||||||
OpenGL ES: glFoo() --> _es_Foo() --> _mesa_Foo()
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>The indirection serves several purposes</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
|
|
||||||
<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
|
|
||||||
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,81 +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>Off-screen Rendering</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>Off-screen Rendering</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa's off-screen interface is used for rendering into user-allocated memory
|
|
||||||
without any sort of window system or operating system dependencies.
|
|
||||||
That is, the GL_FRONT colorbuffer is actually a buffer in main memory,
|
|
||||||
rather than a window on your display.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The OSMesa API provides three basic functions for making off-screen
|
|
||||||
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
|
|
||||||
OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for
|
|
||||||
more information about the API functions.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The OSMesa interface may be used with any of three software renderers:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>llvmpipe - this is the high-performance Gallium LLVM driver
|
|
||||||
<li>softpipe - this it the reference Gallium software driver
|
|
||||||
<li>swrast - this is the legacy Mesa software rasterizer
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
There are several examples of OSMesa in the mesa/demos repository.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1>Building OSMesa</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Configure and build Mesa with something like:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
configure --enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast
|
|
||||||
make
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Make sure you have LLVM installed first if you want to use the llvmpipe driver.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When the build is complete you should find:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
lib/libOSMesa.so (swrast-based OSMesa)
|
|
||||||
lib/gallium/libOSMsea.so (gallium-based OSMesa)
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Set your LD_LIBRARY_PATH to point to one directory or the other to select
|
|
||||||
the library you want to use.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When you link your application, link with -lOSMesa
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
ARB_texture_float:
|
|
||||||
|
|
||||||
Silicon Graphics, Inc. owns US Patent #6,650,327, issued November 18,
|
|
||||||
2003 [1].
|
|
||||||
|
|
||||||
SGI believes this patent contains necessary IP for graphics systems
|
|
||||||
implementing floating point rasterization and floating point
|
|
||||||
framebuffer capabilities described in ARB_texture_float extension, and
|
|
||||||
will discuss licensing on RAND terms, on an individual basis with
|
|
||||||
companies wishing to use this IP in the context of conformant OpenGL
|
|
||||||
implementations [2].
|
|
||||||
|
|
||||||
The source code to implement ARB_texture_float extension is included
|
|
||||||
and can be toggled on at compile time, for those who purchased a
|
|
||||||
license from SGI, or are in a country where the patent does not apply,
|
|
||||||
etc.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
You should contact a lawyer or SGI's legal department if you want to
|
|
||||||
enable this extension.
|
|
||||||
|
|
||||||
|
|
||||||
[1] http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327
|
|
||||||
[2] http://www.opengl.org/registry/specs/ARB/texture_float.txt
|
|
||||||
@@ -1,76 +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>Performance Tips</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>Performance Tips</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Performance tips for software rendering:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li> Turn off smooth shading when you don't need it (glShadeModel)
|
|
||||||
<li> Turn off depth buffering when you don't need it.
|
|
||||||
<li> Turn off dithering when not needed.
|
|
||||||
<li> Use double buffering as it's often faster than single buffering
|
|
||||||
<li> Compile in the X Shared Memory extension option if it's supported
|
|
||||||
on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
|
|
||||||
your system in the Make-config file.
|
|
||||||
<li> Recompile Mesa with more optimization if possible.
|
|
||||||
<li> Try to maximize the amount of drawing done between glBegin/glEnd pairs.
|
|
||||||
<li> Use the MESA_BACK_BUFFER variable to find best performance in double
|
|
||||||
buffered mode. (X users only)
|
|
||||||
<li> Optimized polygon rasterizers are employed when:
|
|
||||||
rendering into back buffer which is an XImage
|
|
||||||
RGB mode, not grayscale, not monochrome
|
|
||||||
depth buffering is GL_LESS, or disabled
|
|
||||||
flat or smooth shading
|
|
||||||
dithered or non-dithered
|
|
||||||
no other rasterization operations enabled (blending, stencil, etc)
|
|
||||||
<li> Optimized line drawing is employed when:
|
|
||||||
rendering into back buffer which is an XImage
|
|
||||||
RGB mode, not grayscale, not monochrome
|
|
||||||
depth buffering is GL_LESS or disabled
|
|
||||||
flat shading
|
|
||||||
dithered or non-dithered
|
|
||||||
no other rasterization operations enabled (blending, stencil, etc)
|
|
||||||
<li> Textured polygons are fastest when:
|
|
||||||
using a 3-component (RGB), 2-D texture
|
|
||||||
minification and magnification filters are GL_NEAREST
|
|
||||||
texture coordinate wrap modes for S and T are GL_REPEAT
|
|
||||||
GL_DECAL environment mode
|
|
||||||
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
|
|
||||||
depth buffering is GL_LESS or disabled
|
|
||||||
<li> Lighting is fastest when:
|
|
||||||
Two-sided lighting is disabled
|
|
||||||
GL_LIGHT_MODEL_LOCAL_VIEWER is false
|
|
||||||
GL_COLOR_MATERIAL is disabled
|
|
||||||
No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
|
|
||||||
No local lights are used (all position W's are 0.0)
|
|
||||||
All material and light coefficients are >= zero
|
|
||||||
<li> XFree86 users: if you want to use 24-bit color try starting your
|
|
||||||
X server in 32-bit per pixel mode for better performance. That is,
|
|
||||||
start your X server with
|
|
||||||
startx -- -bpp 32
|
|
||||||
instead of
|
|
||||||
startx -- -bpp 24
|
|
||||||
<li> Try disabling dithering with the MESA_NO_DITHER environment variable.
|
|
||||||
If this env var is defined Mesa will disable dithering and the
|
|
||||||
command glEnable(GL_DITHER) will be ignored.
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,64 +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>Gallium Post-processing</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>Gallium Post-processing</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Gallium drivers support user-defined image post-processing.
|
|
||||||
At the end of drawing a frame a post-processing filter can be applied to
|
|
||||||
the rendered image.
|
|
||||||
Example filters include morphological antialiasing and cell shading.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The filters can be toggled per-app via driconf, or per-session via the
|
|
||||||
corresponding environment variables.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Multiple filters can be used together.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>PP environment variables</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>PP_DEBUG - If defined debug information will be printed to stderr.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Current filters</h2>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>pp_nored, pp_nogreen, pp_noblue - set to 1 to remove the corresponding color channel.
|
|
||||||
These are basic filters for easy testing of the PP queue.
|
|
||||||
<li>pp_jimenezmlaa, pp_jimenezmlaa_color -
|
|
||||||
<a href="http://www.iryokufx.com/mlaa/" target=_blank>Jimenez's MLAA</a>
|
|
||||||
is a morphological antialiasing filter.
|
|
||||||
The two versions use depth and color data, respectively.
|
|
||||||
Which works better depends on the app - depth will not blur text, but it will
|
|
||||||
miss transparent textures for example.
|
|
||||||
Set to a number from 2 to 32, roughly corresponding to quality.
|
|
||||||
Numbers higher than 8 see minimizing gains.
|
|
||||||
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,29 +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>Precompiled libraries</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>Precompiled Libraries</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In general, precompiled Mesa libraries are not available.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
However, some Linux distros (such as Ubuntu) seem to closely track
|
|
||||||
Mesa and often have the latest Mesa release available as an update.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,512 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<title>Releasing process</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Releasing process</h1>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="#overview">Overview</a>
|
|
||||||
<li><a href="#schedule">Release schedule</a>
|
|
||||||
<li><a href="#pickntest">Cherry-pick and test</a>
|
|
||||||
<li><a href="#branch">Making a branchpoint</a>
|
|
||||||
<li><a href="#prerelease">Pre-release announcement</a>
|
|
||||||
<li><a href="#release">Making a new release</a>
|
|
||||||
<li><a href="#announce">Announce the release</a>
|
|
||||||
<li><a href="#website">Update the mesa3d.org website</a>
|
|
||||||
<li><a href="#bugzilla">Update Bugzilla</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h1 id="overview">Overview</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This document uses the convention X.Y.Z for the release number with X.Y being
|
|
||||||
the stable branch name.
|
|
||||||
<br>
|
|
||||||
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
|
|
||||||
while the latter have a non-zero one.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
For example:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
Mesa 10.1.0 - 10.1 branch, feature
|
|
||||||
Mesa 10.1.4 - 10.1 branch, bugfix
|
|
||||||
Mesa 12.0.0 - 12.0 branch, feature
|
|
||||||
Mesa 12.0.2 - 12.0 branch, bugfix
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h1 id="schedule">Release schedule</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Releases should happen on Fridays. Delays can occur although those should be keep
|
|
||||||
to a minimum.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Feature releases</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Available approximatelly every three months.
|
|
||||||
<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1)
|
|
||||||
on the mesa-announce@ mailing list.
|
|
||||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
|
||||||
approximatelly 24 hours before the final (non-rc) release.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Stable releases</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Normally available once every two weeks.
|
|
||||||
<li>Only the latest branch has releases. See note below.
|
|
||||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
|
||||||
approximatelly 48 hours before the actual release.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Note: There is one or two releases overlap when changing branches. For example:
|
|
||||||
<br>
|
|
||||||
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
|
||||||
time (or shortly after) 13.0.1 is out.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1 id="pickntest">Cherry-picking and testing</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Commits nominated for the active branch are picked as based on the
|
|
||||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> as
|
|
||||||
described in the same section.
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Maintainer is responsible for testing in various possible permutations of
|
|
||||||
the autoconf and scons build.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Cherry-picking and build/check testing</h2>
|
|
||||||
|
|
||||||
<p>Done continuously up-to the <a href="#prerelease">pre-release</a> announcement.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
As an exception, patches can be applied up-to the last ~1h before the actual
|
|
||||||
release. This is made <strong>only</strong> with explicit permission/request,
|
|
||||||
and the patch <strong>must</strong> be very well contained. Thus it cannot
|
|
||||||
affect more than one driver/subsystem.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Currently Ilia Mirkin and AMD devs have requested "permanent" exception.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>make distcheck, scons and scons check must pass
|
|
||||||
<li>Testing with different version of system components - LLVM and others is also
|
|
||||||
performed where possible.
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Achieved by combination of local ad-hoc scripts and AppVeyor plus Travis-CI,
|
|
||||||
the latter as part of their Github integration.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Regression/functionality testing</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Less often (once or twice), shortly before the pre-release announcement.
|
|
||||||
Ensure that testing is redone if Intel devs have requested an exception, as per above.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><em>no regressions should be observed for Piglit/dEQP/CTS/Vulkan on Intel platforms</em>
|
|
||||||
<li><em>no regressions should be observed for Piglit using the swrast, softpipe
|
|
||||||
and llvmpipe drivers</em>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Currently testing is performed courtesy of the Intel OTC team and their Jenkins CI setup. Check with the Intel team over IRC how to get things setup.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="branch">Making a branchpoint</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A branchpoint is made such that new development can continue in parallel to
|
|
||||||
stabilisation and bugfixing.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Note: Before doing a branch ensure that basic build and <code>make check</code>
|
|
||||||
testing is done and there are little to-no issues.
|
|
||||||
<br>
|
|
||||||
Ideally all of those should be tackled already.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Check if the version number is going to remain as, alternatively
|
|
||||||
<code> git mv docs/relnotes/{current,new}.html </code> as appropriate.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To setup the branchpoint:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
git checkout master # make sure we're in master first
|
|
||||||
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
|
|
||||||
git checkout -b X.Y
|
|
||||||
git checkout master
|
|
||||||
$EDITOR VERSION # bump the version number
|
|
||||||
git commit -as
|
|
||||||
git push origin X.Y-branchpoint X.Y
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Now go to
|
|
||||||
<a href="https://bugs.freedesktop.org/editversions.cgi?action=add&product=Mesa" target="_parent">Bugzilla</a> and add the new Mesa version X.Y.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Check for rare that there are no distribution breaking changes and revert them
|
|
||||||
if needed. Extremely rare - we had only one case so far (see
|
|
||||||
commit 2ced8eb136528914e1bf4e000dea06a9d53c7e04).
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Proceed to <a href="#release">release</a> -rc1.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1 id="prerelease">Pre-release announcement</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
It comes shortly after outstanding patches in the respective branch are pushed.
|
|
||||||
Developers can check, in brief, what's the status of their patches. They,
|
|
||||||
alongside very early testers, are strongly encouraged to test the branch and
|
|
||||||
report any regressions.
|
|
||||||
<br>
|
|
||||||
It is followed by a brief period (normally 24 or 48 hours) before the actual
|
|
||||||
release is made.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Terminology used</h2>
|
|
||||||
<ul><li>Nominated</ul>
|
|
||||||
<p>
|
|
||||||
Patch that is nominated but yet to to merged in the patch queue/branch.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul><li>Queued</ul>
|
|
||||||
<p>
|
|
||||||
Patch is in the queue/branch and will feature in the next release.
|
|
||||||
Barring reported regressions or objections from developers.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul><li>Rejected</ul>
|
|
||||||
<p>
|
|
||||||
Patch does not fit the
|
|
||||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and
|
|
||||||
is followed by a brief information.
|
|
||||||
<br>
|
|
||||||
The release maintainer is human so if you believe you've spotted a mistake do
|
|
||||||
let them know.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Format/template</h2>
|
|
||||||
<pre>
|
|
||||||
Subject: [ANNOUNCE] Mesa X.Y.Z release candidate
|
|
||||||
To: mesa-announce@...
|
|
||||||
Cc: mesa-dev@...
|
|
||||||
|
|
||||||
Hello list,
|
|
||||||
|
|
||||||
The candidate for the Mesa X.Y.Z is now available. Currently we have:
|
|
||||||
- NUMBER queued
|
|
||||||
- NUMBER nominated (outstanding)
|
|
||||||
- and NUMBER rejected patches
|
|
||||||
|
|
||||||
BRIEF SUMMARY OF CHANGES
|
|
||||||
|
|
||||||
Take a look at section "Mesa stable queue" for more information.
|
|
||||||
|
|
||||||
|
|
||||||
Testing reports/general approval
|
|
||||||
--------------------------------
|
|
||||||
Any testing reports (or general approval of the state of the branch) will be
|
|
||||||
greatly appreciated.
|
|
||||||
|
|
||||||
The plan is to have X.Y.Z this DAY (DATE), around or shortly after TIME.
|
|
||||||
|
|
||||||
If you have any questions or suggestions - be that about the current patch
|
|
||||||
queue or otherwise, please go ahead.
|
|
||||||
|
|
||||||
|
|
||||||
Trivial merge conflicts
|
|
||||||
-----------------------
|
|
||||||
List of commits where manual intervention was required.
|
|
||||||
Keep the authors in the CC list.
|
|
||||||
|
|
||||||
commit SHA
|
|
||||||
Author: AUTHOR
|
|
||||||
|
|
||||||
COMMIT SUMMARY
|
|
||||||
|
|
||||||
CHERRY PICKED FROM
|
|
||||||
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
commit 990f395e007c3204639daa34efc3049f350ee819
|
|
||||||
Author: Emil Velikov <emil.velikov@collabora.com>
|
|
||||||
|
|
||||||
anv: automake: cleanup the generated json file during make clean
|
|
||||||
|
|
||||||
(cherry picked from commit 8df581520a823564be0ab5af7dbb7d501b1c9670)
|
|
||||||
|
|
||||||
|
|
||||||
Cheers,
|
|
||||||
Emil
|
|
||||||
|
|
||||||
|
|
||||||
Mesa stable queue
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Nominated (NUMBER)
|
|
||||||
==================
|
|
||||||
|
|
||||||
AUTHOR (NUMBER):
|
|
||||||
SHA COMMIT SUMMARY
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
Dave Airlie (1):
|
|
||||||
2de85eb radv: fix texturesamples to handle single sample case
|
|
||||||
|
|
||||||
|
|
||||||
Queued (NUMBER)
|
|
||||||
===============
|
|
||||||
|
|
||||||
AUTHOR (NUMBER):
|
|
||||||
COMMIT SUMMARY
|
|
||||||
|
|
||||||
|
|
||||||
Rejected (NUMBER)
|
|
||||||
=================
|
|
||||||
|
|
||||||
Rejected (11)
|
|
||||||
=============
|
|
||||||
|
|
||||||
AUTHOR (NUMBER):
|
|
||||||
SHA COMMIT SUMMARY
|
|
||||||
|
|
||||||
Reason: ...
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h1 id="release">Making a new release</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
These are the instructions for making a new Mesa release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Get latest source files</h3>
|
|
||||||
<p>
|
|
||||||
Ensure the latest code is available - both in your local master and the
|
|
||||||
relevant branch.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Perform basic testing</h3>
|
|
||||||
<p>
|
|
||||||
Most of the testing should already be done during the
|
|
||||||
<a href="#pickntest">cherry-pick</a> and
|
|
||||||
<a href="#prerelease">pre-announce</a> stages.
|
|
||||||
|
|
||||||
So we do a quick 'touch test'
|
|
||||||
<ul>
|
|
||||||
<li>make distcheck (you can omit this if you're not using --dist below)
|
|
||||||
<li>scons (from release tarball)
|
|
||||||
<li>the produced binaries work
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Here is one solution that I've been using.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
git clean -fXd; git clean -nxd
|
|
||||||
read # quick cross check any outstanding files
|
|
||||||
export __version=`cat VERSION`
|
|
||||||
export __mesa_root=../
|
|
||||||
export __build_root=./foo
|
|
||||||
chmod 755 -fR $__build_root; rm -rf $__build_root
|
|
||||||
mkdir -p $__build_root && cd $__build_root
|
|
||||||
|
|
||||||
$__mesa_root/autogen.sh --enable-llvm-shared-libs && make -j2 distcheck
|
|
||||||
|
|
||||||
# Build check the tarballs (scons)
|
|
||||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version && scons && cd ..
|
|
||||||
|
|
||||||
# Test the automake binaries
|
|
||||||
rm -rf mesa-$__version
|
|
||||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version
|
|
||||||
./configure \
|
|
||||||
--with-dri-drivers=i965,swrast \
|
|
||||||
--with-gallium-drivers=swrast \
|
|
||||||
--with-vulkan-drivers=intel \
|
|
||||||
--enable-llvm-shared-libs \
|
|
||||||
--enable-gallium-llvm \
|
|
||||||
--enable-glx-tls \
|
|
||||||
--enable-gbm \
|
|
||||||
--enable-egl \
|
|
||||||
--with-egl-platforms=x11,drm,wayland
|
|
||||||
make -j2 && DESTDIR=`pwd`/test make -j6 install
|
|
||||||
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/
|
|
||||||
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
|
|
||||||
export LIBGL_DEBUG=verbose
|
|
||||||
glxinfo | egrep -o "Mesa.*"
|
|
||||||
glxgears
|
|
||||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
|
||||||
es2gears_x11
|
|
||||||
export LIBGL_ALWAYS_SOFTWARE=1
|
|
||||||
glxinfo | egrep -o "Mesa.*|Gallium.*"
|
|
||||||
glxgears
|
|
||||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
|
||||||
es2gears_x11
|
|
||||||
export LIBGL_ALWAYS_SOFTWARE=1
|
|
||||||
export GALLIUM_DRIVER=softpipe
|
|
||||||
glxinfo | egrep -o "Mesa.*|Gallium.*"
|
|
||||||
glxgears
|
|
||||||
es2_info | egrep "GL_VERSION|GL_RENDERER"
|
|
||||||
es2gears_x11
|
|
||||||
# Smoke test DOTA2
|
|
||||||
unset LD_LIBRARY_PATH
|
|
||||||
unset LIBGL_DRIVERS_PATH
|
|
||||||
unset LIBGL_DEBUG
|
|
||||||
unset LIBGL_ALWAYS_SOFTWARE
|
|
||||||
export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.json
|
|
||||||
steam steam://rungameid/570 -vconsole -vulkan
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h3>Update version in file VERSION</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Increment the version contained in the file VERSION at Mesa's top-level, then
|
|
||||||
commit this change.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Create release notes for the new release</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Create a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous
|
|
||||||
release notes). Note that the sha256sums section of the release notes should
|
|
||||||
be empty (TBD) at this point.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Two scripts are available to help generate portions of the release notes:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
./bin/bugzilla_mesa.sh
|
|
||||||
./bin/shortlog_mesa.sh
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The first script identifies commits that reference bugzilla bugs and obtains
|
|
||||||
the descriptions of those bugs from bugzilla. The second script generates a
|
|
||||||
log of all commits. In both cases, HTML-formatted lists are printed to stdout
|
|
||||||
to be included in the release notes.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Commit these changes and push the branch.
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
git push origin HEAD
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Use the release.sh script from xorg util-macros</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Ensure that the mesa git tree is clean via <code>git clean -fXd</code> and
|
|
||||||
start the release process.
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Pay close attention to the prompts as you might be required to enter your GPG
|
|
||||||
and SSH passphrase(s) to sign and upload the files, respectively.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Add the sha256sums to the release notes</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Edit docs/relnotes/X.Y.Z.html to add the sha256sums as availabe in the mesa-X.Y.Z.announce template. Commit this change.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Back on mesa master, add the new release notes into the tree</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Something like the following steps will do the trick:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
git cherry-pick -x X.Y~1
|
|
||||||
git cherry-pick -x X.Y
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Also, edit docs/relnotes.html to add a link to the new release notes, and edit
|
|
||||||
docs/index.html to add a news entry. Then commit and push:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
git commit -as -m "docs: add news item and link release notes for X.Y.Z"
|
|
||||||
git push origin master X.Y
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="announce">Announce the release</h1>
|
|
||||||
<p>
|
|
||||||
Use the generated template during the releasing process.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="website">Update the mesa3d.org website</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
NOTE: The recent release managers have not been performing this step
|
|
||||||
themselves, but leaving this to Brian Paul, (who has access to the
|
|
||||||
sourceforge.net hosting for mesa3d.org). Brian is more than willing to grant
|
|
||||||
the permission necessary to future release managers to do this step on their
|
|
||||||
own.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Update the web site by copying the docs/ directory's files to
|
|
||||||
/home/users/b/br/brianp/mesa-www/htdocs/ with:
|
|
||||||
<br>
|
|
||||||
<code>
|
|
||||||
sftp USERNAME,mesa3d@web.sourceforge.net
|
|
||||||
</code>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1 id="bugzilla">Update Bugzilla</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
|
||||||
document.
|
|
||||||
<br>
|
|
||||||
If there's outstanding action, close the bug referencing the commit ID which
|
|
||||||
addresses the bug and mention the Mesa version that has the fix.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Note: the above is not applicable to all the reports, so use common sense.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,214 +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>Release Notes</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The release notes summarize what's new or changed in each Mesa release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="relnotes/12.0.6.html">12.0.6 release notes</a>
|
|
||||||
<li><a href="relnotes/13.0.3.html">13.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.5.html">12.0.5 release notes</a>
|
|
||||||
<li><a href="relnotes/13.0.2.html">13.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/13.0.1.html">13.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.4.html">12.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/13.0.0.html">13.0.0 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.3.html">12.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.2.html">12.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.1.html">12.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/12.0.0.html">12.0.0 release notes</a>
|
|
||||||
<li><a href="relnotes/11.2.2.html">11.2.2 release notes</a>
|
|
||||||
<li><a href="relnotes/11.1.4.html">11.1.4 release notes</a>
|
|
||||||
<li><a href="relnotes/11.2.1.html">11.2.1 release notes</a>
|
|
||||||
<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>
|
|
||||||
<li><a href="relnotes/11.0.8.html">11.0.8 release notes</a>
|
|
||||||
<li><a href="relnotes/11.1.0.html">11.1.0 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.7.html">11.0.7 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.6.html">11.0.6 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.5.html">11.0.5 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.4.html">11.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.3.html">11.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.9.html">10.6.9 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.2.html">11.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.1.html">11.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.8.html">10.6.8 release notes</a>
|
|
||||||
<li><a href="relnotes/11.0.0.html">11.0.0 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.7.html">10.6.7 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.6.html">10.6.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.5.html">10.6.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.4.html">10.6.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.3.html">10.6.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.2.html">10.6.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.9.html">10.5.9 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.1.html">10.6.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.8.html">10.5.8 release notes</a>
|
|
||||||
<li><a href="relnotes/10.6.0.html">10.6.0 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.7.html">10.5.7 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.6.html">10.5.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.5.html">10.5.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.4.html">10.5.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.3.html">10.5.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.2.html">10.5.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.7.html">10.4.7 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.1.html">10.5.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.5.0.html">10.5.0 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.6.html">10.4.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.5.html">10.4.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.4.html">10.4.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.3.html">10.4.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.2.html">10.4.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.7.html">10.3.7 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.1.html">10.4.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.6.html">10.3.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.4.html">10.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.5.html">10.3.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.4.html">10.3.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.3.html">10.3.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.2.html">10.3.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.1.html">10.3.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.9.html">10.2.9 release notes</a>
|
|
||||||
<li><a href="relnotes/10.3.html">10.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.7.html">10.2.7 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.2.html">10.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.1.html">10.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.4.html">10.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.3.html">10.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.2.html">10.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.1.html">10.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/10.0.html">10.0 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.5.html">9.2.5 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.4.html">9.2.4 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.3.html">9.2.3 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.2.html">9.2.2 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.1.html">9.2.1 release notes</a>
|
|
||||||
<li><a href="relnotes/9.2.html">9.2 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.7.html">9.1.7 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.6.html">9.1.6 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.5.html">9.1.5 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.4.html">9.1.4 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.3.html">9.1.3 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.2.html">9.1.2 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.1.html">9.1.1 release notes</a>
|
|
||||||
<li><a href="relnotes/9.1.html">9.1 release notes</a>
|
|
||||||
<li><a href="relnotes/9.0.3.html">9.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/9.0.2.html">9.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/9.0.1.html">9.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/9.0.html">9.0 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.5.html">8.0.5 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.4.html">8.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.3.html">8.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.2.html">8.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.1.html">8.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/8.0.html">8.0 release notes</a>
|
|
||||||
<li><a href="relnotes/7.11.2.html">7.11.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.11.1.html">7.11.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.11.html">7.11 release notes</a>
|
|
||||||
<li><a href="relnotes/7.10.3.html">7.10.3 release notes</a>
|
|
||||||
<li><a href="relnotes/7.10.2.html">7.10.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.10.1.html">7.10.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.10.html">7.10 release notes</a>
|
|
||||||
<li><a href="relnotes/7.9.2.html">7.9.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.9.1.html">7.9.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.9.html">7.9 release notes</a>
|
|
||||||
<li><a href="relnotes/7.8.3.html">7.8.3 release notes</a>
|
|
||||||
<li><a href="relnotes/7.8.2.html">7.8.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.8.1.html">7.8.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.8.html">7.8 release notes</a>
|
|
||||||
<li><a href="relnotes/7.7.1.html">7.7.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.7.html">7.7 release notes</a>
|
|
||||||
<li><a href="relnotes/7.6.1.html">7.6.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.6.html">7.6 release notes</a>
|
|
||||||
<li><a href="relnotes/7.5.2.html">7.5.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.5.1.html">7.5.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.5.html">7.5 release notes</a>
|
|
||||||
<li><a href="relnotes/7.4.4.html">7.4.4 release notes</a>
|
|
||||||
<li><a href="relnotes/7.4.3.html">7.4.3 release notes</a>
|
|
||||||
<li><a href="relnotes/7.4.2.html">7.4.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.4.1.html">7.4.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.4.html">7.4 release notes</a>
|
|
||||||
<li><a href="relnotes/7.3.html">7.3 release notes</a>
|
|
||||||
<li><a href="relnotes/7.2.html">7.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.1.html">7.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.0.4.html">7.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/7.0.3.html">7.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/7.0.2.html">7.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/7.0.1.html">7.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/7.0.html">7.0 release notes</a>
|
|
||||||
<li><a href="relnotes/6.5.3.html">6.5.3 release notes</a>
|
|
||||||
<li><a href="relnotes/6.5.2.html">6.5.2 release notes</a>
|
|
||||||
<li><a href="relnotes/6.5.1.html">6.5.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.5.html">6.5 release notes</a>
|
|
||||||
<li><a href="relnotes/6.4.2.html">6.4.2 release notes</a>
|
|
||||||
<li><a href="relnotes/6.4.1.html">6.4.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.4.html">6.4 release notes</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Versions of Mesa prior to 6.4 are summarized in the
|
|
||||||
<a href="versions.html">versions file</a> and the following release notes.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="relnotes/6.3.2">6.3.2 release notes</a>
|
|
||||||
<li><a href="relnotes/6.3.1">6.3.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.3">6.3 release notes</a>
|
|
||||||
<li><a href="relnotes/6.2.1">6.2.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.2">6.2 release notes</a>
|
|
||||||
<li><a href="relnotes/6.1">6.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.0.1">6.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/6.0">6.0 release notes</a>
|
|
||||||
<li><a href="relnotes/5.1">5.1 release notes</a>
|
|
||||||
<li><a href="relnotes/5.0.2">5.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/5.0.1">5.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/5.0">5.0 release notes</a>
|
|
||||||
<li><a href="relnotes/4.1">4.1 release notes</a>
|
|
||||||
<li><a href="relnotes/4.0.3">4.0.3 release notes</a>
|
|
||||||
<li><a href="relnotes/4.0.2">4.0.2 release notes</a>
|
|
||||||
<li><a href="relnotes/4.0.1">4.0.1 release notes</a>
|
|
||||||
<li><a href="relnotes/4.0">4.0 release notes</a>
|
|
||||||
<li><a href="relnotes/3.5">3.5 release notes</a>
|
|
||||||
<li><a href="relnotes/3.4.2">3.4.2 release notes</a>
|
|
||||||
<li><a href="relnotes/3.4.1">3.4.1 release notes</a>
|
|
||||||
<li><a href="relnotes/3.4">3.4 release notes</a>
|
|
||||||
<li><a href="relnotes/3.3">3.3 release notes</a>
|
|
||||||
<li><a href="relnotes/3.2.1">3.2.1 release notes</a>
|
|
||||||
<li><a href="relnotes/3.2">3.2 release notes</a>
|
|
||||||
<li><a href="relnotes/3.1">3.1 release notes</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,150 +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 10.0.1 Release Notes / (December 12, 2013)</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa 10.0.1 is a bug fix release which fixes bugs found since the 10.0 release.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Mesa 10.0.1 implements the OpenGL 3.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 3.3. OpenGL
|
|
||||||
3.3 is <strong>only</strong> available if requested at context creation
|
|
||||||
because compatibility contexts not supported.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>MD5 checksums</h2>
|
|
||||||
<pre>
|
|
||||||
0a72ca5b36046a658bf6038326ff32ed MesaLib-10.0.1.tar.bz2
|
|
||||||
01bde35c912e504ba62caf1ef9f7022c MesaLib-10.0.1.tar.gz
|
|
||||||
59a174a11a89e6b1b8ee9c3f7e3c388c MesaLib-10.0.1.zip
|
|
||||||
</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=64323">Bug 64323</a> - Severe misrendering in Left 4 Dead 2</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68838">Bug 68838</a> - GLSL: struct declarations produce a "empty declaration warning" in 9.2</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69155">Bug 69155</a> - [NV50 gallium] [piglit] bin/varying-packing-simple triggers memory corruption/failures</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70250">Bug 70250</a> - weston-terminal rendering corrupted with output transform 90 and 270</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70601">Bug 70601</a> - [SNB Bisected]Piglit spec/ARB_texture_float/multisample-formats 2 GL_ARB_texture_float fails</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72230">Bug 72230</a> - Unable to extract MesaLib-10.0.0.tar.{gz,bz2} with bsdtar</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72325">Bug 72325</a> - [swrast] piglit glean fbo regression</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72327">Bug 72327</a> - [swrast] piglit glean pointSprite regression</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Changes</h2>
|
|
||||||
|
|
||||||
<p>The full set of changes can be viewed by using the following git command:</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
git log mesa-10.0..mesa-10.0.1
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>Axel Davy (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>egl/wayland: Flush the wl_display at the end of SwapBuffers</li>
|
|
||||||
<li>Enable throttling in SwapBuffers</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Chad Versace (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs</li>
|
|
||||||
<li>i965: Add extra-alignment for non-msrt fast color clear for all hw (v2)</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Dave Airlie (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>swrast: fix readback regression since inversion fix</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Emil Velikov (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>automake: include only one copy VERSION in tarball</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Ian Romanick (3):</p>
|
|
||||||
<ul>
|
|
||||||
<li>docs: Add 10.0 release md5sums</li>
|
|
||||||
<li>Remove a057b83 from the pick list</li>
|
|
||||||
<li>glsl: Don't emit empty declaration warning for a struct specifier</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Ilia Mirkin (8):</p>
|
|
||||||
<ul>
|
|
||||||
<li>mesa: don't leak performance monitors on context destroy</li>
|
|
||||||
<li>nv50: Fix GPU_READING/WRITING bit removal</li>
|
|
||||||
<li>nouveau: avoid leaking fences while waiting</li>
|
|
||||||
<li>nv50: wait on the buf's fence before sticking it into pushbuf</li>
|
|
||||||
<li>nv50: enable h264 and mpeg4 for nv98+ (vp3, vp4.0)</li>
|
|
||||||
<li>nouveau/video: update h264 picparm field names based on usage</li>
|
|
||||||
<li>nouveau/video: update a few more h264 picparm field names</li>
|
|
||||||
<li>nv50: report 15 max inputs for fragment programs</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Jordan Justen (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>dri megadriver_stub: add compatibility for older DRI loaders</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Kristian Høgsberg (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers</li>
|
|
||||||
<li>egl/wayland: Send commit after flushing the driver context</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Maarten Lankhorst (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>nouveau: Fix compiler warning regression</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Paul Berry (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>i965/gen6: Fix multisample resolve blits for luminance/intensity 32F formats.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Thomas Hellstrom (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>st/xa: Bump major version number to 2</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Tom Stellard (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>r300/compiler/tests: Fix segfault</li>
|
|
||||||
<li>r300/compiler/tests: Fix line length check in test parser</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<title>Mesa Release Notes</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Mesa 10.0.2 Release Notes / (January 9, 2014)</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa 10.0.2 is a bug fix release which fixes bugs found since the 10.0.1 release.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Mesa 10.0.2 implements the OpenGL 3.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 3.3. OpenGL
|
|
||||||
3.3 is <strong>only</strong> available if requested at context creation
|
|
||||||
because compatibility contexts not supported.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>MD5 checksums</h2>
|
|
||||||
<pre>
|
|
||||||
de7d14baf0101b697c140d2f47ef27e9 MesaLib-10.0.2.tar.gz
|
|
||||||
8544c0ab3e438a08b5103421ea15b6d2 MesaLib-10.0.2.tar.bz2
|
|
||||||
181b0d6c1afca38e98a930d0e564ed90 MesaLib-10.0.2.zip
|
|
||||||
</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=70740">Bug 70740</a> - HiZ on SNB causes GPU hang with WebGL web app</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72026">Bug 72026</a> - SIGSEGV in fs_visitor::visit(ir_dereference_variable*)</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72264">Bug 72264</a> - GLSL error reporting</li>
|
|
||||||
|
|
||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72369">Bug 72369</a> - glitches in serious sam 3 with the sb shader backend</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>Changes</h2>
|
|
||||||
|
|
||||||
<p>The full set of changes can be viewed by using the following git command:</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
git log mesa-10.0.1..mesa-10.0.2
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>Aaron Watry (8):</p>
|
|
||||||
<ul>
|
|
||||||
<li>clover: Remove unused variable</li>
|
|
||||||
<li>pipe_loader/sw: close dev->lib when initialization fails</li>
|
|
||||||
<li>radeon/compute: Stop leaking LLVMContexts in radeon_llvm_parse_bitcode</li>
|
|
||||||
<li>r600/compute: Free compiled kernels when deleting compute state</li>
|
|
||||||
<li>r600/compute: Use the correct FREE macro when deleting compute state</li>
|
|
||||||
<li>radeon/llvm: Free target data at end of optimization</li>
|
|
||||||
<li>st/vdpau: Destroy context when initialization fails</li>
|
|
||||||
<li>r600/pipe: Stop leaking context->start_compute_cs_cmd.buf on EG/CM</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Alex Deucher (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>r600g: fix SUMO2 pci id</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Alexander von Gluck IV (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>Haiku: Add in public GL kit headers</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Anuj Phogat (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>mesa: Fix error code generation in glBeginConditionalRender()</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Carl Worth (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>docs: Add md5sums for the 10.0.1 release.</li>
|
|
||||||
<li>Update version to 10.0.2</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Chad Versace (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>i965/gen6: Fix HiZ hang in WebGL Google Maps</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Erik Faye-Lund (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>glcpp: error on multiple #else/#elif directives</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Henri Verbeet (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>i915: Add support for gl_FragData[0] reads.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Ilia Mirkin (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>nv50: fix a small leak on context destroy</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Jonathan Liu (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>st/mesa: use pipe_sampler_view_release()</li>
|
|
||||||
<li>llvmpipe: use pipe_sampler_view_release() to avoid segfault</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Kenneth Graunke (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>i965: Fix 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet creation.</li>
|
|
||||||
<li>Revert "mesa: Remove GLXContextID typedef from glx.h."</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Kevin Rogovin (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>Use line number information from entire function expression</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Kristian Høgsberg (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>dri_util: Don't assume __DRIcontext->driverPrivate is a gl_context</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Marek Olšák (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>mesa: fix interpretation of glClearBuffer(drawbuffer)</li>
|
|
||||||
<li>st/mesa: fix glClear with multiple colorbuffers and different formats</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Paul Berry (2):</p>
|
|
||||||
<ul>
|
|
||||||
<li>glsl: Teach ir_variable_refcount about ir_loop::counter variables.</li>
|
|
||||||
<li>glsl: Fix inconsistent assumptions about ir_loop::counter.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Vadim Girlin (1):</p>
|
|
||||||
<ul>
|
|
||||||
<li>r600g/sb: fix stack size computation on evergreen</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user