Compare commits
241 Commits
mesa-18.3.
...
mesa_4_0_3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4266ec91fe | ||
|
|
8a5bdd826a | ||
|
|
20cbbf8459 | ||
|
|
2847895a03 | ||
|
|
79d05b5649 | ||
|
|
a0ad8d5a8a | ||
|
|
1a9198f118 | ||
|
|
dd8fbed413 | ||
|
|
972cc7827f | ||
|
|
263d8ff8e3 | ||
|
|
363c8b9048 | ||
|
|
eb7b122807 | ||
|
|
6306085c69 | ||
|
|
7e20f99f81 | ||
|
|
a79f7f8838 | ||
|
|
d1d4f6bd34 | ||
|
|
640f61ba13 | ||
|
|
07e3f72bf8 | ||
|
|
d06d24f497 | ||
|
|
3fa786c175 | ||
|
|
984bb590df | ||
|
|
67c5effe5c | ||
|
|
fbe488cb76 | ||
|
|
dbd36a0ca0 | ||
|
|
076870f384 | ||
|
|
c1fba8241b | ||
|
|
690798ae3b | ||
|
|
89e91fcc9a | ||
|
|
d5a8eeaeeb | ||
|
|
b118f433e1 | ||
|
|
fbbb780e1f | ||
|
|
9429860763 | ||
|
|
531af3f17f | ||
|
|
054f415f45 | ||
|
|
b1b4382283 | ||
|
|
3aef708b56 | ||
|
|
d63730d087 | ||
|
|
2469fc9672 | ||
|
|
86ab257a46 | ||
|
|
d7e7d8ec74 | ||
|
|
fe4edce605 | ||
|
|
b0f477e5dd | ||
|
|
ce4c38fe2e | ||
|
|
09760a9563 | ||
|
|
d7abab5c67 | ||
|
|
e900da049b | ||
|
|
9def08ad3d | ||
|
|
978731595d | ||
|
|
00e5cb4120 | ||
|
|
b338ee265a | ||
|
|
8d3f06a565 | ||
|
|
0d1785c6db | ||
|
|
79474dc528 | ||
|
|
43e90c0053 | ||
|
|
c748b6c3d8 | ||
|
|
2c109c15e0 | ||
|
|
22fcb86432 | ||
|
|
70c5d68365 | ||
|
|
1b0fcb2124 | ||
|
|
6668d2fcb1 | ||
|
|
e3c2d6bd0c | ||
|
|
655e0ad0c1 | ||
|
|
d99fa29b94 | ||
|
|
7229861a46 | ||
|
|
f5130e3473 | ||
|
|
a5ed2460e9 | ||
|
|
e2130abf8f | ||
|
|
bf6a6f1d59 | ||
|
|
abd10c99e5 | ||
|
|
c3bc8a9c1e | ||
|
|
aa5698e8ed | ||
|
|
cf4c9ada0d | ||
|
|
13c751a1c2 | ||
|
|
2af71a9acf | ||
|
|
5e0316f1a8 | ||
|
|
2366fb3b89 | ||
|
|
4ad3511865 | ||
|
|
44f6191507 | ||
|
|
aaf89c1cc7 | ||
|
|
7350dd7395 | ||
|
|
972815c414 | ||
|
|
0bb0b4df73 | ||
|
|
e07b4252ad | ||
|
|
b8855675ca | ||
|
|
6bf823ac2d | ||
|
|
af3f3080f9 | ||
|
|
bb47715320 | ||
|
|
cef9cdf3bb | ||
|
|
4493f41577 | ||
|
|
a4f3130a7f | ||
|
|
b2c3daa875 | ||
|
|
3d6951c097 | ||
|
|
db0ed6252b | ||
|
|
e6c59e8d0c | ||
|
|
378fcdb818 | ||
|
|
cd3f5d807a | ||
|
|
c3e908891c | ||
|
|
fdbaf407a7 | ||
|
|
5a86d3852c | ||
|
|
96d0be5cf2 | ||
|
|
0bd26c3c55 | ||
|
|
9f7053e913 | ||
|
|
9fa55ac457 | ||
|
|
101092ea11 | ||
|
|
da648d9afd | ||
|
|
7a3b7c9687 | ||
|
|
55f8fcba10 | ||
|
|
7419597f2f | ||
|
|
e784671997 | ||
|
|
c2165e799c | ||
|
|
40519b3eb3 | ||
|
|
dcda68de33 | ||
|
|
8308199e5d | ||
|
|
3b029b0c7d | ||
|
|
bff7677bd9 | ||
|
|
41796ecc25 | ||
|
|
94865a95b1 | ||
|
|
b8b23d4552 | ||
|
|
3245cfdf41 | ||
|
|
69e043158a | ||
|
|
3ce17ffb84 | ||
|
|
33b483f882 | ||
|
|
308a036114 | ||
|
|
4c97c84f7e | ||
|
|
d7bde06097 | ||
|
|
a00292bcfe | ||
|
|
7d729ffb58 | ||
|
|
aeb6c0af5e | ||
|
|
41110917d7 | ||
|
|
a58b1ed0a3 | ||
|
|
27b503cab8 | ||
|
|
d38cdd33d0 | ||
|
|
851acc6ea7 | ||
|
|
6115d784a7 | ||
|
|
fcca385bec | ||
|
|
06743cf365 | ||
|
|
b372b40bd1 | ||
|
|
3e3bd40614 | ||
|
|
3fb6d0bfde | ||
|
|
b36acc0423 | ||
|
|
287d6127d2 | ||
|
|
a8290d3a95 | ||
|
|
b26f972618 | ||
|
|
5bd6bad38d | ||
|
|
1ae3437156 | ||
|
|
93665403aa | ||
|
|
04613cb0bc | ||
|
|
e0a30e9d2d | ||
|
|
fd3da01ec3 | ||
|
|
40bbb8b7f3 | ||
|
|
00b7772bda | ||
|
|
0fc4d7e46d | ||
|
|
1261fed2c3 | ||
|
|
4f4f542bd7 | ||
|
|
550169ab62 | ||
|
|
ad83c33a4d | ||
|
|
a340c4f6ef | ||
|
|
781f27575c | ||
|
|
08e126fba6 | ||
|
|
b03241a552 | ||
|
|
e4efc983bd | ||
|
|
785bfd0c1e | ||
|
|
a0e4612f49 | ||
|
|
f6e1618f97 | ||
|
|
3a450fb4b0 | ||
|
|
43daa03ac1 | ||
|
|
cb69912494 | ||
|
|
b4518ee5d4 | ||
|
|
6ef05c2817 | ||
|
|
26d31abd87 | ||
|
|
7702362bda | ||
|
|
5141607357 | ||
|
|
a9e14e7bb9 | ||
|
|
5196a16629 | ||
|
|
7f37280955 | ||
|
|
986b7ec195 | ||
|
|
9012185ae8 | ||
|
|
2edf851932 | ||
|
|
1703b67ee0 | ||
|
|
9342fbe46e | ||
|
|
2f88c5fbd4 | ||
|
|
dc35f387ca | ||
|
|
597ec4040c | ||
|
|
51aa3d2f30 | ||
|
|
0c1f42ef29 | ||
|
|
06ae58eebb | ||
|
|
d8deb468f7 | ||
|
|
4aac60f691 | ||
|
|
e20d35d74a | ||
|
|
ed26c2d950 | ||
|
|
95681b4a85 | ||
|
|
17a5135fee | ||
|
|
69b71bc1ab | ||
|
|
9f6957e702 | ||
|
|
bf78731523 | ||
|
|
c527df81df | ||
|
|
ca2315d95b | ||
|
|
c4dd9e2a03 | ||
|
|
34174976c4 | ||
|
|
ff23c15bdc | ||
|
|
eb0ce107c7 | ||
|
|
bfe6c71b99 | ||
|
|
69f2ff5f38 | ||
|
|
f28c19da41 | ||
|
|
c132ca9774 | ||
|
|
8ca1772d4a | ||
|
|
ff5fe4836a | ||
|
|
f88e0898a1 | ||
|
|
3f2eedd634 | ||
|
|
158c7413fb | ||
|
|
0a96860e04 | ||
|
|
37b10249e5 | ||
|
|
589cee71b8 | ||
|
|
c6dcd5c4cf | ||
|
|
e1ec4771f1 | ||
|
|
917e942fe2 | ||
|
|
f427427ca8 | ||
|
|
7ed97d4ef4 | ||
|
|
267b9cc082 | ||
|
|
efb678da77 | ||
|
|
32aa05bfd6 | ||
|
|
299a71fe04 | ||
|
|
63da26bd62 | ||
|
|
dfb7ebf8a0 | ||
|
|
64681c1f82 | ||
|
|
8c3149f250 | ||
|
|
53e284bda1 | ||
|
|
f46ce82219 | ||
|
|
4256cf0175 | ||
|
|
986749a4ea | ||
|
|
07042d164b | ||
|
|
0739d6f158 | ||
|
|
2fd7a602a7 | ||
|
|
f97edb4ca3 | ||
|
|
3b0571dd5c | ||
|
|
c25f068355 | ||
|
|
3a05f42b28 | ||
|
|
2631c2a2de | ||
|
|
b2728086ec | ||
|
|
2e7644f13d | ||
|
|
9c3e7d2294 |
@@ -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,39 +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
|
|
||||||
|
|
||||||
[meson.build,meson_options.txt]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,4 +0,0 @@
|
|||||||
*.dsp -crlf
|
|
||||||
*.dsw -crlf
|
|
||||||
*.sln -crlf
|
|
||||||
*.vcproj -crlf
|
|
||||||
54
.gitignore
vendored
54
.gitignore
vendored
@@ -1,54 +0,0 @@
|
|||||||
*.a
|
|
||||||
*.dll
|
|
||||||
*.exe
|
|
||||||
*.ilk
|
|
||||||
*.la
|
|
||||||
*.lo
|
|
||||||
*.log
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
*.orig
|
|
||||||
*.os
|
|
||||||
*.pc
|
|
||||||
*.pdb
|
|
||||||
*.pyc
|
|
||||||
*.pyo
|
|
||||||
*.rej
|
|
||||||
*.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
|
|
||||||
471
.mailmap
471
.mailmap
@@ -1,471 +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>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliko@collabora.com>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.co.uk>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com>
|
|
||||||
|
|
||||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
|
||||||
|
|
||||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@imgtec.com>
|
|
||||||
|
|
||||||
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>
|
|
||||||
716
.travis.yml
716
.travis.yml
@@ -1,716 +0,0 @@
|
|||||||
language: c
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
dist: trusty
|
|
||||||
|
|
||||||
cache:
|
|
||||||
apt: true
|
|
||||||
ccache: true
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
|
||||||
- XCB_RELEASES=https://xcb.freedesktop.org/dist
|
|
||||||
- WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
|
||||||
- XORGMACROS_VERSION=util-macros-1.19.0
|
|
||||||
- GLPROTO_VERSION=glproto-1.4.17
|
|
||||||
- DRI2PROTO_VERSION=dri2proto-2.8
|
|
||||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
|
||||||
- LIBDRM_VERSION=libdrm-2.4.74
|
|
||||||
- XCBPROTO_VERSION=xcb-proto-1.13
|
|
||||||
- RANDRPROTO_VERSION=randrproto-1.3.0
|
|
||||||
- LIBXRANDR_VERSION=libXrandr-1.3.0
|
|
||||||
- LIBXCB_VERSION=libxcb-1.13
|
|
||||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
|
||||||
- LIBVDPAU_VERSION=libvdpau-1.1
|
|
||||||
- LIBVA_VERSION=libva-1.7.0
|
|
||||||
- LIBWAYLAND_VERSION=wayland-1.15.0
|
|
||||||
- WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
|
|
||||||
- PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
|
|
||||||
- LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
|
|
||||||
- PATH="$HOME/prefix/bin:$PATH"
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- env:
|
|
||||||
- LABEL="meson Vulkan"
|
|
||||||
- BUILD=meson
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_DRIVERS=""
|
|
||||||
- VULKAN_DRIVERS="intel,amd"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- python3.5
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="meson loaders/classic DRI"
|
|
||||||
- BUILD=meson
|
|
||||||
- DRI_DRIVERS="i915,i965,r100,r200,swrast,nouveau"
|
|
||||||
- GALLIUM_DRIVERS=""
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libxdamage-dev
|
|
||||||
- libxfixes-dev
|
|
||||||
- python3.5
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make loaders/classic DRI"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="make check"
|
|
||||||
- DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
|
|
||||||
- DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
|
|
||||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS=""
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--disable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libxdamage-dev
|
|
||||||
- libxfixes-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
|
||||||
# gallium drivers combined.
|
|
||||||
# Start this early so that it doesn't hunder the run time.
|
|
||||||
- LABEL="make Gallium Drivers SWR"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="swr"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium Drivers RadeonSI"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="radeonsi"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium Drivers Other"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=3.9
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
# New binutils linker is required for llvm-3.9
|
|
||||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
- binutils-2.26
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Clover LLVM-3.9"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=3.9
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- OVERRIDE_CC=gcc-4.7
|
|
||||||
- OVERRIDE_CXX=g++-4.7
|
|
||||||
# New binutils linker is required for llvm-3.9
|
|
||||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="r600"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
- binutils-2.26
|
|
||||||
- libclc-dev
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
- g++-4.7
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
- clang-3.9
|
|
||||||
- libclang-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Clover LLVM-4.0"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=4.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- OVERRIDE_CC=gcc-4.8
|
|
||||||
- OVERRIDE_CXX=g++-4.8
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="r600"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-4.0
|
|
||||||
packages:
|
|
||||||
- libclc-dev
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
- g++-4.8
|
|
||||||
# From sources above
|
|
||||||
- llvm-4.0-dev
|
|
||||||
- clang-4.0
|
|
||||||
- libclang-4.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Clover LLVM-5.0"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=5.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- OVERRIDE_CC=gcc-4.8
|
|
||||||
- OVERRIDE_CXX=g++-4.8
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="r600"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-5.0
|
|
||||||
packages:
|
|
||||||
- libclc-dev
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
- g++-4.8
|
|
||||||
# From sources above
|
|
||||||
- llvm-5.0-dev
|
|
||||||
- clang-5.0
|
|
||||||
- libclang-5.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Clover LLVM-6.0"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- libclc-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
- clang-6.0
|
|
||||||
- libclang-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Clover LLVM-7"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=7
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
|
|
||||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
|
||||||
# llvm-7 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- libclc-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-7-dev
|
|
||||||
- clang-7
|
|
||||||
- libclang-7-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium ST Other"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=3.3
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx-bellagio --enable-gallium-osmesa"
|
|
||||||
# We need swrast for osmesa and nine.
|
|
||||||
# i915 most likely doesn't work with most ST.
|
|
||||||
# Regardless - we're doing a quick build test here.
|
|
||||||
- GALLIUM_DRIVERS="i915,swrast"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
# We actually want to test against llvm-3.3
|
|
||||||
- llvm-3.3-dev
|
|
||||||
# Nine requires gcc 4.6... which is the one we have right ?
|
|
||||||
- libxvmc-dev
|
|
||||||
# Build locally, for now.
|
|
||||||
#- libvdpau-dev
|
|
||||||
#- libva-dev
|
|
||||||
- libomxil-bellagio-dev
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="make Vulkan"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
|
|
||||||
- DRI_DRIVERS=""
|
|
||||||
- GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS=""
|
|
||||||
- VULKAN_DRIVERS="intel,radeon"
|
|
||||||
- LIBUNWIND_FLAGS="--disable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- python3-pip
|
|
||||||
- env:
|
|
||||||
- LABEL="scons"
|
|
||||||
- BUILD=scons
|
|
||||||
- SCONSFLAGS="-j4"
|
|
||||||
# Explicitly disable.
|
|
||||||
- SCONS_TARGET="llvm=0"
|
|
||||||
# Keep it symmetrical to the make build.
|
|
||||||
- SCONS_CHECK_COMMAND="scons llvm=0 check"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="scons LLVM"
|
|
||||||
- BUILD=scons
|
|
||||||
- SCONSFLAGS="-j4"
|
|
||||||
- SCONS_TARGET="llvm=1"
|
|
||||||
# Keep it symmetrical to the make build.
|
|
||||||
- SCONS_CHECK_COMMAND="scons llvm=1 check"
|
|
||||||
- LLVM_VERSION=3.3
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
- llvm-3.3-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="scons SWR"
|
|
||||||
- BUILD=scons
|
|
||||||
- SCONSFLAGS="-j4"
|
|
||||||
- SCONS_TARGET="swr=1"
|
|
||||||
- LLVM_VERSION=6.0
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
# Keep it symmetrical to the make build. There's no actual SWR, yet.
|
|
||||||
- SCONS_CHECK_COMMAND="true"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-6.0
|
|
||||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
# From sources above
|
|
||||||
- llvm-6.0-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="macOS make"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="make check"
|
|
||||||
- DRI_LOADERS="--with-platforms=x11 --disable-egl"
|
|
||||||
os: osx
|
|
||||||
- env:
|
|
||||||
- LABEL="macOS meson"
|
|
||||||
- BUILD=meson
|
|
||||||
os: osx
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- |
|
|
||||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext
|
|
||||||
# Set PATH for homebrew pip3 installs
|
|
||||||
PATH="$HOME/Library/Python/3.6/bin:${PATH}"
|
|
||||||
# Set PKG_CONFIG_PATH for keg-only expat
|
|
||||||
PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
|
||||||
# Set PATH for keg-only gettext
|
|
||||||
PATH="/usr/local/opt/gettext/bin:${PATH}"
|
|
||||||
|
|
||||||
# Install xquartz for prereqs ...
|
|
||||||
XQUARTZ_VERSION="2.7.11"
|
|
||||||
wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
|
|
||||||
hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
|
|
||||||
sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
|
|
||||||
hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
|
|
||||||
# ... and set paths
|
|
||||||
PATH="/opt/X11/bin:${PATH}"
|
|
||||||
PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
|
||||||
ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
|
|
||||||
fi
|
|
||||||
|
|
||||||
install:
|
|
||||||
# Install a more modern meson from pip, since the version in the
|
|
||||||
# ubuntu repos is often quite old. This requires python>=3.5, so
|
|
||||||
# let's make it default
|
|
||||||
- if test "x$BUILD" = xmeson; then
|
|
||||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 10;
|
|
||||||
pip3 install --user meson;
|
|
||||||
pip3 install --user mako;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install autotools build dependencies
|
|
||||||
- if test "x$BUILD" = xmake; then
|
|
||||||
pip2 install --user mako;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install a more modern scons from pip.
|
|
||||||
- if test "x$BUILD" = xscons; then
|
|
||||||
pip2 install --user "scons>=2.4";
|
|
||||||
pip2 install --user mako;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
|
||||||
# latest version from there.
|
|
||||||
- for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
|
|
||||||
old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
|
|
||||||
new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
|
|
||||||
if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
|
|
||||||
export LIBDRM_VERSION="libdrm-$new_ver";
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
|
|
||||||
# Install dependencies where we require specific versions (or where
|
|
||||||
# disallowed by Travis CI's package whitelisting).
|
|
||||||
|
|
||||||
- |
|
|
||||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
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 $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 https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
|
||||||
tar -jxvf $LIBDRM_VERSION.tar.bz2
|
|
||||||
(cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
|
|
||||||
tar -jxvf $RANDRPROTO_VERSION.tar.bz2
|
|
||||||
(cd $RANDRPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
|
|
||||||
tar -jxvf $LIBXRANDR_VERSION.tar.bz2
|
|
||||||
(cd $LIBXRANDR_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
(cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
|
|
||||||
tar -jxvf $LIBVDPAU_VERSION.tar.bz2
|
|
||||||
(cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
|
|
||||||
tar -jxvf $LIBVA_VERSION.tar.bz2
|
|
||||||
(cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
|
||||||
tar -axvf $LIBWAYLAND_VERSION.tar.xz
|
|
||||||
(cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
|
|
||||||
tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
|
||||||
(cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
# Meson requires ninja >= 1.6, but trusty has 1.3.x
|
|
||||||
wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip
|
|
||||||
unzip ninja-linux.zip
|
|
||||||
mv ninja $HOME/prefix/bin/
|
|
||||||
|
|
||||||
# Generate this header since one is missing on the Travis instance
|
|
||||||
mkdir -p linux
|
|
||||||
printf "%s\n" \
|
|
||||||
"#ifndef _LINUX_MEMFD_H" \
|
|
||||||
"#define _LINUX_MEMFD_H" \
|
|
||||||
"" \
|
|
||||||
"#define MFD_CLOEXEC 0x0001U" \
|
|
||||||
"#define MFD_ALLOW_SEALING 0x0002U" \
|
|
||||||
"" \
|
|
||||||
"#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
|
|
||||||
|
|
||||||
# Generate this header, including the missing SYS_memfd_create
|
|
||||||
# macro, which is not provided by the header in the Travis
|
|
||||||
# instance
|
|
||||||
mkdir -p sys
|
|
||||||
printf "%s\n" \
|
|
||||||
"#ifndef _SYSCALL_H" \
|
|
||||||
"#define _SYSCALL_H 1" \
|
|
||||||
"" \
|
|
||||||
"#include <asm/unistd.h>" \
|
|
||||||
"" \
|
|
||||||
"#ifndef _LIBC" \
|
|
||||||
"# include <bits/syscall.h>" \
|
|
||||||
"#endif" \
|
|
||||||
"" \
|
|
||||||
"#ifndef __NR_memfd_create" \
|
|
||||||
"# define __NR_memfd_create 319 /* Taken from <asm/unistd_64.h> */" \
|
|
||||||
"#endif" \
|
|
||||||
"" \
|
|
||||||
"#ifndef SYS_memfd_create" \
|
|
||||||
"# define SYS_memfd_create __NR_memfd_create" \
|
|
||||||
"#endif" \
|
|
||||||
"" \
|
|
||||||
"#endif" > sys/syscall.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- if test "x$BUILD" = xmake; then
|
|
||||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
|
||||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
|
||||||
test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";
|
|
||||||
|
|
||||||
export CFLAGS="$CFLAGS -isystem`pwd`";
|
|
||||||
|
|
||||||
mkdir build &&
|
|
||||||
cd build &&
|
|
||||||
../autogen.sh --enable-debug
|
|
||||||
$LIBUNWIND_FLAGS
|
|
||||||
$DRI_LOADERS
|
|
||||||
--with-dri-drivers=$DRI_DRIVERS
|
|
||||||
$GALLIUM_ST
|
|
||||||
--with-gallium-drivers=$GALLIUM_DRIVERS
|
|
||||||
--with-vulkan-drivers=$VULKAN_DRIVERS
|
|
||||||
--disable-llvm-shared-libs
|
|
||||||
&&
|
|
||||||
make && eval $MAKE_CHECK_COMMAND;
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if test "x$BUILD" = xscons; then
|
|
||||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
|
||||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
|
||||||
scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
|
|
||||||
fi
|
|
||||||
|
|
||||||
- |
|
|
||||||
if test "x$BUILD" = xmeson; then
|
|
||||||
|
|
||||||
if test "x$TRAVIS_OS_NAME" == xosx; then
|
|
||||||
MESON_OPTIONS="-Degl=false"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$TRAVIS_OS_NAME" == xlinux; then
|
|
||||||
MESON_OPTIONS="-Ddri-drivers=${DRI_DRIVERS:-[]} -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Travis CI has moved to LLVM 5.0, and meson is detecting
|
|
||||||
# automatically the available version in /usr/local/bin based on
|
|
||||||
# the PATH env variable order preference.
|
|
||||||
#
|
|
||||||
# As for 0.44.x, Meson cannot receive the path to the
|
|
||||||
# llvm-config binary as a configuration parameter. See
|
|
||||||
# https://github.com/mesonbuild/meson/issues/2887 and
|
|
||||||
# https://github.com/dcbaker/meson/commit/7c8b6ee3fa42f43c9ac7dcacc61a77eca3f1bcef
|
|
||||||
#
|
|
||||||
# We want to use the custom (APT) installed version. Therefore,
|
|
||||||
# let's make Meson find our wanted version sooner than the one
|
|
||||||
# at /usr/local/bin
|
|
||||||
#
|
|
||||||
# Once this is corrected, we would still need a patch similar
|
|
||||||
# to:
|
|
||||||
# https://lists.freedesktop.org/archives/mesa-dev/2017-December/180217.html
|
|
||||||
test -f /usr/bin/$LLVM_CONFIG && ln -s /usr/bin/$LLVM_CONFIG $HOME/prefix/bin/llvm-config
|
|
||||||
|
|
||||||
export CFLAGS="$CFLAGS -isystem`pwd`"
|
|
||||||
meson _build $MESON_OPTIONS
|
|
||||||
ninja -C _build
|
|
||||||
fi
|
|
||||||
@@ -1,130 +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)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-Wno-error \
|
|
||||||
-Wno-unused-parameter \
|
|
||||||
-Wno-pointer-arith \
|
|
||||||
-Wno-missing-field-initializers \
|
|
||||||
-Wno-initializer-overrides \
|
|
||||||
-Wno-mismatched-tags \
|
|
||||||
-DVERSION=\"$(MESA_VERSION)\" \
|
|
||||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
|
||||||
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"
|
|
||||||
|
|
||||||
# XXX: The following __STDC_*_MACROS defines should not be needed.
|
|
||||||
# It's likely due to a bug elsewhere, but let's temporarily add them
|
|
||||||
# here to fix the radeonsi build.
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DANDROID_API_LEVEL=$(PLATFORM_SDK_VERSION) \
|
|
||||||
-DENABLE_SHADER_CACHE \
|
|
||||||
-D__STDC_CONSTANT_MACROS \
|
|
||||||
-D__STDC_LIMIT_MACROS \
|
|
||||||
-DHAVE___BUILTIN_EXPECT \
|
|
||||||
-DHAVE___BUILTIN_FFS \
|
|
||||||
-DHAVE___BUILTIN_FFSLL \
|
|
||||||
-DHAVE_DLFCN_H \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_PACKED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_ALIAS \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_NORETURN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT \
|
|
||||||
-DHAVE___BUILTIN_CTZ \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNT \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNTLL \
|
|
||||||
-DHAVE___BUILTIN_CLZ \
|
|
||||||
-DHAVE___BUILTIN_CLZLL \
|
|
||||||
-DHAVE___BUILTIN_UNREACHABLE \
|
|
||||||
-DHAVE_PTHREAD=1 \
|
|
||||||
-DHAVE_DLADDR \
|
|
||||||
-DHAVE_DL_ITERATE_PHDR \
|
|
||||||
-DHAVE_LINUX_FUTEX_H \
|
|
||||||
-DHAVE_ENDIAN_H \
|
|
||||||
-DHAVE_ZLIB \
|
|
||||||
-DMAJOR_IN_SYSMACROS \
|
|
||||||
-DVK_USE_PLATFORM_ANDROID_KHR \
|
|
||||||
-fvisibility=hidden \
|
|
||||||
-fno-math-errno \
|
|
||||||
-fno-trapping-math \
|
|
||||||
-Wno-sign-compare
|
|
||||||
|
|
||||||
LOCAL_CPPFLAGS += \
|
|
||||||
-D__STDC_CONSTANT_MACROS \
|
|
||||||
-D__STDC_FORMAT_MACROS \
|
|
||||||
-D__STDC_LIMIT_MACROS \
|
|
||||||
-Wno-error=non-virtual-dtor \
|
|
||||||
-Wno-non-virtual-dtor
|
|
||||||
|
|
||||||
# mesa requires at least c99 compiler
|
|
||||||
LOCAL_CONLYFLAGS += \
|
|
||||||
-std=c99
|
|
||||||
|
|
||||||
# c11 timespec_get is part of bionic as well
|
|
||||||
# https://android-review.googlesource.com/c/718518
|
|
||||||
# This means releases from P and earlier won't need this
|
|
||||||
ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
|
|
||||||
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DUSE_X86_ASM
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
|
||||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
|
||||||
endif
|
|
||||||
LOCAL_CFLAGS_arm64 += -DUSE_AARCH64_ASM
|
|
||||||
|
|
||||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
|
|
||||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
|
|
||||||
LOCAL_SHARED_LIBRARIES += libdrm
|
|
||||||
endif
|
|
||||||
|
|
||||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
LOCAL_PROPRIETARY_MODULE := true
|
|
||||||
|
|
||||||
# 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))
|
|
||||||
127
Android.mk
127
Android.mk
@@ -1,127 +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 nouveau pl111 r300g r600g radeonsi vc4 virgl vmwgfx etnaviv imx
|
|
||||||
#
|
|
||||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
|
||||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
|
||||||
|
|
||||||
MESA_TOP := $(call my-dir)
|
|
||||||
|
|
||||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
|
|
||||||
ifneq ($(filter 2 4, $(MESA_ANDROID_MAJOR_VERSION)),)
|
|
||||||
$(error "Android 4.4 and earlier not supported")
|
|
||||||
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_DRI_LDFLAGS := -Wl,--build-id=sha1
|
|
||||||
|
|
||||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
|
||||||
MESA_PYTHON2 := python
|
|
||||||
|
|
||||||
# Lists to convert driver names to boolean variables
|
|
||||||
# in form of <driver name>.<boolean make variable>
|
|
||||||
classic_drivers := i915.HAVE_I915_DRI i965.HAVE_I965_DRI
|
|
||||||
gallium_drivers := \
|
|
||||||
swrast.HAVE_GALLIUM_SOFTPIPE \
|
|
||||||
freedreno.HAVE_GALLIUM_FREEDRENO \
|
|
||||||
i915g.HAVE_GALLIUM_I915 \
|
|
||||||
nouveau.HAVE_GALLIUM_NOUVEAU \
|
|
||||||
pl111.HAVE_GALLIUM_PL111 \
|
|
||||||
r300g.HAVE_GALLIUM_R300 \
|
|
||||||
r600g.HAVE_GALLIUM_R600 \
|
|
||||||
radeonsi.HAVE_GALLIUM_RADEONSI \
|
|
||||||
vmwgfx.HAVE_GALLIUM_VMWGFX \
|
|
||||||
vc4.HAVE_GALLIUM_VC4 \
|
|
||||||
virgl.HAVE_GALLIUM_VIRGL \
|
|
||||||
etnaviv.HAVE_GALLIUM_ETNAVIV \
|
|
||||||
imx.HAVE_GALLIUM_IMX
|
|
||||||
|
|
||||||
ifeq ($(BOARD_GPU_DRIVERS),all)
|
|
||||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
|
|
||||||
MESA_BUILD_GALLIUM := $(filter HAVE_%, $(subst ., , $(gallium_drivers)))
|
|
||||||
else
|
|
||||||
# Warn if we have any invalid driver names
|
|
||||||
$(foreach d, $(BOARD_GPU_DRIVERS), \
|
|
||||||
$(if $(findstring $(d).,$(classic_drivers) $(gallium_drivers)), \
|
|
||||||
, \
|
|
||||||
$(warning invalid GPU driver: $(d)) \
|
|
||||||
) \
|
|
||||||
)
|
|
||||||
MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers)))))
|
|
||||||
MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers)))))
|
|
||||||
endif
|
|
||||||
ifeq ($(filter x86%,$(TARGET_ARCH)),)
|
|
||||||
MESA_BUILD_CLASSIC :=
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
|
||||||
|
|
||||||
# host and target must be the same arch to generate matypes.h
|
|
||||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
|
|
||||||
MESA_ENABLE_ASM := true
|
|
||||||
else
|
|
||||||
MESA_ENABLE_ASM := false
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
|
||||||
MESA_ENABLE_LLVM := true
|
|
||||||
endif
|
|
||||||
|
|
||||||
define mesa-build-with-llvm
|
|
||||||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \
|
|
||||||
$(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
|
|
||||||
$(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \
|
|
||||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0)) \
|
|
||||||
$(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \
|
|
||||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0)) \
|
|
||||||
$(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \
|
|
||||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \
|
|
||||||
$(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \
|
|
||||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \
|
|
||||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
|
||||||
endef
|
|
||||||
|
|
||||||
# add subdirectories
|
|
||||||
SUBDIRS := \
|
|
||||||
src/gbm \
|
|
||||||
src/loader \
|
|
||||||
src/mapi \
|
|
||||||
src/compiler \
|
|
||||||
src/mesa \
|
|
||||||
src/util \
|
|
||||||
src/egl \
|
|
||||||
src/amd \
|
|
||||||
src/broadcom \
|
|
||||||
src/intel \
|
|
||||||
src/mesa/drivers/dri \
|
|
||||||
src/vulkan
|
|
||||||
|
|
||||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
|
|
||||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
|
|
||||||
include $(INC_DIRS)
|
|
||||||
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)/*/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
|
|
||||||
1649
Make-config
Normal file
1649
Make-config
Normal file
File diff suppressed because it is too large
Load Diff
768
Makefile.X11
Normal file
768
Makefile.X11
Normal file
@@ -0,0 +1,768 @@
|
|||||||
|
# $Id: Makefile.X11,v 1.56.2.10 2002/06/24 20:44:58 brianp Exp $
|
||||||
|
|
||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 4.0.3
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999-2002 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 darwin for Darwin - Mac OS X"
|
||||||
|
@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-trace for Linux systems, with API trace extension"
|
||||||
|
@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-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 linux-osmesa16 for 16-bit/channel OSMesa"
|
||||||
|
@echo " make linux-osmesa32 for 32-bit/channel OSMesa"
|
||||||
|
@echo " make linux-icc for Linux with the Intel C/C++ compiler"
|
||||||
|
@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"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# XXX we may have to split up this group of targets into those that
|
||||||
|
# have a C++ compiler and those that don't for the SI-GLU library.
|
||||||
|
|
||||||
|
aix aix-sl amix bsdos bsdos4 darwin 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 \
|
||||||
|
linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \
|
||||||
|
linux-x86 linux-icc linux-x86-static linux-x86-debug \
|
||||||
|
linux-glide linux-386-glide linux-386-opt-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 si-glu ] ; then touch si-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 si-glu ] ; then cd si-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-o32 irix6-o32-dso 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 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 si-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 si-glu ] ; then cd si-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
|
||||||
|
|
||||||
|
linux-osmesa16 linux-osmesa32:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src ] ; then touch src/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; 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 si-glu/*/*.o si-glu/*/*/*.o
|
||||||
|
-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 -fr lib lib32 lib64
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DIRECTORY = Mesa-4.0.3
|
||||||
|
LIB_NAME = MesaLib-4.0.3
|
||||||
|
DEMO_NAME = MesaDemos-4.0.3
|
||||||
|
GLU_NAME = MesaGLU-4.0.3
|
||||||
|
GLUT_NAME = GLUT-3.7
|
||||||
|
|
||||||
|
|
||||||
|
LIB_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/acconfig.h \
|
||||||
|
$(DIRECTORY)/acinclude.m4 \
|
||||||
|
$(DIRECTORY)/aclocal.m4 \
|
||||||
|
$(DIRECTORY)/common_rules.make \
|
||||||
|
$(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)/descrip.mms \
|
||||||
|
$(DIRECTORY)/mms-config \
|
||||||
|
$(DIRECTORY)/m4/*.m4 \
|
||||||
|
$(DIRECTORY)/xlib.opt \
|
||||||
|
$(DIRECTORY)/mesawin32.mak \
|
||||||
|
$(DIRECTORY)/include/GL/internal/glcore.h \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.am \
|
||||||
|
$(DIRECTORY)/include/GL/dmesa.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/glxext.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/ugl*.h \
|
||||||
|
$(DIRECTORY)/include/GL/vms_x_fix.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/dmesadxe.h \
|
||||||
|
$(DIRECTORY)/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/Makefile* \
|
||||||
|
$(DIRECTORY)/src/libGL_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/mesa.conf \
|
||||||
|
$(DIRECTORY)/src/*.def \
|
||||||
|
$(DIRECTORY)/src/depend \
|
||||||
|
$(DIRECTORY)/src/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/array_cache/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/array_cache/Makefile* \
|
||||||
|
$(DIRECTORY)/src/array_cache/libMesaAC_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/math/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/math/Makefile* \
|
||||||
|
$(DIRECTORY)/src/swrast/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/swrast/Makefile* \
|
||||||
|
$(DIRECTORY)/src/swrast/libMesaSwrast_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/swrast_setup/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/swrast_setup/Makefile* \
|
||||||
|
$(DIRECTORY)/src/tnl/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/tnl/Makefile* \
|
||||||
|
$(DIRECTORY)/src/tnl/libMesaTnl_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/tnl_dd/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/tnl_dd/imm/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/tnl_dd/imm/NOTES.imm \
|
||||||
|
$(DIRECTORY)/src/windml/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/windml/tornado/*.c \
|
||||||
|
$(DIRECTORY)/src/windml/tornado/*.cdf \
|
||||||
|
$(DIRECTORY)/src/windml/man3/*.3 \
|
||||||
|
$(DIRECTORY)/src/windml/man3/*.html \
|
||||||
|
$(DIRECTORY)/src/DOS/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/BeOS/*.cpp \
|
||||||
|
$(DIRECTORY)/src/FX/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/FX/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/FX/libMesaFX_la_SOURCES \
|
||||||
|
$(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/Makefile.win \
|
||||||
|
$(DIRECTORY)/src/OSmesa/osmesa.def \
|
||||||
|
$(DIRECTORY)/src/OSmesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/SPARC/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/SPARC/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/SPARC/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/SVGA/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/SVGA/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/SVGA/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/Trace/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/Trace/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/Trace/Makefile.in \
|
||||||
|
$(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)/si-glu/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/si-glu/Makefile.win \
|
||||||
|
$(DIRECTORY)/si-glu/glu.def \
|
||||||
|
$(DIRECTORY)/si-glu/dummy.cc \
|
||||||
|
$(DIRECTORY)/si-glu/descrip.mms \
|
||||||
|
$(DIRECTORY)/si-glu/mesaglu.opt \
|
||||||
|
$(DIRECTORY)/si-glu/include/gluos.h \
|
||||||
|
$(DIRECTORY)/si-glu/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/libNIFac_la_SOURCES \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/libNInt_la_SOURCES \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbtess/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbtess/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbtess/libNTess_la_SOURCES \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/README \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/libtess_la_SOURCES \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/si-glu/libutil/*.[ch] \
|
||||||
|
$(DIRECTORY)/si-glu/libutil/libutil_la_SOURCES \
|
||||||
|
$(DIRECTORY)/si-glu/libutil/Makefile.am \
|
||||||
|
$(DIRECTORY)/si-glu/libutil/Makefile.in \
|
||||||
|
$(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/configure.in \
|
||||||
|
$(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
|
||||||
|
|
||||||
|
OBSOLETE_LIB_FILES = \
|
||||||
|
$(DIRECTORY)/src/Allegro/*.[ch] \
|
||||||
|
$(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/S3/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/S3/*.def \
|
||||||
|
$(DIRECTORY)/src/S3/*.mak \
|
||||||
|
$(DIRECTORY)/src/S3/*.rc \
|
||||||
|
$(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)/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.dos/*.[ch] \
|
||||||
|
$(DIRECTORY)/src-glut.dos/Makefile.DJ \
|
||||||
|
$(DIRECTORY)/src-glut.dos/PC_HW/*.[chS] \
|
||||||
|
$(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)/windmldemos/Makefile.ugl \
|
||||||
|
$(DIRECTORY)/windmldemos/*.c \
|
||||||
|
$(DIRECTORY)/windmldemos/*.bmp \
|
||||||
|
$(DIRECTORY)/ggi
|
||||||
|
|
||||||
|
OBSOLETE_DEMO_FILES = \
|
||||||
|
$(DIRECTORY)/include/GL/glut_h.dja \
|
||||||
|
$(DIRECTORY)/src-glut.dja/* \
|
||||||
|
$(DIRECTORY)/src-glut.beos/Makefile \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.cpp \
|
||||||
|
$(DIRECTORY)/src-glut.beos/*.h \
|
||||||
|
|
||||||
|
|
||||||
|
SI_GLU_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/si-glu/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/si-glu/include/gluos.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbstess/*.h \
|
||||||
|
$(DIRECTORY)/si-glu/libnurbs/nurbstess/*.cc \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/README \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/si-glu/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/si-glu/libutil/*.[ch]
|
||||||
|
|
||||||
|
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)/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]
|
||||||
|
|
||||||
|
|
||||||
|
OBSOLETE_GLUT_FILES = \
|
||||||
|
$(DIRECTORY)/include/GL/glut_h.dja \
|
||||||
|
$(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) ; \
|
||||||
92
Makefile.am
92
Makefile.am
@@ -1,92 +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-llvm \
|
|
||||||
--enable-gbm \
|
|
||||||
--enable-gles1 \
|
|
||||||
--enable-gles2 \
|
|
||||||
--enable-glx \
|
|
||||||
--enable-glx-tls \
|
|
||||||
--enable-nine \
|
|
||||||
--enable-opencl \
|
|
||||||
--enable-opencl-icd \
|
|
||||||
--enable-opengl \
|
|
||||||
--enable-va \
|
|
||||||
--enable-vdpau \
|
|
||||||
--enable-xa \
|
|
||||||
--enable-xvmc \
|
|
||||||
--enable-llvm-shared-libs \
|
|
||||||
--enable-libunwind \
|
|
||||||
--with-platforms=x11,wayland,drm,surfaceless \
|
|
||||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
|
||||||
--with-gallium-drivers=i915,nouveau,r300,pl111,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv,imx \
|
|
||||||
--with-vulkan-drivers=intel,radeon
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
autogen.sh \
|
|
||||||
common.py \
|
|
||||||
docs \
|
|
||||||
doxygen \
|
|
||||||
bin/git_sha1_gen.py \
|
|
||||||
scons \
|
|
||||||
SConstruct \
|
|
||||||
build-support/conftest.dyn \
|
|
||||||
build-support/conftest.map \
|
|
||||||
meson.build \
|
|
||||||
meson_options.txt \
|
|
||||||
bin/meson.build \
|
|
||||||
include/meson.build \
|
|
||||||
bin/install_megadrivers.py \
|
|
||||||
bin/meson_get_version.py
|
|
||||||
|
|
||||||
noinst_HEADERS = \
|
|
||||||
include/c99_alloca.h \
|
|
||||||
include/c99_compat.h \
|
|
||||||
include/c99_math.h \
|
|
||||||
include/c11 \
|
|
||||||
include/drm-uapi/drm.h \
|
|
||||||
include/drm-uapi/drm_fourcc.h \
|
|
||||||
include/drm-uapi/drm_mode.h \
|
|
||||||
include/drm-uapi/i915_drm.h \
|
|
||||||
include/drm-uapi/tegra_drm.h \
|
|
||||||
include/drm-uapi/v3d_drm.h \
|
|
||||||
include/drm-uapi/vc4_drm.h \
|
|
||||||
include/D3D9 \
|
|
||||||
include/GL/wglext.h \
|
|
||||||
include/HaikuGL \
|
|
||||||
include/no_extern_c.h \
|
|
||||||
include/pci_ids \
|
|
||||||
include/vulkan
|
|
||||||
|
|
||||||
# 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) {} +
|
|
||||||
79
README.rst
79
README.rst
@@ -1,79 +0,0 @@
|
|||||||
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
|
|
||||||
Source
|
|
||||||
------
|
|
||||||
|
|
||||||
This repository lives at https://gitlab.freedesktop.org/mesa/mesa.
|
|
||||||
Other repositories are likely forks, and code found there is not supported.
|
|
||||||
|
|
||||||
|
|
||||||
Build status
|
|
||||||
------------
|
|
||||||
|
|
||||||
Travis:
|
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/mesa3d/mesa.svg?branch=master
|
|
||||||
:target: https://travis-ci.org/mesa3d/mesa
|
|
||||||
|
|
||||||
Appveyor:
|
|
||||||
|
|
||||||
.. image:: https://img.shields.io/appveyor/ci/mesa3d/mesa.svg
|
|
||||||
:target: https://ci.appveyor.com/project/mesa3d/mesa
|
|
||||||
|
|
||||||
Coverity:
|
|
||||||
|
|
||||||
.. image:: https://scan.coverity.com/projects/139/badge.svg?flat=1
|
|
||||||
:target: https://scan.coverity.com/projects/mesa
|
|
||||||
|
|
||||||
|
|
||||||
Build & install
|
|
||||||
---------------
|
|
||||||
|
|
||||||
You can find more information in our documentation (`docs/install.html
|
|
||||||
<https://mesa3d.org/install.html>`_), but the recommended way is to use
|
|
||||||
Meson (`docs/meson.html <https://mesa3d.org/meson.html>`_):
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
$ mkdir build
|
|
||||||
$ cd build
|
|
||||||
$ meson ..
|
|
||||||
$ sudo ninja install
|
|
||||||
|
|
||||||
|
|
||||||
Support
|
|
||||||
-------
|
|
||||||
|
|
||||||
Many Mesa devs hang on IRC; if you're not sure which channel is
|
|
||||||
appropriate, you should ask your question on `Freenode's #dri-devel
|
|
||||||
<irc://chat.freenode.net#dri-devel>`_, someone will redirect you if
|
|
||||||
necessary.
|
|
||||||
Remember that not everyone is in the same timezone as you, so it might
|
|
||||||
take a while before someone qualified sees your question.
|
|
||||||
To figure out who you're talking to, or which nick to ping for your
|
|
||||||
question, check out `Who's Who on IRC
|
|
||||||
<https://dri.freedesktop.org/wiki/WhosWho/>`_.
|
|
||||||
|
|
||||||
The next best option is to ask your question in an email to the
|
|
||||||
mailing lists: `mesa-dev\@lists.freedesktop.org
|
|
||||||
<https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_
|
|
||||||
|
|
||||||
|
|
||||||
Bug reports
|
|
||||||
-----------
|
|
||||||
|
|
||||||
If you think something isn't working properly, please file a bug report
|
|
||||||
(`docs/bugs.html <https://mesa3d.org/bugs.html>`_).
|
|
||||||
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
------------
|
|
||||||
|
|
||||||
Contributions are welcome, and step-by-step instructions can be found in our
|
|
||||||
documentation (`docs/submittingpatches.html
|
|
||||||
<https://mesa3d.org/submittingpatches.html>`_).
|
|
||||||
|
|
||||||
Note that Mesa uses email mailing-lists for patches submission, review and
|
|
||||||
discussions.
|
|
||||||
138
REVIEWERS
138
REVIEWERS
@@ -1,138 +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>
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
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/
|
|
||||||
|
|
||||||
EGL
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
F: src/egl/
|
|
||||||
|
|
||||||
HAIKU
|
|
||||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
|
|
||||||
F: include/HaikuGL/
|
|
||||||
F: src/egl/drivers/haiku/
|
|
||||||
F: src/gallium/state_trackers/hgl/
|
|
||||||
F: src/gallium/targets/haiku-softpipe/
|
|
||||||
F: src/gallium/winsys/sw/hgl/
|
|
||||||
F: src/hgl/
|
|
||||||
|
|
||||||
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: autogen.sh
|
|
||||||
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
|
|
||||||
|
|
||||||
MESON BUILD
|
|
||||||
R: Dylan Baker <dylan@pnwbakers.com>
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
F: */meson.build
|
|
||||||
F: meson.build
|
|
||||||
F: meson_options.txt
|
|
||||||
|
|
||||||
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/
|
|
||||||
166
SConstruct
166
SConstruct
@@ -1,166 +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
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Minimal scons version
|
|
||||||
|
|
||||||
EnsureSConsVersion(2, 4)
|
|
||||||
EnsurePythonVersion(2, 7)
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# 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 = sorted(default_ans.keys())
|
|
||||||
env.Help('\n')
|
|
||||||
env.Help('Recognized targets:\n')
|
|
||||||
for alias in aliases:
|
|
||||||
env.Help(' %s\n' % alias)
|
|
||||||
92
appveyor.yml
92
appveyor.yml
@@ -1,92 +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
|
|
||||||
|
|
||||||
# https://www.appveyor.com/docs/build-cache/
|
|
||||||
cache:
|
|
||||||
- '%LOCALAPPDATA%\pip\Cache -> appveyor.yml'
|
|
||||||
- win_flex_bison-2.5.15.zip
|
|
||||||
- llvm-5.0.1-msvc2017-mtd.7z
|
|
||||||
|
|
||||||
os: Visual Studio 2017
|
|
||||||
|
|
||||||
init:
|
|
||||||
# Appveyor defaults core.autocrlf to input instead of the default (true), but
|
|
||||||
# that can hide problems processing CRLF text on Windows
|
|
||||||
- git config --global core.autocrlf true
|
|
||||||
|
|
||||||
environment:
|
|
||||||
WINFLEXBISON_VERSION: 2.5.15
|
|
||||||
LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
|
|
||||||
|
|
||||||
install:
|
|
||||||
# Check git config
|
|
||||||
- git config core.autocrlf
|
|
||||||
# Check pip
|
|
||||||
- python --version
|
|
||||||
- python -m pip --version
|
|
||||||
# Install Mako
|
|
||||||
- python -m pip install Mako==1.0.7
|
|
||||||
# Install pywin32 extensions, needed by SCons
|
|
||||||
- python -m pip install pypiwin32
|
|
||||||
# Install python wheels, necessary to install SCons via pip
|
|
||||||
- python -m pip install wheel
|
|
||||||
# Install SCons
|
|
||||||
- python -m pip install scons==3.0.1
|
|
||||||
- scons --version
|
|
||||||
# Install flex/bison
|
|
||||||
- set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
|
|
||||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%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=14.1 llvm=1
|
|
||||||
|
|
||||||
after_build:
|
|
||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 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,2 +0,0 @@
|
|||||||
# fixes: Commit was squashed into the respective offenders
|
|
||||||
c02390f8fcd367c7350db568feabb2f062efca14 egl/wayland: rather obvious build fix
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[*.sh]
|
|
||||||
indent_style = tab
|
|
||||||
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,35 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
# 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=,'
|
|
||||||
|
|
||||||
echo "<ul>"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# extract fdo urls from commit log
|
|
||||||
git log --pretty=medium $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after |\
|
|
||||||
while read url
|
|
||||||
do
|
|
||||||
id=$(echo $url | cut -d'=' -f2)
|
|
||||||
summary=$(wget --quiet -O - $url | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/')
|
|
||||||
echo "<li><a href=\"$url\">Bug $id</a> - $summary</li>"
|
|
||||||
echo ""
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "</ul>"
|
|
||||||
@@ -1,45 +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
|
|
||||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
|
||||||
|
|
||||||
# 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/)//' > already_picked
|
|
||||||
|
|
||||||
# For each cherry-picked commit...
|
|
||||||
cat already_picked | cut -c -8 |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# ... check if it's referenced (fixed by another) patch
|
|
||||||
git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
|
|
||||||
cut -c -8 |\
|
|
||||||
while read candidate
|
|
||||||
do
|
|
||||||
# And flag up if it hasn't landed in branch yet.
|
|
||||||
if grep -q ^$candidate already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# Or if it isn't in the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$candidate bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
printf "Commit \"%s\" references %s\n" \
|
|
||||||
"`git log -n1 --pretty=oneline $candidate`" \
|
|
||||||
"$sha"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
@@ -1,125 +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
|
|
||||||
#
|
|
||||||
# The output is as follows:
|
|
||||||
# [nomination_type] commit_sha commit summary
|
|
||||||
|
|
||||||
is_stable_nomination()
|
|
||||||
{
|
|
||||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_typod_nomination()
|
|
||||||
{
|
|
||||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Helper to handle various mistypos of the fixes tag.
|
|
||||||
# The tag string itself is passed as argument and normalised within.
|
|
||||||
is_sha_nomination()
|
|
||||||
{
|
|
||||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
|
||||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
|
||||||
grep -Eo 'fixes:[a-f0-9]{8,40}'`
|
|
||||||
|
|
||||||
fixes_count=`echo "$fixes" | wc -l`
|
|
||||||
if test $fixes_count -eq 0; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
while test $fixes_count -gt 0; do
|
|
||||||
# Treat only the current line
|
|
||||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
|
||||||
fixes_count=$(($fixes_count-1))
|
|
||||||
|
|
||||||
# Bail out if we cannot find suitable id.
|
|
||||||
# Any specific validation the $id is valid and not some junk, is
|
|
||||||
# implied with the follow up code
|
|
||||||
if test "x$id" = x; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Check if the offending commit is in branch.
|
|
||||||
|
|
||||||
# Be that cherry-picked ...
|
|
||||||
# ... or landed before the branchpoint.
|
|
||||||
if grep -q ^$id already_picked ||
|
|
||||||
grep -q ^$id already_landed ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
is_fixes_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "fixes:[[:space:]]*"
|
|
||||||
if test $? -eq 0; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
is_sha_nomination "$1" "fixes[[:space:]]\+"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_brokenby_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "broken by"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_revert_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "This reverts commit "
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use the last branchpoint as our limit for the search
|
|
||||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
|
||||||
|
|
||||||
# List all the commits between day 1 and the branch point...
|
|
||||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
|
||||||
|
|
||||||
# ... and the ones cherry-picked.
|
|
||||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
|
||||||
|
|
||||||
# Grep for potential candidates
|
|
||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if test -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
|
|
||||||
|
|
||||||
if is_stable_nomination "$sha"; then
|
|
||||||
tag=stable
|
|
||||||
elif is_typod_nomination "$sha"; then
|
|
||||||
tag=typod
|
|
||||||
elif is_fixes_nomination "$sha"; then
|
|
||||||
tag=fixes
|
|
||||||
elif is_brokenby_nomination "$sha"; then
|
|
||||||
tag=brokenby
|
|
||||||
elif is_revert_nomination "$sha"; then
|
|
||||||
tag=revert
|
|
||||||
else
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "[ %8s ] " "$tag"
|
|
||||||
git --no-pager show --summary --oneline $sha
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
rm -f already_landed
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
"""
|
|
||||||
Generate the contents of the git_sha1.h file.
|
|
||||||
The output of this script goes to stdout.
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def get_git_sha1():
|
|
||||||
"""Try to get the git SHA1 with git rev-parse."""
|
|
||||||
git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
|
|
||||||
try:
|
|
||||||
git_sha1 = subprocess.check_output([
|
|
||||||
'git',
|
|
||||||
'--git-dir=' + git_dir,
|
|
||||||
'rev-parse',
|
|
||||||
'HEAD',
|
|
||||||
], stderr=open(os.devnull, 'w')).decode("ascii")
|
|
||||||
except:
|
|
||||||
# don't print anything if it fails
|
|
||||||
git_sha1 = ''
|
|
||||||
return git_sha1
|
|
||||||
|
|
||||||
def write_if_different(contents):
|
|
||||||
"""
|
|
||||||
Avoid touching the output file if it doesn't need modifications
|
|
||||||
Useful to avoid triggering rebuilds when nothing has changed.
|
|
||||||
"""
|
|
||||||
if os.path.isfile(args.output):
|
|
||||||
with open(args.output, 'r') as file:
|
|
||||||
if file.read() == contents:
|
|
||||||
return
|
|
||||||
with open(args.output, 'w') as file:
|
|
||||||
file.write(contents)
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('--output', help='File to write the #define in',
|
|
||||||
required=True)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
|
|
||||||
if git_sha1:
|
|
||||||
write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"')
|
|
||||||
else:
|
|
||||||
write_if_different('#define MESA_GIT_SHA1 ""')
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
# encoding=utf-8
|
|
||||||
# Copyright © 2017-2018 Intel Corporation
|
|
||||||
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# in the Software without restriction, including without limitation the rights
|
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
# copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
# SOFTWARE.
|
|
||||||
|
|
||||||
"""Script to install megadriver symlinks for meson."""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('megadriver')
|
|
||||||
parser.add_argument('libdir')
|
|
||||||
parser.add_argument('drivers', nargs='+')
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if os.path.isabs(args.libdir):
|
|
||||||
to = os.path.join(os.environ.get('DESTDIR', '/'), args.libdir[1:])
|
|
||||||
else:
|
|
||||||
to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
|
|
||||||
|
|
||||||
master = os.path.join(to, os.path.basename(args.megadriver))
|
|
||||||
|
|
||||||
if not os.path.exists(to):
|
|
||||||
if os.path.lexists(to):
|
|
||||||
os.unlink(to)
|
|
||||||
os.makedirs(to)
|
|
||||||
shutil.copy(args.megadriver, master)
|
|
||||||
|
|
||||||
for driver in args.drivers:
|
|
||||||
abs_driver = os.path.join(to, driver)
|
|
||||||
|
|
||||||
if os.path.lexists(abs_driver):
|
|
||||||
os.unlink(abs_driver)
|
|
||||||
print('installing {} to {}'.format(args.megadriver, abs_driver))
|
|
||||||
os.link(master, abs_driver)
|
|
||||||
|
|
||||||
try:
|
|
||||||
ret = os.getcwd()
|
|
||||||
os.chdir(to)
|
|
||||||
|
|
||||||
name, ext = os.path.splitext(driver)
|
|
||||||
while ext != '.so':
|
|
||||||
if os.path.lexists(name):
|
|
||||||
os.unlink(name)
|
|
||||||
os.symlink(driver, name)
|
|
||||||
name, ext = os.path.splitext(name)
|
|
||||||
finally:
|
|
||||||
os.chdir(ret)
|
|
||||||
os.unlink(master)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Copyright © 2017 Eric Engestrom
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# encoding=utf-8
|
|
||||||
# Copyright © 2017 Intel Corporation
|
|
||||||
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# in the Software without restriction, including without limitation the rights
|
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
# copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
# SOFTWARE.
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
filename = os.path.join(os.environ['MESON_SOURCE_ROOT'], 'VERSION')
|
|
||||||
with open(filename) as f:
|
|
||||||
version = f.read().strip()
|
|
||||||
print(version, end='')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
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/sh
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
radeon_drm_winsys_create;
|
|
||||||
};
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
VERSION_1 {
|
|
||||||
global:
|
|
||||||
main;
|
|
||||||
local:
|
|
||||||
*;
|
|
||||||
};
|
|
||||||
111
common.py
111
common.py
@@ -1,111 +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')))
|
|
||||||
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('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('swr', 'Build OpenSWR', 'no'))
|
|
||||||
if host_platform == 'windows':
|
|
||||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
|
||||||
opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True)
|
|
||||||
3371
configure.ac
3371
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
|
||||||
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
XXX - Not complete yet!!!
|
||||||
|
|
||||||
Name
|
Name
|
||||||
|
|
||||||
MESA_packed_depth_stencil
|
MESA_packed_depth_stencil
|
||||||
@@ -13,10 +15,11 @@ Contact
|
|||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Not yet shipping.
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_packed_depth_stencil.spec,v 1.1 2000/11/03 14:58:45 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -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,11 +8,11 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Shipping since Mesa 2.6 in February, 1998.
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
XXX - Not complete yet!!!
|
||||||
|
|
||||||
Name
|
Name
|
||||||
|
|
||||||
MESA_sprite_point
|
MESA_sprite_point
|
||||||
@@ -12,10 +14,11 @@ Contact
|
|||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete - see GL_ARB_point_sprite.
|
Not yet shipping.
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_sprite_point.spec,v 1.1 2000/12/08 00:21:02 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@ Name
|
|||||||
|
|
||||||
Name Strings
|
Name Strings
|
||||||
|
|
||||||
GL_MESA_trace
|
GL_MESA_TRACE
|
||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
@@ -13,10 +13,11 @@ Contact
|
|||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
XXX - Not complete yet!!!
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_trace.spec,v 1.2 2001/01/29 16:10:18 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -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
|
||||||
602
docs/README.3DFX
Normal file
602
docs/README.3DFX
Normal file
@@ -0,0 +1,602 @@
|
|||||||
|
|
||||||
|
3Dfx Glide device driver for Mesa 3.3
|
||||||
|
(see below for FAQ)
|
||||||
|
|
||||||
|
|
||||||
|
Warning: this document is rather out of date, but most of the information
|
||||||
|
should still apply.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
132
docs/README.DJ
Normal file
132
docs/README.DJ
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
Mesa 4.0 DOS/DJGPP Port v1.0
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Description:
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, guess what... this is the DOS port of MESA 4.0, for DJGPP fans... Whoa!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Legal:
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
MESA copyright applies.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Type "make -f Makefile.DJ" to compile the libraries. Make accepts some options
|
||||||
|
which are passed to compiler: the target cpu (CPU=..., default=`pentium') and
|
||||||
|
X86 specific options (HAVE_X86=1, HAVE_MMX=1, HAVE_SSE=1, HAVE_3DNOW=1). The
|
||||||
|
core library (libGL) requires LFN support during compilation. Also, you must
|
||||||
|
have the DXE2 package (available on SimTel.Net, courtesy of Andrew Zabolotny)
|
||||||
|
installed in order to build the dynamic modules; if you encounter errors, you
|
||||||
|
can fetch a patched version from my web page.
|
||||||
|
The demos are not built automagically (see Pitfalls below). To make them, use
|
||||||
|
one of the following rules:
|
||||||
|
Static:
|
||||||
|
gcc -o OUT.exe IN.c -lglut -lglu -lgl
|
||||||
|
Dynamic:
|
||||||
|
gcc -o OUT.exe -include dmesadxe.h IN.c -ligl -liglu -liglut -ldl
|
||||||
|
Usage of the dynamic modules requires three things:
|
||||||
|
- include DMESADXE.H in one of the sources, so references inside
|
||||||
|
dynamic modules will get resolved (or use `-include' directive)
|
||||||
|
- link against import libraries (libIgl*.a) and LIBDL.A, which will do
|
||||||
|
the dynamic linkage job for you
|
||||||
|
- put the DXEs somewhere along the library path (LD_LIBRARY_PATH) or
|
||||||
|
in the current directory
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
CPU: Intel Pentium w/ MMX @166 MHz
|
||||||
|
Mainboard: ViA Apollo VP2 w/ 128 MB SDRAM
|
||||||
|
Video card: Matrox Millenium 2064W w/ 2048 kB WRAM, BIOS v3.0
|
||||||
|
DJGPP: djdev 2.03 + gcc v3.0.3 + make v3.79
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libGL (the core):
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Of course, MESA 4.0 core sources are required. It will probably work with
|
||||||
|
MESA 3.5, but not a chance with earlier versions due to major changes to the
|
||||||
|
MESA driver interface and the directory tree. All should compile succesfully.
|
||||||
|
|
||||||
|
The driver has its origins in ddsample.c, written by Brian Paul and found by
|
||||||
|
me in MESA 3.4.2. I touched almost all the functions, changing the coding
|
||||||
|
style :-( Sorry!
|
||||||
|
|
||||||
|
Pitfalls:
|
||||||
|
1. The current version supports only RGB[A] modes, for it made no sense to me
|
||||||
|
to endorse color-index (aka palette) modes.
|
||||||
|
2. Single-buffered is not allowed at all. Until I can find a way to use *REAL*
|
||||||
|
hardware acceleration, it won't get implemented.
|
||||||
|
3. Another weird "feature" is that buffer width must be multiple of 4 (I'm a
|
||||||
|
lazy programmer and I found that the easiest way to keep buffer handling at
|
||||||
|
peak performance ;-).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libGLU:
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
Mesa GLU sources are required.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libGLUT (the toolkit):
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, this "skeletal" GLUT implementation is not mine. Thanks should go to
|
||||||
|
Bernhard Tschirren, Mark Kilgard, Brian Paul and probably others (or probably
|
||||||
|
not ;-). I only changed it to be self-standing (Allegro-free). The keyboard,
|
||||||
|
mouse and timer drivers were inspired from an old project of mine (D3Xl) and
|
||||||
|
fixed with some Allegro "infusions"; I deeply thank to Shawn Hargreaves et co.
|
||||||
|
|
||||||
|
My keyboard driver used only scancodes, but since GLUT requires ASCII values
|
||||||
|
for keys, I borrowed the translation tables (and maybe more) from Allegro.
|
||||||
|
Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users) will shut down the GLUT
|
||||||
|
engine unconditionally: it will raise SIGINT, which in turn will call the
|
||||||
|
destructors (let's hope), thus cleaning up your/my mess ;-) NB: since the
|
||||||
|
DJGPP guys ensured signal handlers won't go beyond program's space (and since
|
||||||
|
dynamic modules shall) the SIGINT can't be hooked (well, it can, but it is
|
||||||
|
useless), therefore you must live with the 'Exiting due to signal SIGINT'
|
||||||
|
message...
|
||||||
|
|
||||||
|
The mouse driver is far from complete (lack of positioning, drawing, etc),
|
||||||
|
but is enough to make almost all the demos work.
|
||||||
|
|
||||||
|
The timer is pretty versatile for it supports multiple timers with different
|
||||||
|
frequencies. It may not be the most accurate timer in the known universe, but
|
||||||
|
I think it's OK. Take this example: you have timer A with a very high rate,
|
||||||
|
and then you have timer B with very low rate compared to A; now, A ticks OK,
|
||||||
|
but timer B will probably loose precision!
|
||||||
|
|
||||||
|
As an addition, stdout and stderr are redirected and dumped upon exit. This
|
||||||
|
means that printf can be safely called during graphics, but all messages come
|
||||||
|
in bulk! A bit of a hack, I know, but I think it's better than to miss them
|
||||||
|
at all. "Borrowed" from RHIDE (Robert Hoehne) or SETEDIT (Salvador Eduardo
|
||||||
|
Tropea)... I'm not sure.
|
||||||
|
|
||||||
|
Window creating defaults: 640x480x16 at (0,0), 8-bit stencil, 16-bit accum.
|
||||||
|
However, the video mode is chosen in such a way that first window will fit.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
History:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
v1.0 mar-2002 initial release
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Contact:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
Name: Borca Daniel
|
||||||
|
E-mail: dborca@yahoo.com
|
||||||
|
WWW: http://www.geocities.com/dborca/
|
||||||
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,88 @@
|
|||||||
File: docs/README.WIN32
|
File: docs/README.WIN32
|
||||||
|
|
||||||
Last updated: 21 June 2013
|
Last updated: Nov 29, 2001 - Karl Schultz - kschultz@users.sourceforge.net
|
||||||
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
----- -----
|
|
||||||
|
|
||||||
Windows drivers are build with SCons. Makefiles or Visual Studio projects are
|
If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory
|
||||||
no longer shipped or supported.
|
of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for
|
||||||
|
an optimized build.
|
||||||
|
|
||||||
Run
|
Details and Notes
|
||||||
|
|
||||||
scons libgl-gdi
|
- Building Mesa as noted above should visit and build the following:
|
||||||
|
src MesaGL.dll, MesaGL.lib, osmesa.dll, osmesa.lib
|
||||||
|
si-glu MesaGLU.dll, MesaGLU.lib
|
||||||
|
src-glut glut32.dll, glut32.lib
|
||||||
|
demos a handful of demo executables.
|
||||||
|
|
||||||
to build gallium based GDI driver.
|
- After building, you can copy the above DLL files to a place in your PATH
|
||||||
|
or to the demos directory if you just want to give the demos a try.
|
||||||
|
The DLL and LIB files are copied to the ./lib directory. The makefile
|
||||||
|
creates this directory if it does not already exist.
|
||||||
|
|
||||||
This will work both with MSVS or Mingw.
|
- The make targets 'clean' and 'clobber' will remove objects and libraries.
|
||||||
|
But the files in ./lib are never cleaned.
|
||||||
|
|
||||||
|
- The make target 'install' will take its best shot at copying DLL files,
|
||||||
|
LIB files, and headers to the right places. I strongly suggest that
|
||||||
|
you examine the makefiles to make sure that 'install' doesn't do anything
|
||||||
|
that you can't live with.
|
||||||
|
|
||||||
|
- The makefiles are designed to work with Microsoft's NMAKE, and do,
|
||||||
|
unfortunately, have some Microsoft-specific things in them. If you
|
||||||
|
would like to use gcc or some other build tools like the Cygnus tools,
|
||||||
|
then you will have to hack the makefiles to make them work with your
|
||||||
|
tools. I'm sorry about this; I wasn't motivated to make this any
|
||||||
|
different, but if you end up modifying the makefiles for your tools,
|
||||||
|
you can send me the changes and I can apply the changes to the
|
||||||
|
source tree.
|
||||||
|
|
||||||
|
- There are no Microsoft Visual Studio project files. However, these
|
||||||
|
should be very easy to create. One can use the compiler and linker
|
||||||
|
options found in the makefiles to make quick progress in creating
|
||||||
|
projects.
|
||||||
|
|
||||||
|
- The DLL files are built so that the external entry points use the
|
||||||
|
stdcall calling convention.
|
||||||
|
|
||||||
|
- Static LIB files are not built. The LIB files that are built with
|
||||||
|
the current makefiles are the linker import files associated with
|
||||||
|
the DLL files. If static LIB's are desired, it should not be too
|
||||||
|
difficult to modify the makefiles to generate them.
|
||||||
|
|
||||||
|
- The si-glu sources are used to build the GLU libs. This was done
|
||||||
|
mainly to get the better tessellator code.
|
||||||
|
|
||||||
|
- The osmesa driver builds and should work on Windows as well as
|
||||||
|
any other platform.
|
||||||
|
|
||||||
|
- The Windows driver (in src/Windows) builds and runs at least at
|
||||||
|
a minimal level. I modified this driver to work with the new
|
||||||
|
Mesa 4.0 code and driver architecture, but I did not do a great
|
||||||
|
deal of optimization and testing. There are many opportunities
|
||||||
|
for optimization, many of which can be done by coding more specific
|
||||||
|
paths for the rasterizers. See src/osmesa/osmesa.c for some good
|
||||||
|
examples.
|
||||||
|
|
||||||
|
- There is DirectDraw support in the Windows driver, updated by
|
||||||
|
Daniel Slater. You'll need to uncomment the #define DDRAW line
|
||||||
|
in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries
|
||||||
|
in src/Makefile.win. On some systems, you will acheive significantly
|
||||||
|
higher framerates with DirectDraw.
|
||||||
|
|
||||||
|
- Some of the more specialized code like FX drivers, stereo, and
|
||||||
|
parallel support isn't compiled or tested. I left much of this
|
||||||
|
code alone, but it may need some work to get it 'turned on' again.
|
||||||
|
|
||||||
|
- No assembly code is compiled or assembled. Again, this may need
|
||||||
|
some work to turn it back on or use it again.
|
||||||
|
|
||||||
|
If you have a Windows-related build problem or question, it is
|
||||||
|
probably better to direct it to me (kschultz@users.sourceforge.net),
|
||||||
|
rather than directly to the other Mesa developers. I will help you
|
||||||
|
as much as I can. I also monitor the Mesa mailing lists and will
|
||||||
|
answer questions in this area there as well.
|
||||||
|
|
||||||
|
|
||||||
Windows Drivers
|
Karl Schultz
|
||||||
------- -------
|
|
||||||
|
|
||||||
At this time, only the gallium GDI driver is known to work.
|
|
||||||
|
|
||||||
Source code also exists in the tree for other drivers in
|
|
||||||
src/mesa/drivers/windows, but the status of this code is unknown.
|
|
||||||
|
|
||||||
Recipe
|
|
||||||
------
|
|
||||||
|
|
||||||
Building on windows requires several open-source packages. These are
|
|
||||||
steps that work as of this writing.
|
|
||||||
|
|
||||||
- install python 2.7
|
|
||||||
- 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 https://www.mesa3d.org/repository.html
|
|
||||||
- run scons
|
|
||||||
|
|
||||||
General
|
|
||||||
-------
|
|
||||||
|
|
||||||
After building, you can copy the above DLL files to a place in your
|
|
||||||
PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
|
|
||||||
in a system directory, place them in the same directory as the
|
|
||||||
executable(s). Be careful about accidentially overwriting files of
|
|
||||||
the same name in the SYSTEM32 directory.
|
|
||||||
|
|
||||||
The DLL files are built so that the external entry points use the
|
|
||||||
stdcall calling convention.
|
|
||||||
|
|
||||||
Static LIB files are not built. The LIB files that are built with are
|
|
||||||
the linker import files associated with the DLL files.
|
|
||||||
|
|
||||||
The si-glu sources are used to build the GLU libs. This was done
|
|
||||||
mainly to get the better tessellator code.
|
|
||||||
|
|
||||||
If you have a Windows-related build problem or question, please post
|
|
||||||
to the mesa-dev or mesa-users list.
|
|
||||||
|
|||||||
146
docs/README.WINDML
Normal file
146
docs/README.WINDML
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
|
||||||
|
WindML Driver for Mesa 4.0
|
||||||
|
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
Tornado 2 + WindML, Cumulative Patchs are recommended.
|
||||||
|
|
||||||
|
I suppose you have a valid WindML installation. Double buffer hardware
|
||||||
|
gives better performance than double buffer software so if you can
|
||||||
|
compile your WindML driver with this option, just do it. I/O
|
||||||
|
redirection is adviced in target server.
|
||||||
|
|
||||||
|
|
||||||
|
Tested on
|
||||||
|
---------
|
||||||
|
|
||||||
|
During the development, my main target was a CoolMonster:
|
||||||
|
- Video card: CT69000
|
||||||
|
- CPU: PENTIUM 266MHz
|
||||||
|
|
||||||
|
and my host a Windows NT + Tornado 2.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
1. Mesa sources must be in root directory (C:\)
|
||||||
|
|
||||||
|
2. Add the following line to your torVars.bat:
|
||||||
|
set MESA_BASE=C:\Mesa
|
||||||
|
|
||||||
|
OR copy the new torVars.bat in your bin path:
|
||||||
|
c:/Mesa/src/ugl/tornado/torVars.sample ->
|
||||||
|
/mnt/nt/Tornado/host/x86-win32/bin/torVars (for example)
|
||||||
|
|
||||||
|
3. In a command prompt:
|
||||||
|
$ torVars
|
||||||
|
$ cd c:\Mesa
|
||||||
|
$ make -f Makefile.ugl CPU=PENTIUM
|
||||||
|
|
||||||
|
Take a long while...
|
||||||
|
|
||||||
|
5. Include all the files from ugldemos folder to build some downloadable
|
||||||
|
application modules
|
||||||
|
|
||||||
|
4. Download UGL/Mesa object files on target
|
||||||
|
|
||||||
|
For example via the WindShell:
|
||||||
|
ld < c:\Tornado\target\lib\objMesaGL.o
|
||||||
|
ld < c:\Tornado\target\lib\objMesaUGL.o
|
||||||
|
ld < c:\Tornado\target\lib\objMesaGLU.o
|
||||||
|
ld < c:\Tornado\target\lib\objGLUTshapes.o
|
||||||
|
ld < c:\Tornado\target\lib\objMesaOS.o
|
||||||
|
|
||||||
|
You can put the previous lines in a file and use:
|
||||||
|
< filename
|
||||||
|
|
||||||
|
6. Download the application modules.
|
||||||
|
|
||||||
|
7. In WindShell, run:
|
||||||
|
-> uglalldemos
|
||||||
|
|
||||||
|
During the show some messages will appear, it provides some useful
|
||||||
|
information on key management.
|
||||||
|
|
||||||
|
|
||||||
|
Coding
|
||||||
|
------
|
||||||
|
|
||||||
|
Sample Usage:
|
||||||
|
|
||||||
|
In addition to the usual ugl calls to initialize UGL, (may be find an
|
||||||
|
input driver), you must do the following to use the UGL/Mesa interface:
|
||||||
|
|
||||||
|
1. Call uglMesaCreateContext() to create a UGL/Mesa rendering context,
|
||||||
|
given the display format.
|
||||||
|
|
||||||
|
2. Call uglMesaMakeCurrent() to bind the UGL/Mesa buffers to an
|
||||||
|
UGL/Mesa Context and to make the context the current one.
|
||||||
|
|
||||||
|
3. Make gl* calls to render your graphics.
|
||||||
|
|
||||||
|
4. Use uglMesaSwapBuffers() when double buffering to swap front/back buffers.
|
||||||
|
|
||||||
|
5. Before the UGL is destroyed, call MesaDestroyContext().
|
||||||
|
|
||||||
|
6. Before exiting, call if required uglEventQDestroy and then
|
||||||
|
uglDeinitialize();
|
||||||
|
|
||||||
|
Limitations
|
||||||
|
-----------
|
||||||
|
|
||||||
|
I found the following limitations in my driver :
|
||||||
|
- Color Indexed management is only in 8 bits
|
||||||
|
- It's possible to mix UGL/OpenGL application with a software
|
||||||
|
double buffer
|
||||||
|
|
||||||
|
Modifications
|
||||||
|
------------
|
||||||
|
|
||||||
|
New files in Mesa:
|
||||||
|
- Makefile.ugl
|
||||||
|
- rules.windmlmesa
|
||||||
|
- docs/README.UGL
|
||||||
|
- include/GL/uglmesa.h
|
||||||
|
- si-glu/Makefile.ugl
|
||||||
|
- src/Makefile.ugl
|
||||||
|
- src/ugl/torGLUTShapesInit.c
|
||||||
|
- src/ugl/torMesaUGLInit.c
|
||||||
|
- src/ugl/ugl_api.c
|
||||||
|
- src/ugl/ugl_dd.c
|
||||||
|
- src/ugl/ugl_glutshapes.c
|
||||||
|
- src/ugl/ugl_line.c
|
||||||
|
- src/ugl/ugl_span.c
|
||||||
|
- src/ugl/ugl_tri.c
|
||||||
|
- src/ugl/uglmesaP.h
|
||||||
|
- ugldemos/*
|
||||||
|
|
||||||
|
Modified files in Tornado 2.0:
|
||||||
|
- c:\Tornado\host\x86-win32\bin\torVars.bat
|
||||||
|
rem Command line build environments
|
||||||
|
set WIND_HOST_TYPE=x86-win32
|
||||||
|
set WIND_BASE=C:\Tornado
|
||||||
|
set MESA_BASE=C:\Mesa
|
||||||
|
set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%
|
||||||
|
- c:\Tornado\target\config\comps\VxWorks\01uglmesa.cdf
|
||||||
|
- c:\Tornado\target\h\GL\*
|
||||||
|
|
||||||
|
Todo
|
||||||
|
----
|
||||||
|
- GCC 2.96, ASM compilation
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Precision Insight team for their great job around Mesa, XFree, and DRI.
|
||||||
|
Wind River Systems to take me as an intern.
|
||||||
|
|
||||||
|
|
||||||
|
Stephane Raimbault
|
||||||
|
<stephane.raimbault@windriver.com>
|
||||||
|
<stephane.raimbault@deesse.univ-lemans.fr>
|
||||||
|
|
||||||
|
July 24, 2001
|
||||||
326
docs/README.X11
Normal file
326
docs/README.X11
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
|
||||||
|
Mesa 4.0.3 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-4.0.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.8.2.3 2002/04/26 13:54:47 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.4.1 2002/03/23 02:36:52 brianp Exp $
|
||||||
22
docs/RELNOTES-3.4.1
Normal file
22
docs/RELNOTES-3.4.1
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Mesa 3.4.1 release notes
|
||||||
|
|
||||||
|
February 9, 2001
|
||||||
|
|
||||||
|
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.1 is a maintenance release that simply fixes bugs found since
|
||||||
|
the Mesa 3.4 release. For details, see the VERSIONS file.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.4.1,v 1.2 2001/05/23 14:45:01 brianp Exp $
|
||||||
22
docs/RELNOTES-3.4.2
Normal file
22
docs/RELNOTES-3.4.2
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Mesa 3.4.2 release notes
|
||||||
|
|
||||||
|
May 17, 2001
|
||||||
|
|
||||||
|
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.2 is a maintenance release that simply fixes bugs found since
|
||||||
|
the Mesa 3.4.1 release. For details, see the VERSIONS file.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.4.2,v 1.2 2001/05/23 14:45:01 brianp Exp $
|
||||||
228
docs/RELNOTES-3.5
Normal file
228
docs/RELNOTES-3.5
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
|
||||||
|
Mesa 3.5 release notes
|
||||||
|
|
||||||
|
June 21, 2001
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Odd numbered versions (such as 3.5) designate new developmental releases.
|
||||||
|
Even numbered versions (such as 3.4) designate stable releases.
|
||||||
|
|
||||||
|
The biggest change in Mesa 3.5 is a complete overhaul of the source
|
||||||
|
code in order to make it more modular. This was driven by the DRI
|
||||||
|
hardware drivers. It simplifies the DRI drivers and opens the door
|
||||||
|
to hardware transform/clip/lighting (TCL). Keith Whitwell can take
|
||||||
|
the credit for that.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Driver Support
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
|
||||||
|
Not all of the older Mesa drivers have been updated. Here's the status:
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- -----------
|
||||||
|
XMesa (Xlib) updated
|
||||||
|
OSMesa (off-screen) updated
|
||||||
|
FX (3dfx Voodoo1/2) updated
|
||||||
|
SVGA updated
|
||||||
|
GGI not updated
|
||||||
|
Windows/Win32 not updated
|
||||||
|
DOS/DJGPP not updated
|
||||||
|
BeOS not updated
|
||||||
|
Allegro not updated
|
||||||
|
D3D not updated
|
||||||
|
DOS not updated
|
||||||
|
|
||||||
|
We're looking for volunteers to update the remaining drivers. Please
|
||||||
|
post to the Mesa3d-dev mailing list if you can help.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GLU 1.3
|
||||||
|
-------
|
||||||
|
|
||||||
|
Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
|
||||||
|
This version of GLU supports the GLU 1.3 specification. The old
|
||||||
|
Mesa GLU library implemented the 1.1 specification. The SI GLU
|
||||||
|
library should work much better.
|
||||||
|
|
||||||
|
You'll need a C++ compiler to compile the SI GLU library. This may
|
||||||
|
be a problem on some systems.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Extensions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
GL_EXT_convolution
|
||||||
|
Adds image convolution to glRead/Copy/DrawPixels/TexImage.
|
||||||
|
|
||||||
|
GL_ARB_imaging
|
||||||
|
This is the optional imaging subset of OpenGL 1.2.
|
||||||
|
It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
|
||||||
|
GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
|
||||||
|
GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
|
||||||
|
and GL_SGI_color_matrix extensions all rolled together.
|
||||||
|
This is supported in all software renderers but not in all
|
||||||
|
hardware drivers (3dfx for example).
|
||||||
|
|
||||||
|
GL_ARB_texture_compression
|
||||||
|
This is supported in Mesa but only used by the 3dfx DRI drivers
|
||||||
|
for Voodoo4 and later.
|
||||||
|
|
||||||
|
GL_ARB_texture_env_add
|
||||||
|
This is identical to GL_EXT_texture_env_add.
|
||||||
|
|
||||||
|
GL_NV_blend_square
|
||||||
|
Adds extra blend source and dest factors which allow squaring
|
||||||
|
of color values.
|
||||||
|
|
||||||
|
GL_EXT_fog_coord
|
||||||
|
Allows specification of a per-vertex fog coordinate instead of
|
||||||
|
having fog always computed from the eye distance.
|
||||||
|
|
||||||
|
GL_EXT_secondary_color
|
||||||
|
Allows specifying the secondary (specular) color for each vertex
|
||||||
|
instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
|
||||||
|
mode.
|
||||||
|
|
||||||
|
GL_ARB_texture_env_combine
|
||||||
|
Basically the same as GL_EXT_texture_env_combine
|
||||||
|
|
||||||
|
GL_ARB_texture_env_add extension
|
||||||
|
Texture addition mode.
|
||||||
|
|
||||||
|
GL_ARB_texture_env_dot3 extension
|
||||||
|
Dot product texture environment.
|
||||||
|
|
||||||
|
GL_ARB_texture_border_clamp
|
||||||
|
Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
|
||||||
|
|
||||||
|
GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
|
||||||
|
Implements a shadow casting algorithm based on depth map textures
|
||||||
|
|
||||||
|
GL_SGIS_generate_mipmap
|
||||||
|
Automatically generate lower mipmap images whenever the base mipmap
|
||||||
|
image is changed with glTexImage, glCopyTexImage, etc.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libOSMesa.so
|
||||||
|
------------
|
||||||
|
|
||||||
|
libOSMesa.so is a new library which contains the OSMesa interface for
|
||||||
|
off-screen rendering. Apps which need the OSMesa interface should link
|
||||||
|
with both -lOSMesa and -lGL. This change was made so that stand-alone
|
||||||
|
Mesa works the same way as XFree86/DRI's libGL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Changes / Core Mesa Changes
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
The ctx->Driver.LogicOp() function has been removed. It used to
|
||||||
|
be called during state update in order to determine if the driver
|
||||||
|
could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
|
||||||
|
flag. Drivers should instead examine the LogicOp state themselves
|
||||||
|
and choose specialized point, line, and triangle functions appropriately,
|
||||||
|
or fall back to software rendering. The Xlib driver was the only driver
|
||||||
|
to use this function. And since the Xlib driver no longer draws
|
||||||
|
points, lines or triangles using Xlib, the LogicOp function isn't needed.
|
||||||
|
|
||||||
|
The ctx->Driver.Dither() function has been removed. Drivers should
|
||||||
|
detect dither enable/disable via ctx->Driver.Enable() instead.
|
||||||
|
|
||||||
|
The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
|
||||||
|
are now just called from glIndexMask and glColorMask like the other
|
||||||
|
GL state-changing functions. They are no longer called from inside
|
||||||
|
gl_update_state(). Also, they now return void. The change was made
|
||||||
|
mostly for sake of uniformity.
|
||||||
|
|
||||||
|
The NEW_DRVSTATE[0123] flags have been removed. They weren't being used
|
||||||
|
and are obsolete w.r.t. the way state updates are done in DRI drivers.
|
||||||
|
|
||||||
|
|
||||||
|
Removed obsolete gl_create_visual() and gl_destroy_visual().
|
||||||
|
|
||||||
|
Renamed functions (new namespace):
|
||||||
|
|
||||||
|
old new
|
||||||
|
gl_create_framebuffer _mesa_create_framebuffer
|
||||||
|
gl_destroy_framebuffer _mesa_destroy_framebuffer
|
||||||
|
gl_create_context _mesa_create_context
|
||||||
|
gl_destroy_context _mesa_destroy_context
|
||||||
|
gl_context_initialize _mesa_context_initialize
|
||||||
|
gl_copy_context _mesa_copy_context
|
||||||
|
gl_make_current _mesa_make_current
|
||||||
|
gl_make_current2 _mesa_make_current2
|
||||||
|
gl_get_current_context _mesa_get_current_context
|
||||||
|
gl_flush_vb _mesa_flush_vb
|
||||||
|
gl_warning _mesa_warning
|
||||||
|
gl_compile_error _mesa_compile_error
|
||||||
|
|
||||||
|
|
||||||
|
All the drivers have been updated, but not all of them have been
|
||||||
|
tested since I can't test some platforms (DOS, Windows, Allegro, etc).
|
||||||
|
|
||||||
|
|
||||||
|
X/Mesa Driver
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The source files for the X/Mesa driver in src/X have been renamed.
|
||||||
|
The xmesa[1234].c files are gone. The new files are xm_api.c,
|
||||||
|
xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Multitexture
|
||||||
|
------------
|
||||||
|
|
||||||
|
Eight texture units are now supported by default.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OpenGL SI related changes
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
In an effort to make Mesa's internal interfaces more like the OpenGL
|
||||||
|
SI interfaces, a number of changes have been made:
|
||||||
|
|
||||||
|
1. Importing the SI's glcore.h file which defines a number of
|
||||||
|
interface structures like __GLimports and __GLexports.
|
||||||
|
|
||||||
|
2. Renamed "struct gl_context" to "struct __GLcontextRec".
|
||||||
|
|
||||||
|
3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
|
||||||
|
|
||||||
|
4. The GLcontext member Visual is no longer a pointer.
|
||||||
|
|
||||||
|
5. New file: imports.c to setup default import functions for Mesa.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
16-bit color channels
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
There's experimental support for 16-bit color channels (64-bit pixels)
|
||||||
|
in Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering.
|
||||||
|
Type "make linux-osmesa16" in the top-level directory to build the
|
||||||
|
special libOSMesa16.so library.
|
||||||
|
|
||||||
|
This hasn't been tested very thoroughly yet so please file bug reports
|
||||||
|
if you have trouble.
|
||||||
|
|
||||||
|
In the future I hope to implement support for 32-bit, floating point
|
||||||
|
color channels.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-3.5,v 1.14 2001/06/20 19:02:48 brianp Exp $
|
||||||
163
docs/RELNOTES-4.0
Normal file
163
docs/RELNOTES-4.0
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
|
||||||
|
Mesa 4.0 release notes
|
||||||
|
|
||||||
|
October 18, 2001
|
||||||
|
|
||||||
|
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 version 4.0 signifies two things:
|
||||||
|
|
||||||
|
1. A stabilization of the 3.5 development release
|
||||||
|
2. Implementation of the OpenGL 1.3 specification
|
||||||
|
|
||||||
|
|
||||||
|
Note that the Mesa major version number is incremented with the OpenGL
|
||||||
|
minor version number:
|
||||||
|
|
||||||
|
Mesa 1.x == OpenGL 1.0
|
||||||
|
Mesa 2.x == OpenGL 1.1
|
||||||
|
Mesa 3.x == OpenGL 1.2
|
||||||
|
Mesa 4.x == OpenGL 1.3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Features
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa 3.5 already had all the new features of OpenGL 1.3, implemented as
|
||||||
|
extensions. These extensions were simply promoted to standard features:
|
||||||
|
|
||||||
|
GL_ARB_multisample
|
||||||
|
GL_ARB_multitexture
|
||||||
|
GL_ARB_texture_border_clamp
|
||||||
|
GL_ARB_texture_compression
|
||||||
|
GL_ARB_texture_cube_map
|
||||||
|
GL_ARB_texture_env_add
|
||||||
|
GL_ARB_texture_env_combine
|
||||||
|
GL_ARB_texture_env_dot3
|
||||||
|
GL_ARB_transpose_matrix
|
||||||
|
|
||||||
|
In Mesa 4.0 the functions defined by these extensions are now available
|
||||||
|
without the "ARB" suffix. For example, glLoadTransposeMatrixf() is now
|
||||||
|
a standard API function. The new functions in OpenGL 1.3 and Mesa 4.0 are:
|
||||||
|
|
||||||
|
glActiveTexture
|
||||||
|
glClientActiveTexture
|
||||||
|
glCompressedTexImage1D
|
||||||
|
glCompressedTexImage2D
|
||||||
|
glCompressedTexImage3D
|
||||||
|
glCompressedTexSubImage1D
|
||||||
|
glCompressedTexSubImage2D
|
||||||
|
glCompressedTexSubImage3D
|
||||||
|
glGetCompressedTexImage
|
||||||
|
glLoadTransposeMatrixd
|
||||||
|
glLoadTransposeMatrixf
|
||||||
|
glMultiTexCoord1d
|
||||||
|
glMultiTexCoord1dv
|
||||||
|
glMultiTexCoord1f
|
||||||
|
glMultiTexCoord1fv
|
||||||
|
glMultiTexCoord1i
|
||||||
|
glMultiTexCoord1iv
|
||||||
|
glMultiTexCoord1s
|
||||||
|
glMultiTexCoord1sv
|
||||||
|
glMultiTexCoord2d
|
||||||
|
glMultiTexCoord2dv
|
||||||
|
glMultiTexCoord2f
|
||||||
|
glMultiTexCoord2fv
|
||||||
|
glMultiTexCoord2i
|
||||||
|
glMultiTexCoord2iv
|
||||||
|
glMultiTexCoord2s
|
||||||
|
glMultiTexCoord2sv
|
||||||
|
glMultiTexCoord3d
|
||||||
|
glMultiTexCoord3dv
|
||||||
|
glMultiTexCoord3f
|
||||||
|
glMultiTexCoord3fv
|
||||||
|
glMultiTexCoord3i
|
||||||
|
glMultiTexCoord3iv
|
||||||
|
glMultiTexCoord3s
|
||||||
|
glMultiTexCoord3sv
|
||||||
|
glMultiTexCoord4d
|
||||||
|
glMultiTexCoord4dv
|
||||||
|
glMultiTexCoord4f
|
||||||
|
glMultiTexCoord4fv
|
||||||
|
glMultiTexCoord4i
|
||||||
|
glMultiTexCoord4iv
|
||||||
|
glMultiTexCoord4s
|
||||||
|
glMultiTexCoord4sv
|
||||||
|
glMultTransposeMatrixd
|
||||||
|
glMultTransposeMatrixf
|
||||||
|
glSampleCoverage
|
||||||
|
glSamplePass
|
||||||
|
|
||||||
|
|
||||||
|
GLX 1.4 is the companion to OpenGL 1.3. The only new features in GLX 1.4
|
||||||
|
are support for multisampling and the GLX_ARB_get_proc_address extension.
|
||||||
|
glXGetProcAddress() is the only new function in GLX 1.4.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Multisample and Texture Compression
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
The OpenGL 1.3 specification allows the multisample and texture compression
|
||||||
|
features to essentially be no-ops. For example, if you query for multisample
|
||||||
|
support you'll find none, but the API functions work.
|
||||||
|
|
||||||
|
Similarly, texture compression is not implemented by any of the software
|
||||||
|
drivers but you can specify a generic compressed texture format (like
|
||||||
|
GL_COMPRESSED_RGBA) to glTexImage2D and it'll be accepted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Drivers
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
|
||||||
|
device driver. If the driver enables all the ARB extensions which are part
|
||||||
|
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise,
|
||||||
|
it'll return "1.2".
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of the drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.3
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.3
|
||||||
|
FX (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA implements OpenGL 1.3
|
||||||
|
Wind River UGL implements OpenGL 1.3
|
||||||
|
Windows/Win32 implements OpenGL 1.3
|
||||||
|
GGI needs updating
|
||||||
|
DOS/DJGPP needs updating
|
||||||
|
BeOS needs updating
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
DOS needs updating
|
||||||
|
|
||||||
|
Special thanks go to Karl Schultz for updating the Windows driver.
|
||||||
|
|
||||||
|
The XFree86/DRI drivers have not yet been updated to use Mesa 4.0 as of
|
||||||
|
September 2001, but that should happen eventually.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Other Changes
|
||||||
|
-------------
|
||||||
|
|
||||||
|
See the VERSIONS file for more details about bug fixes, etc. in Mesa 4.0.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.0,v 3.2 2001/10/17 14:59:21 brianp Exp $
|
||||||
22
docs/RELNOTES-4.0.1
Normal file
22
docs/RELNOTES-4.0.1
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Mesa 4.0.1 release notes
|
||||||
|
|
||||||
|
December 17, 2001
|
||||||
|
|
||||||
|
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 4.0.1 only contains bug fixes since version 4.0.
|
||||||
|
|
||||||
|
See the docs/VERSIONS file for the list of bug fixes.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.0.1,v 1.1.2.2 2001/12/17 19:43:38 brianp Exp $
|
||||||
50
docs/RELNOTES-4.0.2
Normal file
50
docs/RELNOTES-4.0.2
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
Mesa 4.0.2 release notes
|
||||||
|
|
||||||
|
April 2, 2002
|
||||||
|
|
||||||
|
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 4.0.2 only contains bug fixes and a new DOS driver since version 4.0.1.
|
||||||
|
|
||||||
|
See the docs/VERSIONS file for the list of bug fixes.
|
||||||
|
|
||||||
|
|
||||||
|
Device Drivers
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
|
||||||
|
device driver. If the driver enables all the ARB extensions which are part
|
||||||
|
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise,
|
||||||
|
it'll return "1.2".
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of the drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.3
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.3
|
||||||
|
FX (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA implements OpenGL 1.3
|
||||||
|
Wind River UGL implements OpenGL 1.3
|
||||||
|
Windows/Win32 implements OpenGL 1.3
|
||||||
|
DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2)
|
||||||
|
GGI needs updating
|
||||||
|
BeOS needs updating
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.0.2,v 1.1.2.3 2002/04/01 16:54:11 brianp Exp $
|
||||||
52
docs/RELNOTES-4.0.3
Normal file
52
docs/RELNOTES-4.0.3
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
Mesa 4.0.3 release notes
|
||||||
|
|
||||||
|
June 25, 2002
|
||||||
|
|
||||||
|
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 4.0.3 basically just contains bug fixes version 4.0.2.
|
||||||
|
|
||||||
|
See the docs/VERSIONS file for the list of bug fixes.
|
||||||
|
|
||||||
|
The GGI driver has been updated, thanks to Filip Spacek.
|
||||||
|
|
||||||
|
|
||||||
|
Device Drivers
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
|
||||||
|
device driver. If the driver enables all the ARB extensions which are part
|
||||||
|
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise,
|
||||||
|
it'll return "1.2".
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of the drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.3
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.3
|
||||||
|
FX (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA implements OpenGL 1.3
|
||||||
|
Wind River UGL implements OpenGL 1.3
|
||||||
|
Windows/Win32 implements OpenGL 1.3
|
||||||
|
DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2)
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
BeOS needs updating
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.0.3,v 1.1.2.3 2002/06/24 20:44:58 brianp Exp $
|
||||||
28
docs/RELNOTES-4.1
Normal file
28
docs/RELNOTES-4.1
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
Mesa 4.1 release notes
|
||||||
|
|
||||||
|
<month>, <day>, <year>
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Odd numbered versions (such as 4.1) designate new developmental releases.
|
||||||
|
Even numbered versions (such as 4.0) designate stable releases.
|
||||||
|
|
||||||
|
|
||||||
|
New Features in Mesa 4.1
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
<to be determined>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.1,v 1.1 2001/10/22 22:57:23 brianp Exp $
|
||||||
537
docs/VERSIONS
537
docs/VERSIONS
@@ -1,3 +1,4 @@
|
|||||||
|
$Id: VERSIONS,v 1.73.2.29 2002/06/25 15:22:12 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
|
||||||
@@ -898,7 +899,7 @@ Mesa Version History
|
|||||||
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
|
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
|
||||||
|
|
||||||
|
|
||||||
4.0.1 December 17, 2001
|
4.0.1 December 17, 2001
|
||||||
New:
|
New:
|
||||||
- better sub-pixel sample positions for AA triangles (Ray Tice)
|
- better sub-pixel sample positions for AA triangles (Ray Tice)
|
||||||
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
|
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
|
||||||
@@ -980,535 +981,3 @@ Mesa Version History
|
|||||||
- lots of T&L updates for the Radeon DRI driver
|
- lots of T&L updates for the Radeon DRI driver
|
||||||
Known bugs:
|
Known bugs:
|
||||||
- mipmap LOD computation (fixed for Mesa 4.1)
|
- 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="https://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,264 +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>--datadir=DIR</code></dt>
|
|
||||||
<dd><p>This option specifies the directory where the data files will
|
|
||||||
be installed. The default is <code>${prefix}/share</code>.
|
|
||||||
Currently when dri drivers are enabled, <code>drirc.d/</code> is at
|
|
||||||
this place.</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 configuring 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 noticeable 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,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>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="https://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>Attach the output of running glxinfo or wglinfo.
|
|
||||||
This will tell us the Mesa version, which device driver you're using, 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 an <a href="https://github.com/apitrace/apitrace">apitrace</a>
|
|
||||||
or 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="https://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 enum 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,108 +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>
|
|
||||||
<li><a href="meson.html" target="_parent">Meson</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="https://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="releasing.html" target="_parent">Releasing process</a>
|
|
||||||
<li><a href="release-calendar.html" target="_parent">Release calendar</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="https://www.opengl.org" target="_parent">OpenGL website</a>
|
|
||||||
<li><a href="https://dri.freedesktop.org" target="_parent">DRI website</a>
|
|
||||||
<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
|
||||||
<li><a href="https://planet.freedesktop.org" target="_parent">Developer blogs</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Hosted by:</b>
|
|
||||||
<br>
|
|
||||||
<blockquote>
|
|
||||||
<a href="https://freedesktop.org" target="_parent">freedesktop.org</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="https://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="https://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,112 +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>
|
|
||||||
(HTTPS).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Starting with the first release of 2017, Mesa's version scheme is
|
|
||||||
year-based. Filenames are in the form <tt>mesa-Y.N.P.tar.gz</tt>, where
|
|
||||||
<tt>Y</tt> is the year (two digits), <tt>N</tt> is an incremental number
|
|
||||||
(starting at 0) and <tt>P</tt> is the patch number (0 for the first
|
|
||||||
release, 1 for the first patch after that).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
When a new release is coming, release candidates (betas) may be found
|
|
||||||
in the same directory, and are recognisable by the
|
|
||||||
<tt>mesa-Y.N.P-<b>rc</b>X.tar.gz</tt> filename.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Unpacking</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa releases are available in two formats: <tt>.tar.xz</tt> and <tt>.tar.gz</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To unpack the tarball:
|
|
||||||
<pre>
|
|
||||||
tar xf mesa-Y.N.P.tar.xz
|
|
||||||
</pre>
|
|
||||||
or
|
|
||||||
<pre>
|
|
||||||
tar xf mesa-Y.N.P.tar.gz
|
|
||||||
</pre>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h1>Contents</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
After unpacking you'll have these files and directories (among others):
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
autogen.sh - Autoconf script for *nix systems
|
|
||||||
scons/ - SCons script for Windows builds
|
|
||||||
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="https://gitlab.freedesktop.org/mesa/glut">GLUT</a>,
|
|
||||||
<a href="https://gitlab.freedesktop.org/mesa/glu">GLU</a> and
|
|
||||||
<a href="https://gitlab.freedesktop.org/mesa/demos">Demos</a>,
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
259
docs/egl.html
259
docs/egl.html
@@ -1,259 +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="https://www.khronos.org/egl/">
|
|
||||||
https://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 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-platforms</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>List the platforms (window systems) to support. Its argument is a comma
|
|
||||||
separated string such as <code>--with-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.</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_PLATFORM</code></dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
<p>This variable specifies the native platform. The valid values are the same
|
|
||||||
as those for <code>--with-platforms</code>. When the variable is not set,
|
|
||||||
the main library uses the first platform listed in
|
|
||||||
<code>--with-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>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<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,383 +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 - if set to `true`, forces an indirect rendering context/connection.
|
|
||||||
<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
|
|
||||||
<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
|
|
||||||
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
|
|
||||||
calls per second.
|
|
||||||
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
|
|
||||||
</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_NO_ERROR - if set to 1, error checking is disabled as per KHR_no_error.
|
|
||||||
This will result in undefined behaviour for invalid use of the api, but
|
|
||||||
can reduce CPU use for apps that are known to be error free.</li>
|
|
||||||
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
|
|
||||||
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|COMPAT]
|
|
||||||
<li>FC is an optional suffix that indicates a forward compatible
|
|
||||||
context. This is only valid for versions >= 3.0.
|
|
||||||
<li>COMPAT is an optional suffix that indicates a compatibility
|
|
||||||
context or GL_ARB_compatibility support. This is only valid for
|
|
||||||
versions >= 3.1.
|
|
||||||
<li>GL versions <= 3.0 are set to a compatibility (non-Core)
|
|
||||||
profile
|
|
||||||
<li>GL versions = 3.1, depending on the driver, it may or may not
|
|
||||||
have the ARB_compatibility extension enabled.
|
|
||||||
<li>GL versions >= 3.2 are set to a Core profile
|
|
||||||
<li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
|
|
||||||
X.YCOMPAT.
|
|
||||||
<ul>
|
|
||||||
<li>2.1 - select a compatibility (non-Core) profile with GL
|
|
||||||
version 2.1.
|
|
||||||
<li>3.0 - select a compatibility (non-Core) profile with GL
|
|
||||||
version 3.0.
|
|
||||||
<li>3.0FC - select a Core+Forward Compatible profile with GL
|
|
||||||
version 3.0.
|
|
||||||
<li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
|
|
||||||
per the driver default.
|
|
||||||
<li>3.1FC - select GL version 3.1 with forward compatibility and
|
|
||||||
GL_ARB_compatibility disabled.
|
|
||||||
<li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
|
|
||||||
enabled.
|
|
||||||
<li>X.Y - override GL version to X.Y without changing the profile.
|
|
||||||
<li>X.YFC - select a Core+Forward Compatible profile with GL
|
|
||||||
version X.Y.
|
|
||||||
<li>X.YCOMPAT - select a Compatibility profile with GL version
|
|
||||||
X.Y.
|
|
||||||
</ul>
|
|
||||||
<li>Mesa may not really implement all the features of the given
|
|
||||||
version. (for developers only)
|
|
||||||
</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_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
|
|
||||||
<li>MESA_GLSL_CACHE_MAX_SIZE - if set, determines the maximum size of
|
|
||||||
the on-disk cache of compiled GLSL programs. Should be set to a number
|
|
||||||
optionally followed by 'K', 'M', or 'G' to specify a size in
|
|
||||||
kilobytes, megabytes, or gigabytes. By default, gigabytes will be
|
|
||||||
assumed. And if unset, a maximum size of 1GB will be used. Note: A separate
|
|
||||||
cache might be created for each architecture that Mesa is installed for on
|
|
||||||
your system. For example under the default settings you may end up with a 1GB
|
|
||||||
cache for x86_64 and another 1GB cache for i386.
|
|
||||||
<li>MESA_GLSL_CACHE_DIR - if set, determines the directory to be used
|
|
||||||
for the on-disk cache of compiled GLSL programs. If this variable is
|
|
||||||
not set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if
|
|
||||||
that variable is set), or else within .cache/mesa_shader_cache within the user's
|
|
||||||
home directory.
|
|
||||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
|
|
||||||
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
|
|
||||||
<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
|
|
||||||
<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
|
|
||||||
<li>MESA_VK_VERSION_OVERRIDE - changes the Vulkan physical device version
|
|
||||||
as returned in VkPhysicalDeviceProperties::apiVersion.
|
|
||||||
<ul>
|
|
||||||
<li>The format should be MAJOR.MINOR[.PATCH]</li>
|
|
||||||
<li>This will not let you force a version higher than the driver's
|
|
||||||
instance versionas advertised by vkEnumerateInstanceVersion</li>
|
|
||||||
<li>This can be very useful for debugging but some features may not be
|
|
||||||
implemented correctly. (For developers only)</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</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>ann - annotate IR in assembly dumps</li>
|
|
||||||
<li>aub - dump batches into an AUB trace for use with simulation tools</li>
|
|
||||||
<li>bat - emit batch information</li>
|
|
||||||
<li>blit - emit messages about blit operations</li>
|
|
||||||
<li>blorp - emit messages about the blorp operations (blits & clears)</li>
|
|
||||||
<li>buf - emit messages about buffer objects</li>
|
|
||||||
<li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
|
|
||||||
<li>color - use color in output</li>
|
|
||||||
<li>cs - dump shader assembly for compute shaders</li>
|
|
||||||
<li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
|
|
||||||
<li>dri - emit messages about the DRI interface</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>hex - print instruction hex dump with the disassembly</li>
|
|
||||||
<li>l3 - emit messages about the new L3 state during transitions</li>
|
|
||||||
<li>miptree - emit messages about miptrees</li>
|
|
||||||
<li>no8 - don't generate SIMD8 fragment shader</li>
|
|
||||||
<li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
|
|
||||||
<li>nocompact - disable instruction compaction</li>
|
|
||||||
<li>nodualobj - suppress generation of dual-object geometry shader code</li>
|
|
||||||
<li>norbc - disable single sampled render buffer compression</li>
|
|
||||||
<li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
|
|
||||||
<li>perf - emit messages about performance issues</li>
|
|
||||||
<li>perfmon - emit messages about AMD_performance_monitor</li>
|
|
||||||
<li>pix - emit messages about pixel operations</li>
|
|
||||||
<li>prim - emit messages about drawing primitives</li>
|
|
||||||
<li>reemit - mark all state dirty on each draw call</li>
|
|
||||||
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
|
|
||||||
<li>shader_time - record how much GPU time is spent in each shader</li>
|
|
||||||
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
|
||||||
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
|
||||||
<li>state - emit messages about state flag tracking</li>
|
|
||||||
<li>submit - emit batchbuffer usage statistics</li>
|
|
||||||
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
|
||||||
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
|
||||||
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
|
||||||
<li>tex - emit messages about textures.</li>
|
|
||||||
<li>urb - emit messages about URB setup</li>
|
|
||||||
<li>vert - emit messages about vertex assembly</li>
|
|
||||||
<li>vs - dump shader assembly for vertex shaders</li>
|
|
||||||
</ul>
|
|
||||||
<li>INTEL_SCALAR_VS (or TCS, TES, GS) - force scalar/vec4 mode for a shader stage (Gen8-9 only)</li>
|
|
||||||
<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=true 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>SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
|
|
||||||
such as the OpenGL program's name and command line arguments.
|
|
||||||
<li>See the driver code for other, lesser-used variables.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>WGL environment variables</h3>
|
|
||||||
<ul>
|
|
||||||
<li>WGL_SWAP_INTERVAL - to set a swap interval, equivalent to calling
|
|
||||||
wglSwapIntervalEXT() in an application. If this environment variable
|
|
||||||
is set, application calls to wglSwapIntervalEXT() will have no effect.
|
|
||||||
</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/OLD/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/OLD/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>
|
|
||||||
390
docs/faq.html
390
docs/faq.html
@@ -1,390 +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: 19 September 2018
|
|
||||||
</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="https://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="https://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="https://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
|
|
||||||
for more information about Nouveau drivers.</li>
|
|
||||||
<li>See <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://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>
|
|
||||||
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
|
|
||||||
support due to intellectual property (IP) and/or patent issues around the s3tc
|
|
||||||
algorithm.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has expired.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
In versions prior to this, a 3rd party <a href="https://dri.freedesktop.org/wiki/S3TC">
|
|
||||||
plug-in library</a> was required.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
BIN
docs/favicon.ico
BIN
docs/favicon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
BIN
docs/favicon.png
BIN
docs/favicon.png
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user