Compare commits
52 Commits
mesa-17.2.
...
vtx-0-2-21
Author | SHA1 | Date | |
---|---|---|---|
|
f2f09abce4 | ||
|
93320957f2 | ||
|
374a09c4f7 | ||
|
1302fd3b25 | ||
|
5198950cde | ||
|
88d66b7208 | ||
|
701208d259 | ||
|
dfd3c9c40f | ||
|
cef9471ab2 | ||
|
8d8bb0679c | ||
|
5affcd3cbb | ||
|
86ac3e3c2d | ||
|
5c2d467e6d | ||
|
c00a1c4622 | ||
|
dad38213e7 | ||
|
9cbad64314 | ||
|
f0bf8c0ed1 | ||
|
6b692dc06c | ||
|
be3c25458b | ||
|
a384b0c5eb | ||
|
acfa4d46a4 | ||
|
df3b1eb5bc | ||
|
34a9e4adaf | ||
|
34f6df8b6d | ||
|
5fc6940aca | ||
|
c9c27a6efd | ||
|
79a49e30a1 | ||
|
f1582dbe52 | ||
|
4fc77f884c | ||
|
398f8d10a2 | ||
|
5b9ad341a0 | ||
|
fcd68a2b30 | ||
|
f1bbe8d0a5 | ||
|
3c0cfda46b | ||
|
5d80efc35e | ||
|
e01f56b3a8 | ||
|
30cd200068 | ||
|
e55c545d4a | ||
|
b101554d16 | ||
|
1b8c209523 | ||
|
d46adad5cd | ||
|
bfc37379cc | ||
|
0c390fec04 | ||
|
d5c9fd383b | ||
|
8ae69294ad | ||
|
46330d3aa7 | ||
|
c91f7ad52b | ||
|
5b40d6924c | ||
|
27b4c2d675 | ||
|
051a8141d1 | ||
|
9b6d6988c4 | ||
|
967fa00a7f |
@@ -1,18 +0,0 @@
|
|||||||
((nil . ((show-trailing-whitespace . t)))
|
|
||||||
(prog-mode
|
|
||||||
(indent-tabs-mode . nil)
|
|
||||||
(tab-width . 8)
|
|
||||||
(c-basic-offset . 3)
|
|
||||||
(c-file-style . "stroustrup")
|
|
||||||
(fill-column . 78)
|
|
||||||
(eval . (progn
|
|
||||||
(c-set-offset 'case-label '0)
|
|
||||||
(c-set-offset 'innamespace '0)
|
|
||||||
(c-set-offset 'inline-open '0)))
|
|
||||||
(whitespace-style face indentation)
|
|
||||||
(whitespace-line-column . 79)
|
|
||||||
(eval ignore-errors
|
|
||||||
(require 'whitespace)
|
|
||||||
(whitespace-mode 1)))
|
|
||||||
(makefile-mode (indent-tabs-mode . t))
|
|
||||||
)
|
|
@@ -1,35 +0,0 @@
|
|||||||
# To use this config on you editor, follow the instructions at:
|
|
||||||
# http://editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
insert_final_newline = true
|
|
||||||
tab_width = 8
|
|
||||||
|
|
||||||
[*.{c,h,cpp,hpp,cc,hh}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 3
|
|
||||||
|
|
||||||
[{Makefile*,*.mk}]
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[{*.py,SCons*}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.pl]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.m4]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.yml]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.patch]
|
|
||||||
trim_trailing_whitespace = false
|
|
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,4 +0,0 @@
|
|||||||
*.dsp -crlf
|
|
||||||
*.dsw -crlf
|
|
||||||
*.sln -crlf
|
|
||||||
*.vcproj -crlf
|
|
52
.gitignore
vendored
52
.gitignore
vendored
@@ -1,52 +0,0 @@
|
|||||||
*.a
|
|
||||||
*.dll
|
|
||||||
*.exe
|
|
||||||
*.ilk
|
|
||||||
*.la
|
|
||||||
*.lo
|
|
||||||
*.log
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
*.os
|
|
||||||
*.pc
|
|
||||||
*.pdb
|
|
||||||
*.pyc
|
|
||||||
*.pyo
|
|
||||||
*.so
|
|
||||||
*.so.*
|
|
||||||
*.sw[a-z]
|
|
||||||
*.tar
|
|
||||||
*.tar.bz2
|
|
||||||
*.tar.gz
|
|
||||||
*.tar.xz
|
|
||||||
*.trs
|
|
||||||
*.zip
|
|
||||||
*~
|
|
||||||
depend
|
|
||||||
depend.bak
|
|
||||||
bin/ltmain.sh
|
|
||||||
lib
|
|
||||||
lib64
|
|
||||||
configure
|
|
||||||
configure.lineno
|
|
||||||
autom4te.cache
|
|
||||||
aclocal.m4
|
|
||||||
config.log
|
|
||||||
config.status
|
|
||||||
cscope*
|
|
||||||
tags
|
|
||||||
.scon*
|
|
||||||
config.py
|
|
||||||
build
|
|
||||||
libtool
|
|
||||||
manifest.txt
|
|
||||||
.dir-locals.el
|
|
||||||
.deps/
|
|
||||||
.dirstamp
|
|
||||||
.libs/
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
.install-mesa-links
|
|
||||||
.install-gallium-links
|
|
||||||
/src/git_sha1.h
|
|
||||||
TAGS
|
|
464
.mailmap
464
.mailmap
@@ -1,464 +0,0 @@
|
|||||||
Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)>
|
|
||||||
|
|
||||||
Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net>
|
|
||||||
Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
|
|
||||||
|
|
||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
|
|
||||||
|
|
||||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
|
|
||||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain>
|
|
||||||
|
|
||||||
Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com>
|
|
||||||
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com>
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk>
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)>
|
|
||||||
|
|
||||||
Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru>
|
|
||||||
|
|
||||||
Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com>
|
|
||||||
|
|
||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com>
|
|
||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com>
|
|
||||||
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
|
|
||||||
|
|
||||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
|
|
||||||
|
|
||||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
|
|
||||||
|
|
||||||
Andre Heider <a.heider@gmail.com>
|
|
||||||
Andreas Heider <andreas@heider.io>
|
|
||||||
|
|
||||||
Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
|
|
||||||
|
|
||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
|
|
||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
|
|
||||||
|
|
||||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
|
|
||||||
|
|
||||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
|
|
||||||
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx>
|
|
||||||
|
|
||||||
Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
|
|
||||||
|
|
||||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
|
|
||||||
|
|
||||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
|
|
||||||
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org>
|
|
||||||
Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
|
|
||||||
|
|
||||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
|
|
||||||
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
|
||||||
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
|
||||||
|
|
||||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
|
|
||||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
|
|
||||||
|
|
||||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
|
|
||||||
|
|
||||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
|
|
||||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
|
|
||||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
|
|
||||||
|
|
||||||
Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de>
|
|
||||||
Christoph Brill <egore911@egore911.de> <egore@gmx.de>
|
|
||||||
|
|
||||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
|
|
||||||
|
|
||||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
|
|
||||||
|
|
||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
|
|
||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
|
|
||||||
|
|
||||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
|
|
||||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
|
|
||||||
|
|
||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
|
|
||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
|
|
||||||
|
|
||||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
|
|
||||||
|
|
||||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
|
|
||||||
|
|
||||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
|
|
||||||
|
|
||||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
|
|
||||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
|
|
||||||
David Miller <davem@davemloft.net> davem69 <davem69>
|
|
||||||
|
|
||||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
|
|
||||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
|
|
||||||
|
|
||||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
|
|
||||||
|
|
||||||
Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
|
|
||||||
|
|
||||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
|
|
||||||
|
|
||||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
|
|
||||||
|
|
||||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
|
||||||
|
|
||||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
|
||||||
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
|
||||||
|
|
||||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
|
||||||
|
|
||||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
|
|
||||||
|
|
||||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
|
|
||||||
Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
|
|
||||||
|
|
||||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
|
|
||||||
|
|
||||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
|
|
||||||
|
|
||||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
|
|
||||||
|
|
||||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
|
|
||||||
|
|
||||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
|
|
||||||
|
|
||||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
|
|
||||||
|
|
||||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
|
|
||||||
|
|
||||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
|
|
||||||
|
|
||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
|
|
||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
|
|
||||||
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com>
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com>
|
|
||||||
|
|
||||||
Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
|
|
||||||
|
|
||||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
|
|
||||||
|
|
||||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
|
||||||
|
|
||||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
|
|
||||||
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
|
||||||
|
|
||||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
|
|
||||||
|
|
||||||
Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain>
|
|
||||||
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org>
|
|
||||||
|
|
||||||
Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com>
|
|
||||||
Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)>
|
|
||||||
|
|
||||||
Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg>
|
|
||||||
|
|
||||||
Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com>
|
|
||||||
|
|
||||||
Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a>
|
|
||||||
|
|
||||||
Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk>
|
|
||||||
|
|
||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk>
|
|
||||||
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl>
|
|
||||||
|
|
||||||
Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
|
|
||||||
|
|
||||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
|
|
||||||
|
|
||||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
|
|
||||||
|
|
||||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
|
|
||||||
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
|
|
||||||
|
|
||||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
|
|
||||||
|
|
||||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
|
|
||||||
Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
|
|
||||||
|
|
||||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
|
|
||||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
|
|
||||||
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
|
|
||||||
|
|
||||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
|
|
||||||
|
|
||||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
|
|
||||||
|
|
||||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
|
|
||||||
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com>
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com>
|
|
||||||
|
|
||||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
|
|
||||||
|
|
||||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
|
|
||||||
|
|
||||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
|
|
||||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
|
|
||||||
|
|
||||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com>
|
|
||||||
|
|
||||||
Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com>
|
|
||||||
|
|
||||||
Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de>
|
|
||||||
Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de>
|
|
||||||
|
|
||||||
Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com>
|
|
||||||
|
|
||||||
Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com>
|
|
||||||
|
|
||||||
Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr>
|
|
||||||
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
|
|
||||||
|
|
||||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
|
|
||||||
|
|
||||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
|
|
||||||
|
|
||||||
Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com>
|
|
||||||
|
|
||||||
Michal Krol <michal@vmware.com> <michal@tungstengraphics.com>
|
|
||||||
Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@quad.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@transistor.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@wmvare.com>
|
|
||||||
|
|
||||||
Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com>
|
|
||||||
Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com>
|
|
||||||
Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com>
|
|
||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com>
|
|
||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)>
|
|
||||||
|
|
||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com>
|
|
||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
|
|
||||||
|
|
||||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
|
|
||||||
|
|
||||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
|
|
||||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
|
|
||||||
|
|
||||||
Nick Bowler <nbowler@draconx.ca>
|
|
||||||
|
|
||||||
Nick Sarnie <commendsarnex@gmail.com>
|
|
||||||
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
|
|
||||||
|
|
||||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
|
|
||||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
|
|
||||||
|
|
||||||
nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)>
|
|
||||||
|
|
||||||
Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com>
|
|
||||||
|
|
||||||
Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org>
|
|
||||||
|
|
||||||
Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain>
|
|
||||||
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city>
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com>
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org>
|
|
||||||
|
|
||||||
Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com>
|
|
||||||
|
|
||||||
Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com>
|
|
||||||
|
|
||||||
Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com>
|
|
||||||
|
|
||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com>
|
|
||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
|
|
||||||
|
|
||||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
|
|
||||||
|
|
||||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
|
|
||||||
|
|
||||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
|
|
||||||
|
|
||||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
|
|
||||||
|
|
||||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
|
|
||||||
|
|
||||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
|
|
||||||
# The next ones are not 100% sure
|
|
||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
|
|
||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)>
|
|
||||||
Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)>
|
|
||||||
|
|
||||||
Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
|
|
||||||
|
|
||||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
|
|
||||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
|
|
||||||
|
|
||||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
|
|
||||||
|
|
||||||
Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)>
|
|
||||||
Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
|
|
||||||
|
|
||||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
|
|
||||||
|
|
||||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
|
|
||||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
|
|
||||||
|
|
||||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
|
|
||||||
|
|
||||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
|
|
||||||
|
|
||||||
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
|
|
||||||
|
|
||||||
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
|
|
||||||
|
|
||||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
|
|
||||||
|
|
||||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
|
|
||||||
|
|
||||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
|
|
||||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
|
|
||||||
|
|
||||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
|
|
||||||
|
|
||||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
|
|
||||||
|
|
||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
|
|
||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
|
|
||||||
|
|
||||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
|
|
||||||
|
|
||||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
|
|
||||||
Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
|
|
||||||
|
|
||||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
|
|
||||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
|
|
||||||
|
|
||||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
|
|
||||||
|
|
||||||
Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)>
|
|
||||||
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com>
|
|
||||||
|
|
||||||
Thomas Tanner <tanner@gmx.net> tanner <tanner>
|
|
||||||
|
|
||||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
|
|
||||||
|
|
||||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
|
|
||||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
|
|
||||||
|
|
||||||
Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
|
|
||||||
|
|
||||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
|
|
||||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
|
|
||||||
|
|
||||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
|
|
||||||
|
|
||||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
|
|
||||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
|
|
||||||
|
|
||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
|
|
||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
|
|
||||||
|
|
||||||
Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
|
|
||||||
|
|
||||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
|
|
||||||
|
|
||||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
|
|
||||||
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
|
|
||||||
|
|
||||||
Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn>
|
|
399
.travis.yml
399
.travis.yml
@@ -1,399 +0,0 @@
|
|||||||
language: c
|
|
||||||
|
|
||||||
sudo: false
|
|
||||||
dist: trusty
|
|
||||||
|
|
||||||
cache:
|
|
||||||
apt: true
|
|
||||||
ccache: true
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
|
|
||||||
- XCB_RELEASES=http://xcb.freedesktop.org/dist
|
|
||||||
- WAYLAND_RELEASES=http://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.11
|
|
||||||
- LIBXCB_VERSION=libxcb-1.11
|
|
||||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
|
||||||
- LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
|
|
||||||
- LIBVDPAU_VERSION=libvdpau-1.1
|
|
||||||
- LIBVA_VERSION=libva-1.6.2
|
|
||||||
- LIBWAYLAND_VERSION=wayland-1.11.1
|
|
||||||
- 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"
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- 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 --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
|
|
||||||
- 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=3.9
|
|
||||||
- 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="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="swr"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="make Gallium Drivers Other"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=3.9
|
|
||||||
- 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 --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- env:
|
|
||||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
|
||||||
- LABEL="make Gallium ST Clover"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="true"
|
|
||||||
- LLVM_VERSION=3.6
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
- OVERRIDE_CC=gcc-4.7
|
|
||||||
- OVERRIDE_CXX=g++-4.7
|
|
||||||
- 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 --disable-gallium-osmesa"
|
|
||||||
# i915 most likely doesn't work with OpenCL.
|
|
||||||
# Regardless - we're doing a quick build test here.
|
|
||||||
- GALLIUM_DRIVERS="i915"
|
|
||||||
- VULKAN_DRIVERS=""
|
|
||||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.6
|
|
||||||
packages:
|
|
||||||
- libclc-dev
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
- g++-4.7
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.6-dev
|
|
||||||
- clang-3.6
|
|
||||||
- libclang-3.6-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- 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 --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
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- libunwind8-dev
|
|
||||||
- env:
|
|
||||||
- LABEL="make Vulkan"
|
|
||||||
- BUILD=make
|
|
||||||
- MAKEFLAGS="-j4"
|
|
||||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
|
||||||
- LLVM_VERSION=3.9
|
|
||||||
- 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 --disable-gallium-osmesa"
|
|
||||||
- GALLIUM_DRIVERS=""
|
|
||||||
- VULKAN_DRIVERS="intel,radeon"
|
|
||||||
- LIBUNWIND_FLAGS="--disable-libunwind"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
- 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:
|
|
||||||
- scons
|
|
||||||
# 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:
|
|
||||||
- scons
|
|
||||||
# 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=3.9
|
|
||||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
# Keep it symmetrical to the make build. There's no actual SWR, yet.
|
|
||||||
- SCONS_CHECK_COMMAND="true"
|
|
||||||
- OVERRIDE_CC="gcc-4.8"
|
|
||||||
- OVERRIDE_CXX="g++-4.8"
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-trusty-3.9
|
|
||||||
packages:
|
|
||||||
- scons
|
|
||||||
# LLVM packaging is broken and misses these dependencies
|
|
||||||
- libedit-dev
|
|
||||||
# From sources above
|
|
||||||
- llvm-3.9-dev
|
|
||||||
# Common
|
|
||||||
- xz-utils
|
|
||||||
- x11proto-xf86vidmode-dev
|
|
||||||
- libexpat1-dev
|
|
||||||
- libx11-xcb-dev
|
|
||||||
- libelf-dev
|
|
||||||
|
|
||||||
install:
|
|
||||||
- pip install --user mako
|
|
||||||
|
|
||||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
|
||||||
# latest version from there.
|
|
||||||
- for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
|
|
||||||
old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
|
|
||||||
new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
|
|
||||||
if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
|
|
||||||
export LIBDRM_VERSION="libdrm-$new_ver";
|
|
||||||
fi;
|
|
||||||
done
|
|
||||||
|
|
||||||
# Install dependencies where we require specific versions (or where
|
|
||||||
# disallowed by Travis CI's package whitelisting).
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $XORGMACROS_VERSION.tar.bz2
|
|
||||||
- (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $GLPROTO_VERSION.tar.bz2
|
|
||||||
- (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $DRI2PROTO_VERSION.tar.bz2
|
|
||||||
- (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $XCBPROTO_VERSION.tar.bz2
|
|
||||||
- (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBXCB_VERSION.tar.bz2
|
|
||||||
- (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
- (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
- wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBDRM_VERSION.tar.bz2
|
|
||||||
- (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
|
|
||||||
|
|
||||||
- wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
- tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
- (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
|
||||||
|
|
||||||
# libtxc-dxtn uses the patented S3 Texture Compression
|
|
||||||
# algorithm. Therefore, we don't want to use this library but it is
|
|
||||||
# still possible through setting the USE_TXC_DXTN variable to yes in
|
|
||||||
# the travis web UI.
|
|
||||||
#
|
|
||||||
# According to Wikipedia, the patent expires on October 2, 2017:
|
|
||||||
# https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
|
|
||||||
- if test "x$USE_TXC_DXTN" = xyes; then
|
|
||||||
wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
|
|
||||||
tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
|
|
||||||
(cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
|
|
||||||
fi
|
|
||||||
|
|
||||||
- wget http://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 http://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)
|
|
||||||
|
|
||||||
# Generate the header since one is missing on the Travis instance
|
|
||||||
- mkdir -p linux
|
|
||||||
- printf "%s\n" \
|
|
||||||
"#ifndef _LINUX_MEMFD_H" \
|
|
||||||
"#define _LINUX_MEMFD_H" \
|
|
||||||
"" \
|
|
||||||
"#define __NR_memfd_create 319" \
|
|
||||||
"#define SYS_memfd_create __NR_memfd_create" \
|
|
||||||
"" \
|
|
||||||
"#define MFD_CLOEXEC 0x0001U" \
|
|
||||||
"#define MFD_ALLOW_SEALING 0x0002U" \
|
|
||||||
"" \
|
|
||||||
"#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
|
|
||||||
|
|
||||||
script:
|
|
||||||
- if test "x$BUILD" = xmake; then
|
|
||||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
|
||||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
|
||||||
export CC="$CC -isystem`pwd`";
|
|
||||||
|
|
||||||
./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
|
|
@@ -1,112 +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-unused-parameter \
|
|
||||||
-Wno-date-time \
|
|
||||||
-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_FUNC_ATTRIBUTE_FLATTEN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_PACKED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_ALIAS \
|
|
||||||
-DHAVE___BUILTIN_CTZ \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNT \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNTLL \
|
|
||||||
-DHAVE___BUILTIN_CLZ \
|
|
||||||
-DHAVE___BUILTIN_CLZLL \
|
|
||||||
-DHAVE___BUILTIN_UNREACHABLE \
|
|
||||||
-DHAVE_PTHREAD=1 \
|
|
||||||
-DHAVE_DLOPEN \
|
|
||||||
-DHAVE_DL_ITERATE_PHDR \
|
|
||||||
-DMAJOR_IN_SYSMACROS \
|
|
||||||
-fvisibility=hidden \
|
|
||||||
-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
|
|
||||||
|
|
||||||
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=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
|
|
||||||
# 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))
|
|
120
Android.mk
120
Android.mk
@@ -1,120 +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_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
|
|
||||||
$(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 O,$(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_release)/*/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
|
|
1082
Make-config
Normal file
1082
Make-config
Normal file
File diff suppressed because it is too large
Load Diff
108
Makefile.DJ
Normal file
108
Makefile.DJ
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 4.0
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999 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.
|
||||||
|
|
||||||
|
# DOS/DJGPP makefile v1.4 for Mesa
|
||||||
|
#
|
||||||
|
# Copyright (C) 2002 - Borca Daniel
|
||||||
|
# Email : dborca@users.sourceforge.net
|
||||||
|
# Web : http://www.geocities.com/dborca
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Available options:
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# CPU optimize for the given processor.
|
||||||
|
# default = pentium
|
||||||
|
# GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
|
||||||
|
# or `mesa'.
|
||||||
|
# default = mesa
|
||||||
|
# GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
# default = $(TOP)/glide3
|
||||||
|
# FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
# compilation of most DMesa code and requires fxMesa.
|
||||||
|
# As a consequence, you'll need the DJGPP Glide3
|
||||||
|
# library to build any application.
|
||||||
|
# default = no
|
||||||
|
# MATROX=1 build for Matrox Millennium I (MGA2064W) cards.
|
||||||
|
# This is experimental and not intensively tested.
|
||||||
|
# default = no
|
||||||
|
# HAVE_X86=1 optimize for i386.
|
||||||
|
# default = no
|
||||||
|
# HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
# supports MMX instruction set. However, the true CPU
|
||||||
|
# capabilities are checked at run-time to avoid crashes.
|
||||||
|
# default = no
|
||||||
|
# HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
# HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
#
|
||||||
|
# Targets:
|
||||||
|
# all: build everything
|
||||||
|
# libgl: build GL
|
||||||
|
# libglu: build GLU
|
||||||
|
# libglut: build GLUT
|
||||||
|
# clean: remove object files
|
||||||
|
# realclean: remove all generated files
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY : all libgl libglu libglut clean realclean
|
||||||
|
|
||||||
|
CPU ?= pentium
|
||||||
|
|
||||||
|
GLU ?= mesa
|
||||||
|
|
||||||
|
CFLAGS = -Wall -W -pedantic
|
||||||
|
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
|
||||||
|
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
||||||
|
UNLINK = del $(subst /,\,$(1))
|
||||||
|
else
|
||||||
|
UNLINK = $(RM) $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: libgl libglu libglut
|
||||||
|
|
||||||
|
libgl: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/mesa
|
||||||
|
libglu: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/glu/$(GLU)
|
||||||
|
libglut: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/glut/dos
|
||||||
|
|
||||||
|
lib:
|
||||||
|
mkdir lib
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/mesa
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glu/mesa
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glu/sgi
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glut/dos
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
-$(call UNLINK,lib/*.a)
|
||||||
|
-$(call UNLINK,lib/*.dxe)
|
671
Makefile.X11
Normal file
671
Makefile.X11
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
# $Id: Makefile.X11,v 1.90 2003/10/03 14:03:14 brianp Exp $
|
||||||
|
|
||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 5.1
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999-2003 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 beos-r4 for BeOS R4"
|
||||||
|
@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 freebsd for FreeBSD systems with GCC"
|
||||||
|
@echo " make freebsd-386 for FreeBSD systems with GCC, w/ Intel assembly"
|
||||||
|
@echo " make gcc-sl for a generic system with GCC for shared libs"
|
||||||
|
@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 and 11.x"
|
||||||
|
@echo " make hpux10-sl for HP systems with HPUX 10.x and 11.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 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"
|
||||||
|
@echo " make linux-x86 for Linux with x86 optimizations"
|
||||||
|
@echo " make linux-ggi for Linux with libggi driver"
|
||||||
|
@echo " make linux-x86-ggi for Linux with libggi driver and x86 optimizations"
|
||||||
|
@echo " make linux-glide for Linux with 3Dfx Glide driver"
|
||||||
|
@echo " make linux-x86-glide for Linux with 3Dfx Glide driver and x86 opts"
|
||||||
|
@echo " make linux-alpha for Linux with Alpha optimizations"
|
||||||
|
@echo " make linux-alpha-static for Linux with Alpha opts, make static libs"
|
||||||
|
@echo " make linux-ppc for Linux with PowerPC opts"
|
||||||
|
@echo " make linux-ppc-static for Linux with PowerPC opts, make static libs"
|
||||||
|
@echo " make linux-sparc for Linux with Sparc optimzations"
|
||||||
|
@echo " make linux-sparc5 for Linux with Sparc5 optimizations"
|
||||||
|
@echo " make linux-sparc-ultra for Linux with UltraSparc optimizations"
|
||||||
|
@echo " make linux-osmesa16 for 16-bit/channel OSMesa"
|
||||||
|
@echo " make linux-osmesa32 for 32-bit/channel OSMesa"
|
||||||
|
@echo " make linux-solo for Linux standalone with dri drivers"
|
||||||
|
@echo " make linux-icc for Linux with the Intel C/C++ compiler"
|
||||||
|
@echo " make lynxos for LynxOS systems with GCC"
|
||||||
|
@echo " make mklinux for Linux on Power Macintosh"
|
||||||
|
@echo " make netbsd for NetBSD 1.0 systems with GCC"
|
||||||
|
@echo " make openbsd for OpenBSD systems"
|
||||||
|
@echo " make openstep for OpenStep/MacOSX Server systems"
|
||||||
|
@echo " make osf1 for DEC Alpha systems with OSF/1"
|
||||||
|
@echo " make qnx for QNX V4 systems with Watcom compiler"
|
||||||
|
@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-smp for Suns with SunOS 5.x, SMP optimization"
|
||||||
|
@echo " make sunos5-gcc for Suns with SunOS 5.x and GCC"
|
||||||
|
@echo " make ultrix-gcc for DEC systems with Ultrix and GCC"
|
||||||
|
@echo " make unixware for PCs running UnixWare"
|
||||||
|
@echo " make unixware-shared for PCs running UnixWare, shared libs"
|
||||||
|
@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 darwin freebsd freebsd-386 gcc-sl \
|
||||||
|
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
|
||||||
|
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
|
||||||
|
linux linux-debug \
|
||||||
|
linux-x86 linux-x86-sse linux-icc linux-x86-static linux-x86-debug \
|
||||||
|
linux-glide linux-x86-glide linux-glide-debug \
|
||||||
|
linux-alpha-static linux-alpha \
|
||||||
|
linux-ppc-static linux-ppc \
|
||||||
|
linux-sparc linux-sparc5 linux-sparc-ultra \
|
||||||
|
mklinux netbsd osf1 openbsd qnx \
|
||||||
|
solaris-x86 solaris-x86-gcc \
|
||||||
|
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
|
||||||
|
sunos5 sunos5-smp sunos5-gcc \
|
||||||
|
ultrix-gcc unixware:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
gcc-mesa-sl:
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl:
|
||||||
|
-mkdir lib32
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
irix6-64 irix6-64-dso:
|
||||||
|
-mkdir lib64
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
|
||||||
|
beos-r4:
|
||||||
|
-mkdir lib
|
||||||
|
-rm src/mesa/depend
|
||||||
|
touch src/mesa/depend
|
||||||
|
-rm src/glu/sgi/depend
|
||||||
|
touch src/glu/sgi/depend
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glut/beos ] ; then cd src/glut/beos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glut/beos ] ; then cp src/glut/beos/obj*/libglut.so lib ; fi
|
||||||
|
if [ -d progs/beos ] ; then cd progs/beos ; $(MAKE) ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
|
||||||
|
cygnus cygnus-linux:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
openstep:
|
||||||
|
-mkdir lib
|
||||||
|
cd src/mesa ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
cd src/glu/sgi ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
|
||||||
|
linux-ggi linux-x86-ggi:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src/glu/sgi/depend
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d ggi/demos ] ; then cd ggi/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(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-x86-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
|
||||||
|
|
||||||
|
linux-solo:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glx/mini ] ; then touch src/glx/mini/depend ; fi
|
||||||
|
if [ -d src/glu/mini ] ; then touch src/glu/mini/depend ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r200 ] ; then touch src/mesa/drivers/dri/r200/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r128 ] ; then touch src/mesa/drivers/dri/r128/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/radeon ] ; then touch src/mesa/drivers/dri/radeon/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/mga ] ; then touch src/mesa/drivers/dri/mga/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i810 ] ; then touch src/mesa/drivers/dri/i810/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i830 ] ; then touch src/mesa/drivers/dri/i830/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/sis ] ; then touch src/mesa/drivers/dri/sis/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/gamma ] ; then touch src/mesa/drivers/dri/gamma/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/fb ] ; then touch src/mesa/drivers/dri/fb/depend ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if [ -d progs/miniglx ] ; then touch progs/miniglx/depend ; fi
|
||||||
|
if [ -d progs/tests ] ; then touch progs/tests/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r200 ] ; then cd src/mesa/drivers/dri/r200 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r128 ] ; then cd src/mesa/drivers/dri/r128 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/radeon ] ; then cd src/mesa/drivers/dri/radeon ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/mga ] ; then cd src/mesa/drivers/dri/mga ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i810 ] ; then cd src/mesa/drivers/dri/i810 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i830 ] ; then cd src/mesa/drivers/dri/i830 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/sis ] ; then cd src/mesa/drivers/dri/sis ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/gamma ] ; then cd src/mesa/drivers/dri/gamma ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/fb ] ; then cd src/mesa/drivers/dri/fb ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glx/mini ] ; then cd src/glx/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/mini ] ; then cd src/glu/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then cd src/glut/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/miniglx ] ; then cd progs/miniglx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/tests ] ; then cd progs/tests ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
# Remove .o files, emacs backup files, etc.
|
||||||
|
clean:
|
||||||
|
if ! [ -f src/mesa/depend ] ; then touch src/mesa/depend ; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/r200/depend ]; then touch src/mesa/drivers/dri/r200/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/r128/depend ]; then touch src/mesa/drivers/dri/r128/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/radeon/depend ]; then touch src/mesa/drivers/dri/radeon/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/mga/depend ]; then touch src/mesa/drivers/dri/mga/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/fb/depend ]; then touch src/mesa/drivers/dri/fb/depend; fi
|
||||||
|
if ! [ -f src/glu/mesa/depend ] ; then touch src/glu/mesa/depend ; fi
|
||||||
|
if ! [ -f src/glu/sgi/depend ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if ! [ -f src/glu/mini/depend ] ; then touch src/glu/mini/depend ; fi
|
||||||
|
if ! [ -f src/glut/glx/depend ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if ! [ -f src/glut/mini/depend ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if ! [ -f src/glx/mini/depend ] ; then touch src/glx/mini/depend ; fi
|
||||||
|
if ! [ -f progs/tests/depend ] ; then touch progs/tests/depend ; fi
|
||||||
|
if ! [ -f progs/miniglx/depend ] ; then touch progs/miniglx/depend ; fi
|
||||||
|
-rm -f include/GL/*~
|
||||||
|
cd src/mesa && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/r200 && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/r128 && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/radeon && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/mga && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/fb && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/mesa && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/sgi && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glut/glx && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glut/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glw && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glx/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/demos && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/redbook && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/xdemos && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/samples && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/tests && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/miniglx && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
if [ -f src/mesa/depend ] ; then rm src/mesa/depend ; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/r200/depend ]; then rm -f src/mesa/drivers/dri/r200/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/r128/depend ]; then rm -f src/mesa/drivers/dri/r128/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/radeon/depend ]; then rm -f src/mesa/drivers/dri/radeon/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/mga/depend ]; then rm -f src/mesa/drivers/dri/mga/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/fb/depend ]; then rm -f src/mesa/drivers/dri/fb/depend; fi
|
||||||
|
if [ -f src/glu/mesa/depend ] ; then rm -f src/glu/mesa/depend ; fi
|
||||||
|
if [ -f src/glu/sgi/depend ] ; then rm -f src/glu/sgi/depend ; fi
|
||||||
|
if [ -f src/glu/mini/depend ] ; then rm -f src/glu/mini/depend ; fi
|
||||||
|
if [ -f src/glut/glx/depend ] ; then rm -f src/glut/glx/depend ; fi
|
||||||
|
if [ -f src/glut/mini/depend ] ; then rm -f src/glut/mini/depend ; fi
|
||||||
|
if [ -f src/glx/mini/depend ] ; then rm -f src/glx/mini/depend ; fi
|
||||||
|
if [ -f progs/tests/depend ] ; then rm -f progs/tests/depend ; fi
|
||||||
|
if [ -f progs/miniglx/depend ] ; then rm -f progs/miniglx/depend ; fi
|
||||||
|
|
||||||
|
# Remove everything that can be remade
|
||||||
|
realclean: clean
|
||||||
|
-rm -fr lib lib32 lib64
|
||||||
|
cd progs/demos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/xdemos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/redbook && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/samples && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
|
||||||
|
# Remove everything not in CVS
|
||||||
|
cvsclean: realclean
|
||||||
|
-rm -f acinclude.m4 aclocal.m4
|
||||||
|
-rm -f conf.h conf.h.in config.guess config.log config.status
|
||||||
|
-rm -f config.sub configure
|
||||||
|
-rm -f install-sh libtool ltmain.sh Makefile.in
|
||||||
|
-rm -f missing mkinstalldirs stamp-h stamp-h.in
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DIRECTORY = Mesa-5.1
|
||||||
|
LIB_NAME = MesaLib-5.1
|
||||||
|
DEMO_NAME = MesaDemos-5.1
|
||||||
|
GLU_NAME = MesaGLU-5.1
|
||||||
|
GLUT_NAME = GLUT-3.7
|
||||||
|
|
||||||
|
|
||||||
|
LIB_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/docs/*.html \
|
||||||
|
$(DIRECTORY)/docs/COPYING \
|
||||||
|
$(DIRECTORY)/docs/INSTALL.GNU \
|
||||||
|
$(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)/xlib.opt \
|
||||||
|
$(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/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/mesa/mesa.conf \
|
||||||
|
$(DIRECTORY)/src/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/mesa/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/array_cache/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/math/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast_setup/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/tornado/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/tornado/*.cdf \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/man3/*.3 \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/man3/*.html \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/dos/mga/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/beos/*.cpp \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/*.[Shc] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windows/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windows/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/*.S \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.win \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/glu.def \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/dummy.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/mesaglu.opt \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/gluos.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/README \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/libtess_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/libutil_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/README[12] \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glw/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glw/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glw/README \
|
||||||
|
$(DIRECTORY)/progs/util/README \
|
||||||
|
$(DIRECTORY)/progs/util/Makefile.am \
|
||||||
|
$(DIRECTORY)/progs/util/Makefile.in \
|
||||||
|
$(DIRECTORY)/progs/util/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/util/sampleMakefile \
|
||||||
|
$(DIRECTORY)/vms/analyze_map.com \
|
||||||
|
$(DIRECTORY)/vms/xlib.opt \
|
||||||
|
$(DIRECTORY)/vms/xlib_share.opt
|
||||||
|
|
||||||
|
|
||||||
|
DEMO_FILES = \
|
||||||
|
$(DIRECTORY)/include/GL/glut.h \
|
||||||
|
$(DIRECTORY)/include/GL/glutf90.h \
|
||||||
|
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glut/glx/depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*def \
|
||||||
|
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/Makefile.DJ \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/PC_HW/*.[chS] \
|
||||||
|
$(DIRECTORY)/progs/images/* \
|
||||||
|
$(DIRECTORY)/progs/demos/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/demos/descrip.mms \
|
||||||
|
$(DIRECTORY)/progs/demos/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/demos/*.cxx \
|
||||||
|
$(DIRECTORY)/progs/demos/*.dat \
|
||||||
|
$(DIRECTORY)/progs/demos/README \
|
||||||
|
$(DIRECTORY)/progs/xdemos/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/xdemos/descrip.mms \
|
||||||
|
$(DIRECTORY)/progs/xdemos/*.[chf] \
|
||||||
|
$(DIRECTORY)/progs/redbook/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/redbook/README \
|
||||||
|
$(DIRECTORY)/progs/redbook/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/samples/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/samples/README \
|
||||||
|
$(DIRECTORY)/progs/samples/*.c \
|
||||||
|
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
||||||
|
$(DIRECTORY)/progs/windml/*.c \
|
||||||
|
$(DIRECTORY)/progs/windml/*.bmp \
|
||||||
|
$(DIRECTORY)/progs/ggi/*.c
|
||||||
|
|
||||||
|
SI_GLU_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/gluos.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/README \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/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/mesa/README[12] \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.[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/glx/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glut/glx/depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*def \
|
||||||
|
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*.[ch]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
lib_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||||
|
gzip $(LIB_NAME).tar ; \
|
||||||
|
mv $(LIB_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_gz:
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||||
|
gzip $(DEMO_NAME).tar ; \
|
||||||
|
mv $(DEMO_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
lib_bz2:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||||
|
bzip2 $(LIB_NAME).tar ; \
|
||||||
|
mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_bz2:
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||||
|
bzip2 $(DEMO_NAME).tar ; \
|
||||||
|
mv $(DEMO_NAME).tar.bz2 $(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)
|
||||||
|
|
||||||
|
md5:
|
||||||
|
@-md5sum $(LIB_NAME).tar.gz
|
||||||
|
@-md5sum $(LIB_NAME).tar.bz2
|
||||||
|
@-md5sum $(LIB_NAME).zip
|
||||||
|
@-md5sum $(DEMO_NAME).tar.gz
|
||||||
|
@-md5sum $(DEMO_NAME).tar.bz2
|
||||||
|
@-md5sum $(DEMO_NAME).zip
|
||||||
|
|
||||||
|
# Everything for new Mesa release:
|
||||||
|
tarballs: lib_gz demo_gz lib_bz2 demo_bz2 lib_zip demo_zip md5
|
||||||
|
|
||||||
|
|
||||||
|
# not used
|
||||||
|
glu_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLU_NAME).tar $(GLU_FILES) ; \
|
||||||
|
gzip $(GLU_NAME).tar ; \
|
||||||
|
mv $(GLU_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
glut_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLUT_NAME).tar $(GLUT_FILES) ; \
|
||||||
|
gzip $(GLUT_NAME).tar ; \
|
||||||
|
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
|
80
Makefile.am
80
Makefile.am
@@ -1,80 +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-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,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.sh \
|
|
||||||
scons \
|
|
||||||
SConstruct
|
|
||||||
|
|
||||||
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/vc4_drm.h \
|
|
||||||
include/D3D9 \
|
|
||||||
include/GL/wglext.h \
|
|
||||||
include/HaikuGL \
|
|
||||||
include/no_extern_c.h \
|
|
||||||
include/pci_ids
|
|
||||||
|
|
||||||
# We list some directories in EXTRA_DIST, but don't actually want to include
|
|
||||||
# the .gitignore files in the tarball.
|
|
||||||
dist-hook:
|
|
||||||
find $(distdir) -name .gitignore -exec $(RM) {} +
|
|
91
Makefile.mgw
Normal file
91
Makefile.mgw
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 4.0
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999 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.
|
||||||
|
|
||||||
|
# MinGW makefile v1.0 for Mesa
|
||||||
|
#
|
||||||
|
# Copyright (C) 2002 - Borca Daniel
|
||||||
|
# Email : dborca@users.sourceforge.net
|
||||||
|
# Web : http://www.geocities.com/dborca
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Available options:
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# CPU optimize for the given processor.
|
||||||
|
# default = pentium
|
||||||
|
# GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
# default = $(TOP)/glide3
|
||||||
|
# FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
# compilation of most WMesa code and requires fxMesa.
|
||||||
|
# As a consequence, you'll need the Win32 Glide3
|
||||||
|
# library to build any application.
|
||||||
|
# default = no
|
||||||
|
# HAVE_X86=1 optimize for i386.
|
||||||
|
# default = no
|
||||||
|
# HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
# supports MMX instruction set. However, the true CPU
|
||||||
|
# capabilities are checked at run-time to avoid crashes.
|
||||||
|
# default = no
|
||||||
|
# HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
# HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
#
|
||||||
|
# Targets:
|
||||||
|
# all: build everything
|
||||||
|
# libgl: build GL
|
||||||
|
# clean: remove object files
|
||||||
|
# realclean: remove all generated files
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY : all libgl clean realclean
|
||||||
|
|
||||||
|
CPU ?= pentium
|
||||||
|
|
||||||
|
CFLAGS = -Wall -W -pedantic
|
||||||
|
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
|
||||||
|
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
||||||
|
UNLINK = del $(subst /,\,$(1))
|
||||||
|
else
|
||||||
|
UNLINK = $(RM) $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: libgl
|
||||||
|
|
||||||
|
libgl: lib
|
||||||
|
$(MAKE) -f Makefile.mgw -C src/mesa
|
||||||
|
|
||||||
|
lib:
|
||||||
|
mkdir lib
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(MAKE) -f Makefile.mgw clean -C src/mesa
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
-$(call UNLINK,lib/*.a)
|
||||||
|
-$(call UNLINK,lib/*.dll)
|
179
Mesa.dsw
Normal file
179
Mesa.dsw
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||||
|
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "array_cache"=".\SRC\MESA\array_cache\array_cache.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "gdi"=".\src\mesa\drivers\windows\gdi\gdi.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name array_cache
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name main
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name math
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name swrast_setup
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name swrast
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name tnl
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name glapi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glapi"=".\SRC\MESA\glapi\glapi.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glu"=".\src\glu\sgi\glu.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name gdi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glut"=".\src\glut\glx\glut.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name glu
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "main"=".\SRC\MESA\main\main.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "math"=".\SRC\MESA\math\math.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "osmesa"=".\SRC\MESA\DRIVERS\osmesa\osmesa.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name gdi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "swrast"=".\SRC\MESA\swrast\swrast.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "swrast_setup"=".\SRC\MESA\swrast_setup\swrast_setup.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "tnl"=".\SRC\MESA\tnl\tnl.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Global:
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<3>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
122
REVIEWERS
122
REVIEWERS
@@ -1,122 +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/
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
ANDROID EGL SUPPORT
|
|
||||||
R: Rob Herring <robh@kernel.org>
|
|
||||||
R: Tomasz Figa <tfiga@chromium.org>
|
|
||||||
F: src/egl/drivers/dri2/platform_android.c
|
|
||||||
|
|
||||||
WAYLAND EGL SUPPORT
|
|
||||||
R: Daniel Stone <daniels@collabora.com>
|
|
||||||
F: src/egl/wayland/*
|
|
||||||
F: src/egl/drivers/dri2/platform_wayland.c
|
|
||||||
|
|
||||||
FREEDRENO
|
|
||||||
R: Rob Clark <robclark@freedesktop.org>
|
|
||||||
F: src/gallium/drivers/freedreno/
|
|
||||||
|
|
||||||
GLX
|
|
||||||
R: Adam Jackson <ajax@redhat.com>
|
|
||||||
F: src/glx/
|
|
160
SConstruct
160
SConstruct
@@ -1,160 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Top-level SConstruct
|
|
||||||
#
|
|
||||||
# For example, invoke scons as
|
|
||||||
#
|
|
||||||
# scons build=debug llvm=yes machine=x86
|
|
||||||
#
|
|
||||||
# to set configuration variables. Or you can write those options to a file
|
|
||||||
# named config.py:
|
|
||||||
#
|
|
||||||
# # config.py
|
|
||||||
# build='debug'
|
|
||||||
# llvm=True
|
|
||||||
# machine='x86'
|
|
||||||
#
|
|
||||||
# Invoke
|
|
||||||
#
|
|
||||||
# scons -h
|
|
||||||
#
|
|
||||||
# to get the full list of options. See scons manpage for more info.
|
|
||||||
#
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import sys
|
|
||||||
import SCons.Util
|
|
||||||
|
|
||||||
import common
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Configuration options
|
|
||||||
|
|
||||||
opts = Variables('config.py')
|
|
||||||
common.AddOptions(opts)
|
|
||||||
|
|
||||||
env = Environment(
|
|
||||||
options = opts,
|
|
||||||
tools = ['gallium'],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# XXX: This creates a many problems as it saves...
|
|
||||||
#opts.Save('config.py', env)
|
|
||||||
|
|
||||||
# Backwards compatability with old target configuration variable
|
|
||||||
try:
|
|
||||||
targets = ARGUMENTS['targets']
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
targets = targets.split(',')
|
|
||||||
print('scons: warning: targets option is deprecated; pass the targets on their own such as')
|
|
||||||
print()
|
|
||||||
print(' scons %s' % ' '.join(targets))
|
|
||||||
print()
|
|
||||||
COMMAND_LINE_TARGETS.append(targets)
|
|
||||||
|
|
||||||
|
|
||||||
Help(opts.GenerateHelpText(env))
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Environment setup
|
|
||||||
|
|
||||||
with open("VERSION") as f:
|
|
||||||
mesa_version = f.read().strip()
|
|
||||||
env.Append(CPPDEFINES = [
|
|
||||||
('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
|
|
||||||
('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
|
|
||||||
])
|
|
||||||
|
|
||||||
# Includes
|
|
||||||
env.Prepend(CPPPATH = [
|
|
||||||
'#/include',
|
|
||||||
])
|
|
||||||
env.Append(CPPPATH = [
|
|
||||||
'#/src/gallium/include',
|
|
||||||
'#/src/gallium/auxiliary',
|
|
||||||
'#/src/gallium/drivers',
|
|
||||||
'#/src/gallium/winsys',
|
|
||||||
])
|
|
||||||
|
|
||||||
# for debugging
|
|
||||||
#print env.Dump()
|
|
||||||
|
|
||||||
|
|
||||||
# Add a check target for running tests
|
|
||||||
check = env.Alias('check')
|
|
||||||
env.AlwaysBuild(check)
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke host SConscripts
|
|
||||||
#
|
|
||||||
# For things that are meant to be run on the native host build machine, instead
|
|
||||||
# of the target machine.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Create host environent
|
|
||||||
if env['crosscompile'] and not env['embedded']:
|
|
||||||
host_env = Environment(
|
|
||||||
options = opts,
|
|
||||||
# no tool used
|
|
||||||
tools = [],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Override options
|
|
||||||
host_env['platform'] = common.host_platform
|
|
||||||
host_env['machine'] = common.host_machine
|
|
||||||
host_env['toolchain'] = 'default'
|
|
||||||
host_env['llvm'] = False
|
|
||||||
|
|
||||||
host_env.Tool('gallium')
|
|
||||||
|
|
||||||
host_env['hostonly'] = True
|
|
||||||
assert host_env['crosscompile'] == False
|
|
||||||
|
|
||||||
target_env = env
|
|
||||||
env = host_env
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = host_env['build_dir'],
|
|
||||||
duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
env = target_env
|
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke SConscripts
|
|
||||||
|
|
||||||
# TODO: Build several variants at the same time?
|
|
||||||
# http://www.scons.org/wiki/SimultaneousVariantBuilds
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = env['build_dir'],
|
|
||||||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# List all aliases
|
|
||||||
|
|
||||||
try:
|
|
||||||
from SCons.Node.Alias import default_ans
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
aliases = default_ans.keys()
|
|
||||||
aliases.sort()
|
|
||||||
env.Help('\n')
|
|
||||||
env.Help('Recognized targets:\n')
|
|
||||||
for alias in aliases:
|
|
||||||
env.Help(' %s\n' % alias)
|
|
82
appveyor.yml
82
appveyor.yml
@@ -1,82 +0,0 @@
|
|||||||
# http://www.appveyor.com/docs/appveyor-yml
|
|
||||||
#
|
|
||||||
# To setup AppVeyor for your own personal repositories do the following:
|
|
||||||
# - Sign up
|
|
||||||
# - Add a new project
|
|
||||||
# - Select Git and fill in the Git clone URL
|
|
||||||
# - Setup a Git hook as explained in
|
|
||||||
# https://github.com/appveyor/webhooks#installing-git-hook
|
|
||||||
# - Check 'Settings > General > Skip branches without appveyor.yml'
|
|
||||||
# - Check 'Settings > General > Rolling builds'
|
|
||||||
# - Setup the global or project notifications to your liking
|
|
||||||
#
|
|
||||||
# Note that kicking (or restarting) a build via the web UI will not work, as it
|
|
||||||
# will fail to find appveyor.yml . The Git hook is the most practical way to
|
|
||||||
# kick a build.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
|
|
||||||
# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
|
|
||||||
|
|
||||||
version: '{build}'
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- /^travis.*$/
|
|
||||||
|
|
||||||
# Don't download the full Mesa history to speed up cloning. However the clone
|
|
||||||
# depth must not be too small, otherwise builds might fail when lots of patches
|
|
||||||
# are committed in succession, because the desired commit is not found on the
|
|
||||||
# truncated history.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
|
|
||||||
clone_depth: 100
|
|
||||||
|
|
||||||
cache:
|
|
||||||
- win_flex_bison-2.5.9.zip
|
|
||||||
- llvm-3.3.1-msvc2013-mtd.7z
|
|
||||||
|
|
||||||
os: Visual Studio 2013
|
|
||||||
|
|
||||||
environment:
|
|
||||||
WINFLEXBISON_ARCHIVE: win_flex_bison-2.5.9.zip
|
|
||||||
LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z
|
|
||||||
|
|
||||||
install:
|
|
||||||
# Check pip
|
|
||||||
- python --version
|
|
||||||
- python -m pip --version
|
|
||||||
# Install Mako
|
|
||||||
- python -m pip install Mako==1.0.6
|
|
||||||
# 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==2.5.1
|
|
||||||
- scons --version
|
|
||||||
# Install flex/bison
|
|
||||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
|
|
||||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
|
||||||
- set Path=%CD%\winflexbison;%Path%
|
|
||||||
- win_flex --version
|
|
||||||
- win_bison --version
|
|
||||||
# Download and extract LLVM
|
|
||||||
- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
|
|
||||||
- 7z x -y "%LLVM_ARCHIVE%" > nul
|
|
||||||
- mkdir llvm\bin
|
|
||||||
- set LLVM=%CD%\llvm
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1
|
|
||||||
|
|
||||||
after_build:
|
|
||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1 check
|
|
||||||
|
|
||||||
|
|
||||||
# It's possible to setup notification here, as described in
|
|
||||||
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
|
|
||||||
# doing so would cause the notification settings to be replicated across all
|
|
||||||
# repos, which is most likely undesired. So it's better to rely on the
|
|
||||||
# Appveyor global/project notification settings.
|
|
14
autogen.sh
14
autogen.sh
@@ -1,14 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
srcdir=`dirname "$0"`
|
|
||||||
test -z "$srcdir" && srcdir=.
|
|
||||||
|
|
||||||
ORIGDIR=`pwd`
|
|
||||||
cd "$srcdir"
|
|
||||||
|
|
||||||
autoreconf --force --verbose --install || exit 1
|
|
||||||
cd "$ORIGDIR" || exit $?
|
|
||||||
|
|
||||||
if test -z "$NOCONFIGURE"; then
|
|
||||||
"$srcdir"/configure "$@"
|
|
||||||
fi
|
|
@@ -1,41 +0,0 @@
|
|||||||
# fixes: The commits are too invasive for stable. Instead the offending patches
|
|
||||||
# causing regressions have been reverted.
|
|
||||||
365d34540f331df57780dddf8da87235be0a6bcb mesa: correctly calculate the storage offset for i915
|
|
||||||
de0e62e1065e2d9172acf3ab7c70bba0160125c8 st/mesa: correctly calculate the storage offset
|
|
||||||
|
|
||||||
# stable: Add loader::getCapability patches. It's rather invasive infra
|
|
||||||
# not suitable as a bugfix.
|
|
||||||
1bf703e4ea5c4f742bc7ba55d01e5afc3f4e11f9 dri_interface,egl,gallium: only expose RGBA visuals on Android
|
|
||||||
be5773fa8dfe9255d9abaf5c7d5bbbd2d922da08 Android: fix compile error for DRI2 loader getCapability
|
|
||||||
31a6750988d7dd431f72ff1ff11bfca83bde5d8c st/dri: NULL check before deref DRI loader .getCapability
|
|
||||||
|
|
||||||
# stable: The commit addresses code that did not land in the stable branch
|
|
||||||
31bb8517a194af733deefe2d821537d994d39365 radv/gfx9: fix tile swizzle handling for gfx9
|
|
||||||
|
|
||||||
# stable: Commit is not applicable when 4fab67a4415 is missing.
|
|
||||||
d496780fb2c7f2cf0e32b6a79dc528e5156dfcb3 intel/eu/validate: Look up types on demand in execution_type()
|
|
||||||
|
|
||||||
# fixes: Depend on preseding commit which adds new public GBM API
|
|
||||||
3a5e3aa5a53cff55a5e31766d713a41ffa5a93d7 egl/drm: Fix misused x and y offsets in swrast_put_image2()
|
|
||||||
fe2a6281b3b299998fe7399e7dbcc2077d773824 egl/drm: Fix misused x and y offsets in swrast_get_image()
|
|
||||||
|
|
||||||
# fixes: This commit addressed an earlier commit c7e9ebb3ab8 which did not
|
|
||||||
# land in branch
|
|
||||||
45c5c444518b7e83d9accd9f44702fa49282a3b8 radeonsi/gfx9: proper workaround for LS/HS VGPR initialization bug
|
|
||||||
|
|
||||||
# fixes: This commit addressed earlier commits 61ad2f13 and 6dcc54b4 which did
|
|
||||||
# not land in branch
|
|
||||||
979978ee06867a531b8d56cee252f5c83920a339 radv: Check for GFX9 for 1D arrays in image_size intrinsic.
|
|
||||||
|
|
||||||
# fixes: This commit addressed earlier commits dcf46e99 and 60878dd0 which did
|
|
||||||
# not land in branch
|
|
||||||
8e9e339c530c7b82b5a29d4b3183e8f5a01eae28 radv: copy the number of viewports/scissors at pipeline bind time
|
|
||||||
|
|
||||||
# stable: The commit regresses a few dEQP tests. Namely:
|
|
||||||
# dEQP-VK.api.copy_and_blit.core.buffer_to_buffer.partial
|
|
||||||
# dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_buffer.partial
|
|
||||||
14555d0b7a51bd3701764fd213c2459410143431 anv: Remove unreachable cases from isl_format_for_size()
|
|
||||||
|
|
||||||
# stable: The commit addresses earlier commit a62a9793357 which is no applicable
|
|
||||||
# for the stable branch
|
|
||||||
6c7720ed78db754d52f204cbb74897aa9e65ea7e anv/wsi: Allocate enough memory for the entire image
|
|
@@ -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 $* | 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,81 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates [referenced by a Fixes tag] for
|
|
||||||
# cherry-picking to a stable branch
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-fixes-pick-list.sh
|
|
||||||
# $ bin/get-fixes-pick-list.sh > picklist
|
|
||||||
# $ bin/get-fixes-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# 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 --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 commits with Fixes tag
|
|
||||||
git log --reverse --pretty=%H -i --grep="fixes:" $latest_branchpoint..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list ...
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Skip if it has been already cherry-picked.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Place every "fixes:" tag on its own line and join with the next word
|
|
||||||
# on its line or a later one.
|
|
||||||
fixes=`git show -s $sha | tr -d "\n" | sed -e 's/fixes:[[:space:]]*/\nfixes:/Ig' | grep "fixes:" | sed -e 's/\(fixes:[a-zA-Z0-9]*\).*$/\1/'`
|
|
||||||
|
|
||||||
# For each one try to extract the tag
|
|
||||||
fixes_count=`echo "$fixes" | wc -l`
|
|
||||||
warn=`(test $fixes_count -gt 1 && echo $fixes_count) || echo 0`
|
|
||||||
while [ $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 [ "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
|
|
||||||
|
|
||||||
printf "Commit \"%s\" fixes %s\n" \
|
|
||||||
"`git log -n1 --pretty=oneline $sha`" \
|
|
||||||
"$id"
|
|
||||||
warn=$(($warn-1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $warn -gt 0 ] ; then
|
|
||||||
printf "WARNING: Commit \"%s\" has more than one Fixes tag\n" \
|
|
||||||
"`git log -n1 --pretty=oneline $sha`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
rm -f already_landed
|
|
@@ -1,38 +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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Grep for commits that were marked as a candidate for the stable tree.
|
|
||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable' $latest_branchpoint..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if it has already been picked over.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
git log -n1 --pretty=oneline $sha | cat
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates which have typos in the nomination line
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-typod-pick-list.sh
|
|
||||||
# $ bin/get-typod-pick-list.sh > picklist
|
|
||||||
# $ bin/get-typod-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# NB:
|
|
||||||
# This script intentionally _never_ checks for specific version tag
|
|
||||||
# Should we consider folding it with the original get-pick-list.sh
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Grep for commits that were marked as a candidate for the stable tree.
|
|
||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' $latest_branchpoint..origin/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if it has already been picked over.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
git log -n1 --pretty=oneline $sha | cat
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# run git from the sources directory
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
|
|
||||||
# don't print anything if git fails
|
|
||||||
if ! git_sha1=$(git --git-dir=../.git rev-parse --short=10 HEAD 2>/dev/null)
|
|
||||||
then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf '#define MESA_GIT_SHA1 "git-%s"\n' "$git_sha1"
|
|
331
bin/mklib
Executable file
331
bin/mklib
Executable file
@@ -0,0 +1,331 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make a shared library.
|
||||||
|
# Basically do a switch/case depending on the OS and make a shared
|
||||||
|
# lib conforming to that OS.
|
||||||
|
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# mklib [options] objects ...
|
||||||
|
# Options:
|
||||||
|
# -o LIBRARY specifies the name of resulting library ("GL" for example)
|
||||||
|
# -major N specifies major version number (default is 1)
|
||||||
|
# -minor N specifies minor version number (default is 0)
|
||||||
|
# -patch N specifies patch version number (default is 0)
|
||||||
|
# -lLIBRARY specifies a dependency on LIBRARY
|
||||||
|
# -LDIR search in DIR for library dependencies
|
||||||
|
# -cplusplus link with C++ runtime
|
||||||
|
# -static make a static library (default is dynamic/shared)
|
||||||
|
# -install DIR move resulting library files to DIR
|
||||||
|
# -arch ARCH override using `uname` to determine architecture
|
||||||
|
# -archopt OPT specify an extra achitecture-specific option OPT
|
||||||
|
#
|
||||||
|
# The library name should just be "GL" or "GLU", etc. The 'lib' prefix
|
||||||
|
# will be added here if needed, as well as the ".so" or ".a" suffix, etc.
|
||||||
|
#
|
||||||
|
# objects should be: foo.o bar.o etc.o
|
||||||
|
#
|
||||||
|
# Environment variables recognized:
|
||||||
|
# CC C compiler command
|
||||||
|
# CXX C++ compiler command
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Option defaults
|
||||||
|
#
|
||||||
|
LIBNAME=""
|
||||||
|
MAJOR=1
|
||||||
|
MINOR=0
|
||||||
|
PATCH=0
|
||||||
|
DEPS=""
|
||||||
|
CPLUSPLUS=0
|
||||||
|
STATIC=0
|
||||||
|
INSTALLDIR="."
|
||||||
|
ARCH="auto"
|
||||||
|
ARCHOPT=""
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse arguments
|
||||||
|
#
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
'-o') shift 1; LIBNAME=$1;;
|
||||||
|
'-major') shift 1; MAJOR=$1;;
|
||||||
|
'-minor') shift 1; MINOR=$1;;
|
||||||
|
'-patch') shift 1; PATCH=$1;;
|
||||||
|
-l*) DEPS="$DEPS $1";;
|
||||||
|
-L*) DEPS="$DEPS $1";;
|
||||||
|
'-cplusplus') CPLUSPLUS=1;;
|
||||||
|
'-static') STATIC=1;;
|
||||||
|
'-install') shift 1; INSTALLDIR=$1;;
|
||||||
|
'-arch') shift 1; ARCH=$1;;
|
||||||
|
'-archopt') shift 1; ARCHOPT=$1;;
|
||||||
|
-*) echo "mklib: Unknown option: " $1 ; exit 1;;
|
||||||
|
*) break
|
||||||
|
esac
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
OBJECTS=$@
|
||||||
|
|
||||||
|
if [ ${ARCH} = "auto" ] ; then
|
||||||
|
ARCH=`uname`
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Error checking
|
||||||
|
#
|
||||||
|
if [ "x${LIBNAME}" = "x" ] ; then
|
||||||
|
echo "mklib: Error: no library name specified"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "x${OBJECTS}" = "x" ] ; then
|
||||||
|
echo "mklib: Error: no object files specified"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Debugging info
|
||||||
|
#
|
||||||
|
if [ ] ; then
|
||||||
|
echo "-----------------"
|
||||||
|
echo ARCH is $ARCH
|
||||||
|
echo LIBNAME is $LIBNAME
|
||||||
|
echo MAJOR is $MAJOR
|
||||||
|
echo MINOR is $MINOR
|
||||||
|
echo PATCH is $PATCH
|
||||||
|
echo DEPS are $DEPS
|
||||||
|
echo "-----------------"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# OK, make the library now
|
||||||
|
#
|
||||||
|
case $ARCH in
|
||||||
|
|
||||||
|
'Linux')
|
||||||
|
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
||||||
|
OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
|
||||||
|
VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
||||||
|
|
||||||
|
echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
|
||||||
|
|
||||||
|
if [ $CPLUSPLUS = 1 ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
else
|
||||||
|
LINK="gcc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# rm any old libs
|
||||||
|
rm -f ${LIBNAME}.so.${VERSION}
|
||||||
|
rm -f ${LIBNAME}.so.${MAJOR}
|
||||||
|
rm -f ${LIBNAME}.so
|
||||||
|
|
||||||
|
# make lib
|
||||||
|
${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
|
||||||
|
# make usual symlinks
|
||||||
|
ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
|
||||||
|
ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
|
||||||
|
# finish up
|
||||||
|
FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'SunOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
echo "mklib: Making SunOS shared library: " ${LIBNAME}
|
||||||
|
OPTS="-G"
|
||||||
|
if [ $CPLUSPLUS = 1 ] ; then
|
||||||
|
# link for C++
|
||||||
|
if [ "x${CXX}" = "xg++" ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
elif [ "x${CXX}" = "xCC" ] ; then
|
||||||
|
LINK="CC"
|
||||||
|
elif [ `which c++` ] ; then
|
||||||
|
LINK="c++"
|
||||||
|
elif [ `type g++` ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
else
|
||||||
|
echo "mklib: warning: can't find C++ comiler, trying CC."
|
||||||
|
LINK="CC"
|
||||||
|
fi
|
||||||
|
elif [ "x${CC}" = "xgcc" ] ; then
|
||||||
|
# use gcc for linking
|
||||||
|
LINK="gcc"
|
||||||
|
else
|
||||||
|
# use native Sun linker
|
||||||
|
LINK="ld"
|
||||||
|
fi
|
||||||
|
echo "mklib: linker is " ${LINK}
|
||||||
|
rm -f ${LIBNAME}
|
||||||
|
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'FreeBSD')
|
||||||
|
SHLIB="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
|
||||||
|
STLIB="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making FreeBSD shared library: " ${SHLIB}
|
||||||
|
rm -f ${SHLIB} ${STLIB}
|
||||||
|
ar cq ${STLIB} ${OBJECTS}
|
||||||
|
ranlib ${STLIB}
|
||||||
|
ld -Bshareable -o ${SHLIB} ${OBJECTS}
|
||||||
|
# XXX make lib${LIBNAME}.so.${MAJOR} symlink?
|
||||||
|
FINAL_LIBS="${SHLIB} ${STLIB}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OpenBSD')
|
||||||
|
LIBNAME="lib${LIBNAME}"
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
echo "Building OpenBSD PIC library: " ${LIBNAME}
|
||||||
|
rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
|
||||||
|
ar cq ${LIBNAME}_pic.a ${OBJECTS}
|
||||||
|
ranlib ${LIBNAME}_pic.a
|
||||||
|
ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
|
||||||
|
ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so
|
||||||
|
FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION} ${LIBNAME}.so"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'NetBSD')
|
||||||
|
LIBNAME="lib${LIBNAME}"
|
||||||
|
echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
|
||||||
|
ar cq ${LIBNAME}_pic.a ${OBJECTS}
|
||||||
|
ranlib ${LIBNAME}_pic.a
|
||||||
|
ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
|
||||||
|
FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'IRIX')
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||||
|
if [ $ARCHOPTS = "64" ] ; then
|
||||||
|
# 64-bit ABI
|
||||||
|
OPTS="-64 -shared -all"
|
||||||
|
echo "mklib: Making IRIX 64-bit shared library: " ${LIBNAME}
|
||||||
|
elif [ $ARCHOPTS = "o32" ] ; then
|
||||||
|
# old 32-bit ABI
|
||||||
|
OPTS="-32 -shared -all"
|
||||||
|
echo "mklib: Making IRIX o32-bit shared library: " ${LIBNAME}
|
||||||
|
else
|
||||||
|
# new 32-bit ABI
|
||||||
|
OPTS="-n32 -shared -all"
|
||||||
|
echo "mklib: Making IRIX n32-bit shared library: " ${LIBNAME}
|
||||||
|
fi
|
||||||
|
ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'IRIX64')
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||||
|
echo "mklib: Making IRIX64 library: " ${LIBNAME}
|
||||||
|
# 64-bit ABI
|
||||||
|
OPTS="-64 -shared -all"
|
||||||
|
ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'linux-cygwin')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making linux-cygwin library: " ${LIBNAME}
|
||||||
|
gnuwin32ar ruv ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'HPUX')
|
||||||
|
RUNLIB="lib${LIBNAME}.${MAJOR}"
|
||||||
|
DEVLIB="lib${LIBNAME}.sl"
|
||||||
|
echo "mklib: Making HPUX library: " ${RUNLIB} ${DEVLIB}
|
||||||
|
ld -b -o ${RUNLIB} +b ${RUNLIB} ${OBJECTS} ${DEPS}
|
||||||
|
ln -s ${RUNLIB} ${DEVLIB}
|
||||||
|
FINAL_LIBS="{RUNLIB} ${DEVLIB}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OpenSTEP')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making OpenSTEP static library: " ${LIBNAME}
|
||||||
|
libtool -static -o ${LIBNAME} - ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OSF1')
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
ARNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making OSF/1 library: " ${LIBNAME}
|
||||||
|
rm -f ${LIBNAME}.${VERSION}
|
||||||
|
ld -o ${LIBNAME}.${VERSION} -shared -no_archive -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
|
||||||
|
ln -sf ${LIBNAME}.${VERSION} ${LIBNAME}
|
||||||
|
|
||||||
|
# also make static lib
|
||||||
|
rm -f ${ARNAME}
|
||||||
|
ar clqz ${ARNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS="${ARNAME} ${LIBNAME} ${LIBNAME}.${VERSION}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'Darwin')
|
||||||
|
VERSION="${MAJOR}.${MINOR}.${TINY}"
|
||||||
|
LIBNAME="lib${LIBNAME}.dylib"
|
||||||
|
ARNAME="lib${LIBNAME}.dylib.a"
|
||||||
|
echo "mklib: Making Darwin libraries: " ${LIBNAME} ${ARNAME}
|
||||||
|
FLAGS="-dynamiclib -multiply_defined suppress"
|
||||||
|
cc ${FLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
# also make regular .a files,
|
||||||
|
# provided by Danek Duvall (duvall@dhduvall.student.princeton.edu)
|
||||||
|
ar ruv ${ARNAME} ${OBJECTS}
|
||||||
|
ranlib ${ARNAME}
|
||||||
|
FINAL_LIBS="${ARNAME} ${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'LynxOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making LynxOS library: " ${LIBNAME}
|
||||||
|
ar ru ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'BeOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
echo "mklib: Making BeOS shared library: " ${LIBNAME}
|
||||||
|
gcc -nostart -Xlinker -soname=${LIBNAME} -L/Be/develop/lib/x86 ${OBJECTS} -lbe -o ${LIBNAME}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'QNX')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making QNX library: " ${LIBNAME}
|
||||||
|
wlib ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'example')
|
||||||
|
# If you're adding support for a new architecture, you can
|
||||||
|
# start with this:
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib"
|
||||||
|
echo "mklib: Making library for example arch: " ${LIBNAME}
|
||||||
|
ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "mklib: WARNING: making library for unknown platform!"
|
||||||
|
echo "mklib: WARNING: this may not work!"
|
||||||
|
echo "mklib: WARNING: please update the bin/mklib script!"
|
||||||
|
# XXX this is a total hack for Mesa - remove someday
|
||||||
|
# fall-back to an old mklib.* script
|
||||||
|
${MAKELIB} "lib${LIBNAME}.a" ${MAJOR} ${MINOR} ${PATCH} ${OBJECTS}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Put library files into installation directory if specified.
|
||||||
|
#
|
||||||
|
if [ ${INSTALLDIR} != "." ] ; then
|
||||||
|
echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
|
||||||
|
mv ${FINAL_LIBS} ${INSTALLDIR}/
|
||||||
|
fi
|
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
|
||||||
|
|
@@ -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
|
|
115
common.py
115
common.py
@@ -1,115 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Common SCons code
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import platform as _platform
|
|
||||||
|
|
||||||
import SCons.Script.SConscript
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Defaults
|
|
||||||
|
|
||||||
host_platform = _platform.system().lower()
|
|
||||||
if host_platform.startswith('cygwin'):
|
|
||||||
host_platform = 'cygwin'
|
|
||||||
|
|
||||||
# Search sys.argv[] for a "platform=foo" argument since we don't have
|
|
||||||
# an 'env' variable at this point.
|
|
||||||
if 'platform' in SCons.Script.ARGUMENTS:
|
|
||||||
target_platform = SCons.Script.ARGUMENTS['platform']
|
|
||||||
else:
|
|
||||||
target_platform = host_platform
|
|
||||||
|
|
||||||
_machine_map = {
|
|
||||||
'x86': 'x86',
|
|
||||||
'i386': 'x86',
|
|
||||||
'i486': 'x86',
|
|
||||||
'i586': 'x86',
|
|
||||||
'i686': 'x86',
|
|
||||||
'BePC': 'x86',
|
|
||||||
'Intel': 'x86',
|
|
||||||
'ppc': 'ppc',
|
|
||||||
'BeBox': 'ppc',
|
|
||||||
'BeMac': 'ppc',
|
|
||||||
'AMD64': 'x86_64',
|
|
||||||
'x86_64': 'x86_64',
|
|
||||||
'sparc': 'sparc',
|
|
||||||
'sun4u': 'sparc',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# find host_machine value
|
|
||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
|
|
||||||
host_machine = os.environ['PROCESSOR_ARCHITECTURE']
|
|
||||||
else:
|
|
||||||
host_machine = _platform.machine()
|
|
||||||
host_machine = _machine_map.get(host_machine, 'generic')
|
|
||||||
|
|
||||||
default_machine = host_machine
|
|
||||||
default_toolchain = 'default'
|
|
||||||
|
|
||||||
if target_platform == 'windows' and host_platform != 'windows':
|
|
||||||
default_machine = 'x86'
|
|
||||||
default_toolchain = 'crossmingw'
|
|
||||||
|
|
||||||
|
|
||||||
# find default_llvm value
|
|
||||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
else:
|
|
||||||
default_llvm = 'no'
|
|
||||||
try:
|
|
||||||
if target_platform != 'windows' and \
|
|
||||||
subprocess.call(['llvm-config', '--version'],
|
|
||||||
stdout=subprocess.PIPE) == 0:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Common options
|
|
||||||
|
|
||||||
def AddOptions(opts):
|
|
||||||
try:
|
|
||||||
from SCons.Variables.BoolVariable import BoolVariable as BoolOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.BoolOption import BoolOption
|
|
||||||
try:
|
|
||||||
from SCons.Variables.EnumVariable import EnumVariable as EnumOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.EnumOption import EnumOption
|
|
||||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
|
||||||
allowed_values=('debug', 'checked', 'profile',
|
|
||||||
'release', 'opt')))
|
|
||||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
|
||||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code',
|
|
||||||
default_machine,
|
|
||||||
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
|
|
||||||
opts.Add(EnumOption('platform', 'target platform', host_platform,
|
|
||||||
allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
|
|
||||||
'linux', 'sunos', 'windows')))
|
|
||||||
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
|
|
||||||
opts.Add(BoolOption('analyze',
|
|
||||||
'enable static code analysis where available', 'no'))
|
|
||||||
opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
|
|
||||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
|
||||||
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support',
|
|
||||||
'no'))
|
|
||||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
|
||||||
opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
|
|
||||||
'no'))
|
|
||||||
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
|
|
||||||
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
|
|
||||||
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
|
|
||||||
opts.Add(BoolOption('texture_float',
|
|
||||||
'enable floating-point textures and renderbuffers',
|
|
||||||
'no'))
|
|
||||||
opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
|
|
||||||
if host_platform == 'windows':
|
|
||||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
|
3133
configure.ac
3133
configure.ac
File diff suppressed because it is too large
Load Diff
21
descrip.mms
Normal file
21
descrip.mms
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Makefile for Mesa for VMS
|
||||||
|
# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl
|
||||||
|
|
||||||
|
macro :
|
||||||
|
@ macro=""
|
||||||
|
.ifdef NOSHARE
|
||||||
|
.else
|
||||||
|
@ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)"
|
||||||
|
.endif
|
||||||
|
$(MMS)$(MMSQUALIFIERS)'macro' all
|
||||||
|
|
||||||
|
all :
|
||||||
|
if f$search("lib.dir") .eqs. "" then create/directory [.lib]
|
||||||
|
set default [.src]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.progs.demos]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.xdemos]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.tests]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
@@ -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.
|
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
@@ -48,7 +48,7 @@ Issues
|
|||||||
|
|
||||||
New Procedures and Functions
|
New Procedures and Functions
|
||||||
|
|
||||||
unsigned int glXGetAGPOffsetMESA( const void *pointer )
|
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
||||||
|
|
||||||
New Tokens
|
New Tokens
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
|
|||||||
On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
|
On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
|
||||||
and freed with glXFreeMemoryNV. Sometimes it's useful to know where a
|
and freed with glXFreeMemoryNV. Sometimes it's useful to know where a
|
||||||
block of AGP memory is located with respect to the start of the AGP
|
block of AGP memory is located with respect to the start of the AGP
|
||||||
aperture. The function
|
aperature. The function
|
||||||
|
|
||||||
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
||||||
|
|
||||||
@@ -92,4 +92,3 @@ Revision History
|
|||||||
|
|
||||||
20 September 2002 - Initial draft
|
20 September 2002 - Initial draft
|
||||||
2 October 2002 - finished GLX chapter 3 additions
|
2 October 2002 - finished GLX chapter 3 additions
|
||||||
27 July 2004 - use unsigned int instead of GLuint, void instead of GLvoid
|
|
88
docs/MESA_copy_sub_buffer.spec
Normal file
88
docs/MESA_copy_sub_buffer.spec
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
Name
|
||||||
|
|
||||||
|
MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Name Strings
|
||||||
|
|
||||||
|
GLX_MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Contact
|
||||||
|
|
||||||
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Shipping since Mesa 2.6 in February, 1998.
|
||||||
|
|
||||||
|
Version
|
||||||
|
|
||||||
|
Last Modified Date: 8 June 2000
|
||||||
|
|
||||||
|
Number
|
||||||
|
|
||||||
|
215
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
|
||||||
|
OpenGL 1.0 or later is required.
|
||||||
|
GLX 1.0 or later is required.
|
||||||
|
|
||||||
|
Overview
|
||||||
|
|
||||||
|
The glxCopySubBufferMESA() function copies a rectangular region
|
||||||
|
of the back color buffer to the front color buffer. This can be
|
||||||
|
used to quickly repaint 3D windows in response to expose events
|
||||||
|
when the back color buffer cannot be damaged by other windows.
|
||||||
|
|
||||||
|
IP Status
|
||||||
|
|
||||||
|
Open-source; freely implementable.
|
||||||
|
|
||||||
|
Issues
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New Procedures and Functions
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
New Tokens
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
||||||
|
|
||||||
|
Add to section 3.3.10 Double Buffering:
|
||||||
|
|
||||||
|
The function
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
may be used to copy a rectangular region of the back color buffer to
|
||||||
|
the front color buffer. This can be used to quickly repaint 3D windows
|
||||||
|
in response to expose events when the back color buffer cannot be
|
||||||
|
damaged by other windows.
|
||||||
|
|
||||||
|
<x> and <y> indicates the lower-left corner of the region to copy and
|
||||||
|
<width> and <height> indicate the size in pixels. Coordinate (0,0)
|
||||||
|
corresponds to the lower-left pixel of the window, like glReadPixels.
|
||||||
|
|
||||||
|
GLX Protocol
|
||||||
|
|
||||||
|
None at this time. The extension is implemented in terms of ordinary
|
||||||
|
Xlib protocol inside of Mesa.
|
||||||
|
|
||||||
|
Errors
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New State
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Revision History
|
||||||
|
|
||||||
|
8 June 2000 - initial specification
|
||||||
|
|
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
@@ -48,7 +48,7 @@ IP Status
|
|||||||
|
|
||||||
Issues
|
Issues
|
||||||
|
|
||||||
1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc?
|
1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc?
|
||||||
|
|
||||||
Resolved: No, we're only concerned with pixel packing. There are other
|
Resolved: No, we're only concerned with pixel packing. There are other
|
||||||
solutions for inverting images when using glDrawPixels (negative Y pixel
|
solutions for inverting images when using glDrawPixels (negative Y pixel
|
@@ -17,6 +17,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_packed_depth_stencil.spec,v 1.2 2003/09/19 14:58:21 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 @ tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ Version
|
|||||||
|
|
||||||
Last Modified Date: July 20, 2003
|
Last Modified Date: July 20, 2003
|
||||||
Author Revision: 1.0
|
Author Revision: 1.0
|
||||||
|
$Date: 2003/09/23 14:46:11 $ $Revision: 1.3 $
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
@@ -31,12 +31,12 @@ Overview
|
|||||||
|
|
||||||
Mesa's implementation of GLX is entirely implemented on the client side.
|
Mesa's implementation of GLX is entirely implemented on the client side.
|
||||||
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
||||||
destroyed in order to free any ancillary data associated with the window
|
destroyed in order to free any ancilliary data associated with the window
|
||||||
or pixmap.
|
or pixmap.
|
||||||
|
|
||||||
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
||||||
when the back color buffer, depth buffer, stencil buffer, and/or accumu-
|
when the back color buffer, depth buffer, stencil buffer, and/or accum-
|
||||||
lation buffer associated with a drawable can be freed.
|
ulation buffer associated with a drawable can be freed.
|
||||||
|
|
||||||
IP Status
|
IP Status
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
|||||||
|
|
||||||
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
||||||
|
|
||||||
causes all software ancillary buffers (back buffer, depth, stencil,
|
causes all software ancilliary buffers (back buffer, depth, stencil,
|
||||||
accum, etc) associated with the named drawable to be immediately
|
accum, etc) associated with the named drawable to be immediately
|
||||||
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
||||||
else False is returned. After calling glXReleaseBuffersMESA, the
|
else False is returned. After calling glXReleaseBuffersMESA, the
|
@@ -8,14 +8,15 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, brianp 'at' mesa3d.org
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Shipping (since Mesa version 2.2)
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_resize_buffers.spec,v 1.2 2000/04/04 23:29:32 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ Overview
|
|||||||
|
|
||||||
Mesa's glViewport command queries the current window size and updates
|
Mesa's glViewport command queries the current window size and updates
|
||||||
its internal data structors accordingly. This normally works fine
|
its internal data structors accordingly. This normally works fine
|
||||||
since most applications call glViewport in response to window size
|
since most applications call glViewport in responce to window size
|
||||||
changes.
|
changes.
|
||||||
|
|
||||||
In some situations, however, the application may not call glViewport
|
In some situations, however, the application may not call glViewport
|
||||||
@@ -65,7 +66,7 @@ Additions to the AGL/GLX/WGL Specifications
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
INVALID_OPERATION is generated if glResizeBuffersMESA is called between
|
INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
|
||||||
Begin and End.
|
Begin and End.
|
||||||
|
|
||||||
New State
|
New State
|
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
@@ -16,6 +16,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_sprite_point.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
@@ -43,7 +43,7 @@ Issues
|
|||||||
|
|
||||||
New Procedures and Functions
|
New Procedures and Functions
|
||||||
|
|
||||||
int glXSwapIntervalMESA(unsigned int interval)
|
int glXSwapIntervalMESA(int interval)
|
||||||
int glXGetSwapIntervalMESA(void)
|
int glXGetSwapIntervalMESA(void)
|
||||||
|
|
||||||
New Tokens
|
New Tokens
|
||||||
@@ -88,8 +88,8 @@ Additions to the GLX 1.3 Specification
|
|||||||
this is typically the time required to display both the even and odd
|
this is typically the time required to display both the even and odd
|
||||||
fields of a frame of video data.
|
fields of a frame of video data.
|
||||||
|
|
||||||
If <interval> is set to a value of 0, buffer swaps are not synchro-
|
If <interval> is set to a value of 0, buffer swaps are not synchron-
|
||||||
nized to a video frame. The <interval> value is silently clamped to
|
ized to a video frame. The <interval> value is silently clamped to
|
||||||
the maximum implementation-dependent value supported before being
|
the maximum implementation-dependent value supported before being
|
||||||
stored.
|
stored.
|
||||||
|
|
||||||
@@ -103,8 +103,11 @@ Additions to the GLX 1.3 Specification
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
|
glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is
|
||||||
|
less than zero.
|
||||||
|
|
||||||
glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
|
glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
|
||||||
GLXContext or if the current context is not a direct rendering context.
|
GLXContext.
|
||||||
|
|
||||||
GLX Protocol
|
GLX Protocol
|
||||||
|
|
@@ -32,7 +32,7 @@ Dependencies
|
|||||||
|
|
||||||
Overview
|
Overview
|
||||||
|
|
||||||
This extension allows an application to determine what portion of the
|
This extension allows an application to deterine what portion of the
|
||||||
swap period has elapsed since the last swap operation completed. The
|
swap period has elapsed since the last swap operation completed. The
|
||||||
"usage" value is a floating point value on the range [0,max] which is
|
"usage" value is a floating point value on the range [0,max] which is
|
||||||
calculated as follows:
|
calculated as follows:
|
||||||
@@ -59,7 +59,7 @@ Overview
|
|||||||
is taken from the completion of one swap to the issuance of the next.
|
is taken from the completion of one swap to the issuance of the next.
|
||||||
This representation may not be as useful as measuring between
|
This representation may not be as useful as measuring between
|
||||||
completions, as a significant amount of time may pass between the
|
completions, as a significant amount of time may pass between the
|
||||||
issuance of a swap and the swap actually occurring.
|
issuance of a swap and the swap actually occuring.
|
||||||
|
|
||||||
There is also a mechanism to determine whether a frame swap was
|
There is also a mechanism to determine whether a frame swap was
|
||||||
missed.
|
missed.
|
||||||
@@ -110,7 +110,7 @@ Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests)
|
|||||||
Additions to the GLX 1.3 Specification
|
Additions to the GLX 1.3 Specification
|
||||||
|
|
||||||
The frame usage is measured as the percentage of the swap period elapsed
|
The frame usage is measured as the percentage of the swap period elapsed
|
||||||
between two buffer-swap operations being committed. In unextended GLX the
|
between two buffer-swap operations being commited. In unextened GLX the
|
||||||
swap period is the vertical refresh time. If SGI_swap_control or
|
swap period is the vertical refresh time. If SGI_swap_control or
|
||||||
MESA_swap_control are supported, the swap period is the vertical refresh
|
MESA_swap_control are supported, the swap period is the vertical refresh
|
||||||
time multiplied by the swap interval (or one if the swap interval is set
|
time multiplied by the swap interval (or one if the swap interval is set
|
||||||
@@ -119,7 +119,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
If OML_sync_control is supported, the swap period is the vertical
|
If OML_sync_control is supported, the swap period is the vertical
|
||||||
refresh time multiplied by the divisor parameter to
|
refresh time multiplied by the divisor parameter to
|
||||||
glXSwapBuffersMscOML. The frame usage in this case is less than 1.0 if
|
glXSwapBuffersMscOML. The frame usage in this case is less than 1.0 if
|
||||||
the swap is committed before target_msc, and is greater than or equal to
|
the swap is commited before target_msc, and is greater than or equal to
|
||||||
1.0 otherwise. The actual usage value is based on the divisor and is
|
1.0 otherwise. The actual usage value is based on the divisor and is
|
||||||
never less than 0.0.
|
never less than 0.0.
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
|
|
||||||
The current missed frame count and total number of swaps since
|
The current missed frame count and total number of swaps since
|
||||||
the last call to glXBeginFrameTrackingMESA can be obtained by
|
the last call to glXBeginFrameTrackingMESA can be obtained by
|
||||||
calling the following function:
|
callling the following function:
|
||||||
|
|
||||||
int glXQueryFrameTrackingMESA(Display *dpy,
|
int glXQueryFrameTrackingMESA(Display *dpy,
|
||||||
GLXDrawable drawable,
|
GLXDrawable drawable,
|
||||||
@@ -152,7 +152,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
float *lastMissedUsage)
|
float *lastMissedUsage)
|
||||||
|
|
||||||
The location pointed to by <swapCount> will be updated with the
|
The location pointed to by <swapCount> will be updated with the
|
||||||
number of swaps that have been committed. This value may not match the
|
number of swaps that have been commited. This value may not match the
|
||||||
number of swaps that have been requested since swaps may be
|
number of swaps that have been requested since swaps may be
|
||||||
queued by the implementation. This function can be called at any
|
queued by the implementation. This function can be called at any
|
||||||
time and does not synchronize to vertical blank.
|
time and does not synchronize to vertical blank.
|
||||||
@@ -171,7 +171,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
application can call glXQueryFrameTrackingMESA for a final swap and
|
application can call glXQueryFrameTrackingMESA for a final swap and
|
||||||
missed frame count.
|
missed frame count.
|
||||||
|
|
||||||
If these functions are successful, zero is returned. If the context
|
If these functions are succesful, zero is returned. If the context
|
||||||
associated with dpy and drawable is not a direct context,
|
associated with dpy and drawable is not a direct context,
|
||||||
GLX_BAD_CONTEXT is returned.
|
GLX_BAD_CONTEXT is returned.
|
||||||
|
|
@@ -4,7 +4,7 @@ Name
|
|||||||
|
|
||||||
Name Strings
|
Name Strings
|
||||||
|
|
||||||
GL_MESA_trace
|
GL_MESA_TRACE
|
||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_trace.spec,v 1.3 2003/09/19 14:58:21 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
|
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
@@ -26,7 +26,7 @@ Number
|
|||||||
Dependencies
|
Dependencies
|
||||||
|
|
||||||
OpenGL 1.0 or later is required
|
OpenGL 1.0 or later is required
|
||||||
This extension is written against the OpenGL 1.4 Specification.
|
This extensions is written against the OpenGL 1.4 Specification.
|
||||||
NV_texture_rectangle effects the definition of this extension.
|
NV_texture_rectangle effects the definition of this extension.
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
@@ -75,14 +75,14 @@ Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
|
|||||||
|
|
||||||
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 101,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
add the following to Table 3.8 (Packed pixel formats):
|
add the following to Table 3.8 (Packed pixel formats):
|
||||||
|
|
||||||
type Parameter GL Data Number of Matching
|
type Parameter GL Data Number of Matching
|
||||||
Token Name Type Components Pixel Formats
|
Token Name Type Components Pixel Formats
|
||||||
-------------- ------- ---------- -------------
|
-------------- ------- ---------- -------------
|
||||||
UNSIGNED_SHORT_8_8_MESA ushort 2 YCBCR_MESA
|
UNSIGNED_SHORT_8_8_MESA ushort 3 YCBCR_422_MESA
|
||||||
UNSIGNED_SHORT_8_8_REV_MESA ushort 2 YCBCR_MESA
|
UNSIGNED_SHORT_8_8_REV_MESA ushort 3 YCBCR_422_MESA
|
||||||
|
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
@@ -103,13 +103,13 @@ Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
|||||||
+-------------------------------+-------------------------------+
|
+-------------------------------+-------------------------------+
|
||||||
|
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 104,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
add the following to Table 3.12 (Packed pixel field assignments):
|
add the following to Table 3.12 (Packed pixel fiedl assignments):
|
||||||
|
|
||||||
First Second Third Fourth
|
First Second Third Fourth
|
||||||
Format Element Element Element Element
|
Format Element Element Element Element
|
||||||
------ ------- ------- ------- -------
|
------ ------- ------- ------- -------
|
||||||
YCBCR_MESA luminance chroma
|
YCBCR_422_MESA luminance chroma
|
||||||
|
|
||||||
|
|
||||||
In section 3.8.1, Texture Image Specification, on page 125, add
|
In section 3.8.1, Texture Image Specification, on page 125, add
|
||||||
@@ -201,4 +201,3 @@ Revision History
|
|||||||
3 September 2003 - further clarify when YCbCr->RGB conversion takes place
|
3 September 2003 - further clarify when YCbCr->RGB conversion takes place
|
||||||
19 September 2003 - a few more updates prior to submitting to extension
|
19 September 2003 - a few more updates prior to submitting to extension
|
||||||
registry.
|
registry.
|
||||||
3 April 2004 - fix assorted inaccuracies
|
|
547
docs/MiniGLX.html
Normal file
547
docs/MiniGLX.html
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Mini GLX Specification</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>
|
||||||
|
<center>Mini GLX Specification</center>
|
||||||
|
</h1>
|
||||||
|
<h2>
|
||||||
|
<center>Tungsten Graphics, Inc.<br>
|
||||||
|
<br>
|
||||||
|
January 20, 2003<br>
|
||||||
|
<br>
|
||||||
|
</center>
|
||||||
|
</h2>
|
||||||
|
<p> Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park,
|
||||||
|
Texas. All Rights Reserved. <br>
|
||||||
|
<br>
|
||||||
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
|
document provided the copyright notice and this permission notice are
|
||||||
|
preserved on all copies.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>1. Introduction</h1>
|
||||||
|
<p>The Mini GLX interface facilitates OpenGL rendering on embedded
|
||||||
|
devices. The interface is a subset of the GLX interface, plus a minimal
|
||||||
|
set of Xlib-like functions.</p>
|
||||||
|
<p>Programs written to the Mini GLX specification should run unchanged
|
||||||
|
on systems with the X Window System and the GLX extension. The intention
|
||||||
|
is to allow flexibility for prototyping and testing.</p>
|
||||||
|
<p>This document serves as both the reference guide and programming
|
||||||
|
guide for Mini GLX.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>2. Mini GLX Concepts</h1>
|
||||||
|
<p>The OpenGL specification does not describe how OpenGL rendering
|
||||||
|
contexts and drawing surfaces (i.e. the frame buffer) are created and
|
||||||
|
managed. Rather, this is handled by an OpenGL window system interface,
|
||||||
|
such as Mini GLX.</p>
|
||||||
|
<p>There are three main datatypes or resources managed by Mini GLX. The
|
||||||
|
resources and their corresponding GLX or Xlib data types are:</p>
|
||||||
|
<table cellspacing="10" align="center">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><u>Resource</u></td>
|
||||||
|
<td><u>Data type</u></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>pixel formats</td>
|
||||||
|
<td>X Visual and XVisualInfo</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>drawing surfaces</td>
|
||||||
|
<td>X Window or GLXDrawable</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>rendering contexts</td>
|
||||||
|
<td>GLXContext</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Pixel formats or X Visuals describe the per-pixel attributes of the
|
||||||
|
frame buffer. For example, bits per color component, Z buffer size,
|
||||||
|
stencil size, TrueColor vs PseudoColor, etc.</p>
|
||||||
|
<p>Drawing surfaces or X Windows typically describe a spatial
|
||||||
|
allocation of the frame buffer (i.e. the position and size of a
|
||||||
|
rectangular region of pixels). Since MiniGLX doesn't really support a
|
||||||
|
window system, the window is effectively the entire frame buffer.</p>
|
||||||
|
<p>A rendering context represents the current OpenGL state such as
|
||||||
|
current drawing color, line width, blending mode, texture parameters,
|
||||||
|
etc. Several rendering contexts can be created but only one can be in
|
||||||
|
use at any given time.</p>
|
||||||
|
<p>The Mini GLX interface provides all the functions needed for
|
||||||
|
choosing pixel formats, create drawing surfaces, creating rendering
|
||||||
|
contexts and binding rendering contexts to drawing surfaces.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>3. Using Mini GLX</h1>
|
||||||
|
<p>To use the Mini GLX interface in your application, include the
|
||||||
|
GL/miniglx.h header file at compile time:</p>
|
||||||
|
<blockquote><code> #include <GL/miniglx.h><br>
|
||||||
|
</code></blockquote>
|
||||||
|
<code></code>Applications should link with libGL.so (i.e. <code>gcc
|
||||||
|
myprogram.o -lGL -o myprogram</code>). libGL.so implements the
|
||||||
|
MiniGLX API functions and, in turn, loads a hardware-specific device
|
||||||
|
driver (such as <code>radeon_dri.so</code>) at runtime. The
|
||||||
|
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
|
||||||
|
directory where these modules are located.<br>
|
||||||
|
<br>
|
||||||
|
Prior to running a MiniGXL application, the following kernel modules
|
||||||
|
must be installed:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"> agpgart.o<br>
|
||||||
|
radeonfb.o (assuming Radeon hardware)<br>
|
||||||
|
radeon.o (assuming Radeon hardware)<br>
|
||||||
|
</div>
|
||||||
|
<code></code> <br>
|
||||||
|
Finally, MiniGLX reads a configuration file (by default,<code>
|
||||||
|
/etc/miniglx.conf</code>) to determine basic configuration information.
|
||||||
|
The configuration file may also be located in the directory
|
||||||
|
specified by the <code>MINIGLX_CONF</code> environment variable).<br>
|
||||||
|
<br>
|
||||||
|
The remainder of this section describes the MiniGLX API functions.<br>
|
||||||
|
<br>
|
||||||
|
<h2>3.1 Initialization</h2>
|
||||||
|
<p>The XOpenDisplay function is used to initialize the graphics system:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Display *XOpenDisplay(const char *displayname)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The <code>displayName</code> parameter is currently ignored in Mini
|
||||||
|
GLX. It is recommended that <code>NULL</code> be passed as the<code>displayName</code>
|
||||||
|
parameter.</p>
|
||||||
|
<p>If XOpenDisplay is able to initialize the graphics system a pointer
|
||||||
|
to a Display will be returned. Otherwise, NULL will be returned.</p>
|
||||||
|
<h2>3.2 Choosing a Visual</h2>
|
||||||
|
<p>A visual (i.e. pixel format) must be chosen before a drawing surface
|
||||||
|
or rendering context can be created. This is done with the
|
||||||
|
glXChooseVisual function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>dpy</code> is a pointer to the display returned by
|
||||||
|
XOpenDisplay. </p>
|
||||||
|
<p><code>screen</code> is currently ignored by Mini GLX and should be
|
||||||
|
zero. </p>
|
||||||
|
<p><code>attribList</code> is a list of GLX attributes which describe
|
||||||
|
the desired pixel format. It is terminated by the token <code>None</code>.
|
||||||
|
The attributes are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>GLX_USE_GL</code></dt>
|
||||||
|
<dd>This attribute should always be present in order to maintain
|
||||||
|
compatibility with GLX.</dd>
|
||||||
|
<dt><code>GLX_RGBA</code></dt>
|
||||||
|
<dd>If present, only RGBA pixel formats will be considered.
|
||||||
|
Otherwise, only color index formats are considered.</dd>
|
||||||
|
<dt><code>GLX_DOUBLEBUFFER</code></dt>
|
||||||
|
<dd>if present, only double-buffered pixel formats will be chosen.</dd>
|
||||||
|
<dt><code>GLX_RED_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per red pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_GREEN_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per green pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_BLUE_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per blue pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_ALPHA_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per alpha pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_STENCIL_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per stencil value that is acceptable.</dd>
|
||||||
|
<dt><code>None</code></dt>
|
||||||
|
<dd>This token is used to terminate the attribute list.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>glXChooseVisual will return a pointer to an XVisualInfo object which
|
||||||
|
most closely matches the requirements of the attribute list. If there
|
||||||
|
is no visual which matches the request, NULL will be returned.</p>
|
||||||
|
<p>Note that visuals with accumulation buffers and depth buffers are
|
||||||
|
not available.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.3 Creating a Drawing Surface</h2>
|
||||||
|
<p>Drawing surfaces are created as X windows. For Mini GLX,
|
||||||
|
windows are <i>full-screen</i>; they cover the entire frame buffer.
|
||||||
|
Also, Mini GLX imposes a limit of one window. A second window
|
||||||
|
cannot be created until the first one is destroyed.</p>
|
||||||
|
<h3>3.3.1 Window Creation</h3>
|
||||||
|
<p>The XCreateWindow function is used to create a drawing surface:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Window XCreateWindow( Display *display,<br> Window parent,<br> int x, int y,<br> unsigned int width, unsigned int height,<br> unsigned int borderWidth,<br> int depth,<br> unsigned int class,<br> Visual *visual,<br> unsigned long valuemask,<br> XSetWindowAttributes *attributes )<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>display</code></dt>
|
||||||
|
<dd>A Display pointer, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>parent</code></dt>
|
||||||
|
<dd>The parent window for the new window. For Mini GLX, this
|
||||||
|
should be<code>RootWindow(dpy, 0)</code>.</dd>
|
||||||
|
<dt><code>x, y</code></dt>
|
||||||
|
<dd>The position of the window. For Mini GLX, both values should
|
||||||
|
be zero.</dd>
|
||||||
|
<dt><code>width, height</code></dt>
|
||||||
|
<dd>The size of the window. For Mini GLX, this specifies the
|
||||||
|
desired screen size such as 1024, 768 or 1280, 1024.</dd>
|
||||||
|
<dt><code>borderWidth</code></dt>
|
||||||
|
<dd>This parameter should be zero.</dd>
|
||||||
|
<dt><code>depth</code></dt>
|
||||||
|
<dd>The pixel depth for the window. For Mini GLX this should be
|
||||||
|
the depth found in the XVisualInfo object returned by <code>glxChooseVisual</code>.</dd>
|
||||||
|
<dt><code>class</code></dt>
|
||||||
|
<dd>The window class. For Mini GLX this value should be <code>InputOutput</code>.</dd>
|
||||||
|
<dt><code>visual</code></dt>
|
||||||
|
<dd>This parameter should be the <code>visual</code> field of the <code>XVisualInfo</code>
|
||||||
|
object returned by <code>glxChooseVisual</code>.</dd>
|
||||||
|
<dt><code>valuemask</code></dt>
|
||||||
|
<dd>This parameter indicates which fields of the <code>XSetWindowAttributes</code>
|
||||||
|
are to be used. For Mini GLX this is typically the bitmask<code>CWBackPixel
|
||||||
|
| CWBorderPixel | CWColormap</code>.</dd>
|
||||||
|
<dt><code>attributes</code></dt>
|
||||||
|
<dd>Initial window attributes. Of the fields in the <code>XSetWindowAttributes</code>
|
||||||
|
structure, the<code>background_pixel</code>, <code>border_pixel</code>
|
||||||
|
and <code>colormap</code> fields should be set. See the discussion
|
||||||
|
below regarding colormaps.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>XCreateWindow</code> will return a window handle if it succeeds
|
||||||
|
or zero if it fails.</p>
|
||||||
|
<h3>3.3.2 Window Mapping</h3>
|
||||||
|
<p>To display the window the XMapWindow function must be called:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XMapWindow(Display *dpy, Window w)</pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>This function does nothing in Mini GLX but is required for Xlib/GLX
|
||||||
|
compatibility</p>
|
||||||
|
<h3>3.3.3 Colormaps<br>
|
||||||
|
</h3>
|
||||||
|
<p>Xlib requires specification of a colormap when creating a window.
|
||||||
|
For purposes of interoperability, Mini GLX requires this as well,
|
||||||
|
though the colormap is not actually used. The XCreateColormap
|
||||||
|
function is used to create a colormap:</p>
|
||||||
|
<blockquote><code>Colormap XCreateColormap(Display *dpy, Window window,
|
||||||
|
Visual *visual, int alloc)</code><br>
|
||||||
|
<code></code></blockquote>
|
||||||
|
<p>The parameters are as follows:<br>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>window</code></dt>
|
||||||
|
<dd> This parameter is ignored by Mini GLX but should be the value
|
||||||
|
returned by the <code>RootWindow(dpy, 0)</code> macro.<br>
|
||||||
|
</dd>
|
||||||
|
<dt><code>visual</code></dt>
|
||||||
|
<dd>This parameter is ignored by Mini GLX but should be the visual
|
||||||
|
field of the XVisualInfo object returned by glXChooseVisual. </dd>
|
||||||
|
<dt><code>alloc</code></dt>
|
||||||
|
<dd>This parameter is ignored by Mini GLX but should be set to <code>AllocNone</code>.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<br>
|
||||||
|
<h2>3.4 Creating a Rendering Context</h2>
|
||||||
|
<p>An OpenGL rendering context is created with the <code>glXCreateContext</code>
|
||||||
|
function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>visInfo</code></dt>
|
||||||
|
<dd>The visual as returned by glXChooseVisual.</dd>
|
||||||
|
<dt><code>shareList</code></dt>
|
||||||
|
<dd>If non-zero, texture objects and display lists are shared with
|
||||||
|
the named rendering context. If zero, texture objects and display lists
|
||||||
|
will (initially) be private to this context. They may be shared when a
|
||||||
|
subsequent context is created.</dd>
|
||||||
|
<dt><code>direct</code></dt>
|
||||||
|
<dd>Specifies whether direct or indirect rendering is desired. For
|
||||||
|
Mini GLX this value is ignored but it should be set to <code>True</code>.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>glXCreateContext</code> will return a GLXContext handle if it
|
||||||
|
succeeds or zero if it fails due to invalid parameter or insufficient
|
||||||
|
resources.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.5 Binding a Rendering Context</h2>
|
||||||
|
<p>The final step before beginning OpenGL rendering is to bind (i.e.
|
||||||
|
activate) a rendering context and drawing surface with the
|
||||||
|
glXMakeCurrent function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>drawable</code></dt>
|
||||||
|
<dd>The window or drawable to bind to the rendering context. This
|
||||||
|
should be the value returned by XCreateWindow.</dd>
|
||||||
|
<dt><code>ctx</code></dt>
|
||||||
|
<dd>The rendering context to bind, as returned by glXCreateContext.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>If glXMakeCurrent succeeds True is returned. Otherwise False is
|
||||||
|
returned to indicate an invalid display, window or context parameter.</p>
|
||||||
|
<p>After the rendering context has been bound to the drawing surface
|
||||||
|
OpenGL rendering can begin.</p>
|
||||||
|
<p>The current rendering context may be unbound by calling
|
||||||
|
glXMakeCurrent with the window and context parameters set to zero.</p>
|
||||||
|
<p>An application may create any number of rendering contexts and bind
|
||||||
|
them as needed. Note that binding a rendering context is generally not a
|
||||||
|
light-weight operation. Most simple OpenGL applications create
|
||||||
|
only one rendering context.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.6 Color Buffer Swapping</h2>
|
||||||
|
<p>A double buffered window has two color buffers: a front buffer and a
|
||||||
|
back buffer. Normally, rendering is directed to the back buffer while
|
||||||
|
the front buffer is displayed. When rendering of a frame is finished
|
||||||
|
the front and back buffers are swapped to provide the illusion of
|
||||||
|
instanteous screen updates.</p>
|
||||||
|
<p>The color buffers for a particular window (i.e. drawable) may be
|
||||||
|
swapped with the glXSwapBuffers command:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void glXSwapBuffers(Display *dpy, GLXDrawable drawable)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
Any pending rendering commands will be completed before the buffer swap
|
||||||
|
takes place.<br>
|
||||||
|
<br>
|
||||||
|
Calling glXSwapBuffers on a window which is single-buffered has no
|
||||||
|
effect.<br>
|
||||||
|
<br>
|
||||||
|
<h2>3.7 Releasing Resources</h2>
|
||||||
|
<h3>3.7.1 Releasing Rendering Contexts</h3>
|
||||||
|
<p>A rendering context may be destroyed by calling glXDestroyContext:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void glXDestroyContext(Display *dpy, GLXContext ctx)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.2 Releasing Windows</h3>
|
||||||
|
<p>A window may be destroyed by calling XDestroyWindow:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XDestroyWindow(Display *dpy, Window window)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.3 Releasing Visuals</h3>
|
||||||
|
<p>An XVisualInfo object may be freed by calling XFree:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XFree(void *data)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.4 Releasing Colormaps</h3>
|
||||||
|
<p>A colormap may be freed by calling XFreeColormap:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XFreeColormap(Display *dpy, Colormap colormap)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.4 Releasing Display Resources</h3>
|
||||||
|
<p>When the application is about to exit, the resources associated with
|
||||||
|
the graphics system can be released by calling XCloseDisplay:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XCloseDisplay(Display *dpy)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The display handle becomes invalid at this point.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.8 Query Functions</h2>
|
||||||
|
<h3>3.8.1 Querying Available Visuals</h3>
|
||||||
|
A list of all available visuals can be obtained with the XGetVisualInfo
|
||||||
|
function:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"><code>XVisualInfo
|
||||||
|
*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo
|
||||||
|
*vinfo_template, int *nitems_return)<br>
|
||||||
|
</code></div>
|
||||||
|
<br>
|
||||||
|
The parameters are as follows:<br>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>vinfo_mask</code></dt>
|
||||||
|
<dd>A bitmask indicating which fields of the vinfo_template are to
|
||||||
|
be matched. The value must be VisualScreenMask.</dd>
|
||||||
|
<dt><code>vinfo_template</code></dt>
|
||||||
|
<dd>A template whose fields indicate which visual attributes must
|
||||||
|
be matched by the results. The screen field of this structure must
|
||||||
|
be zero.</dd>
|
||||||
|
<dt><code>nitems_return</code></dt>
|
||||||
|
<dd>Returns the number of visuals returned. </dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
The return value is the address of an array of all available visuals.<br>
|
||||||
|
<br>
|
||||||
|
An example of using XGetVisualInfo to get all available visuals follows:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"><code>XVisualInfo visTemplate, *results;</code><br>
|
||||||
|
<code>int numVisuals;</code><br>
|
||||||
|
<code>Display *dpy = XOpenDisplay(NULL);</code><br>
|
||||||
|
<code>visTemplate.screen = 0;</code><br>
|
||||||
|
<code>results = XGetVisualInfo(dpy, VisualScreenMask, &visTemplate,
|
||||||
|
&numVisuals);</code><br>
|
||||||
|
<code></code></div>
|
||||||
|
<br>
|
||||||
|
<h3>3.8.2 Querying Visual Attributes</h3>
|
||||||
|
<p>The GLX attributes of an X visual may be queried with the
|
||||||
|
glXGetConfig function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>vis</code></dt>
|
||||||
|
<dd>The visual, as returned by glXChooseVisual.</dd>
|
||||||
|
<dt><code>attribute</code></dt>
|
||||||
|
<dd>The attribute to query. The attributes are listed below.</dd>
|
||||||
|
<dt><code>value</code></dt>
|
||||||
|
<dd>Pointer to an integer in which the result of the query will be
|
||||||
|
stored. </dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>The return value will be zero if no error occurs.<code>
|
||||||
|
GLX_INVALID_ATTRIBUTE</code> will be returned if the attribute
|
||||||
|
parameter is invalid.<code> GLX_BAD_VISUAL</code> will be returned
|
||||||
|
if the XVisualInfo parameter is invalid.</p>
|
||||||
|
<p>The following attributes may be queried:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>GLX_USE_GL</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> or <code>False</code> to
|
||||||
|
indicate if OpenGL rendering is supported with the visual. Mini GLX
|
||||||
|
always return <code>True</code>.</dd>
|
||||||
|
<dt><code>GLX_RGBA</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> for RGBA visuals or <code>False</code>
|
||||||
|
for color index visuals.</dd>
|
||||||
|
<dt><code>GLX_DOUBLEBUFFER</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> if the visual has two
|
||||||
|
color buffers or <code>False</code> if the visual has one color buffer.</dd>
|
||||||
|
<dt><code>GLX_RED_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of red bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_GREEN_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of green bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_BLUE_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of blue bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_ALPHA_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of alpha bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_DEPTH_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of bits per Z value.</dd>
|
||||||
|
<dt><code>GLX_STENCIL_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of bits per stencil value.<br>
|
||||||
|
<br>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.8.3 Querying the Current Rendering Context</h3>
|
||||||
|
<p>The current rendering context can be queried with
|
||||||
|
glXGetCurrentContext: </p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXContext glXGetCurrentContext(void)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>Zero will be returned if no context is currently bound.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h3>3.8.4 Querying the Current Drawable</h3>
|
||||||
|
<p>The current drawable (i.e. window or drawing surface) can be queried
|
||||||
|
with glXGetCurrentDrawable:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXDrawable glXGetCurrentDrawable(void)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>Zero will be returned if no drawable is currently bound.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h3>3.8.5 Function Address Queries</h3>
|
||||||
|
<p>The glXGetProcAddress function will return the address of any
|
||||||
|
available OpenGL or Mini GLX function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void *glXGetProcAddress(const GLubyte *procName)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>If <code>procName</code> is a valid function name, a pointer to that
|
||||||
|
function will be returned. Otherwise, NULL will be returned.</p>
|
||||||
|
<p>The purpose of glXGetProcAddress is to facilitate using future
|
||||||
|
extensions to OpenGL or Mini GLX. If a future version of the library
|
||||||
|
adds new extension functions they'll be accessible via
|
||||||
|
glXGetProcAddress. The alternative is to hard-code calls to the new
|
||||||
|
functions in the application but doing so will prevent linking the
|
||||||
|
application with older versions of the library.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.9 Versioning</h2>
|
||||||
|
The Mini GLX version can be queried at run time with glXQueryVersion:
|
||||||
|
<blockquote>
|
||||||
|
<pre>Bool glXQueryVersion(Display *dpy, int *major, int *minor)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>major</code> will be set to the major version number and<code>minor</code>
|
||||||
|
will be set to the minor version number.<code>True</code> will be
|
||||||
|
returned if the function succeeds. <code>False</code> will be returned
|
||||||
|
if the function fails due to invalid parameters. The <code>dpy</code>
|
||||||
|
argument is currently ignored, but should be the value returned by
|
||||||
|
XOpenDisplay.</p>
|
||||||
|
<p>At compile time, the Mini GLX interface version can be tested with
|
||||||
|
the MINI_GLX_VERSION_1_<i>x</i> preprocessor tokens. For example, if
|
||||||
|
version 1.0 of Mini GLX is supported, then<code> MINI_GLX_VERSION_1_0</code>
|
||||||
|
will be defined. If version 1.1 of Mini GLX is supported, then<code>
|
||||||
|
MINI_GLX_VERSION_1_1</code> will be defined.</p>
|
||||||
|
<p>At the time of writing the current Mini GLX version is 1.0.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>4.0 Interoperability with GLX and Xlib</h1>
|
||||||
|
While Mini GLX strives to be compatible with GLX and Xlib there are
|
||||||
|
some unavoidable differences which must be taken into consideration.<br>
|
||||||
|
<h2>4.1 Public vs Private Structures</h2>
|
||||||
|
The structure of many X data types is public. For example, the <code>Display</code>
|
||||||
|
data type is defined as a structure in /usr/include/X11/Xlib.h and
|
||||||
|
programmers may access any fields of that structure at will. Mini
|
||||||
|
GLX also defines a Display data type but its fields are hidden and not
|
||||||
|
visiblein <code>miniglx.h</code>. Duplicating the Xlib
|
||||||
|
declaration for the <code>Display</code> data type in minigl.h would
|
||||||
|
require defining a large number of other superfluous Xlib datatypes.<br>
|
||||||
|
<br>
|
||||||
|
Mini GLX users are discouraged from directly accessing the fields of
|
||||||
|
Xlib data types to maximize portability - though this is unavoidable to
|
||||||
|
some extent. For example, the <code>XVisualInfo</code> and <code>XSetWindowAtttributes</code>
|
||||||
|
data types must be completely public.
|
||||||
|
<h2>4.2 Macros</h2>
|
||||||
|
In some cases, Xlib defines macros which are meant to be used instead
|
||||||
|
of direct structure accesses. For example, the <code>RootWindow(dpy,
|
||||||
|
screen)</code> macro returns the root window for a given screen on a
|
||||||
|
given display. Unfortunately, macros do nothing to aid in ABI
|
||||||
|
compatibility since they are resolved at compile time instead of at
|
||||||
|
link/run time.<br>
|
||||||
|
<br>
|
||||||
|
Mini GLX also defines a <code>RootWindow</code> macro since it's
|
||||||
|
essential for creating windows. But the implementation of this
|
||||||
|
macro by Xlib and Mini GLX is completely different.<br>
|
||||||
|
<h2>4.3 Summary</h2>
|
||||||
|
Because Xlib and Mini GLX define data types and macros differently,
|
||||||
|
Mini GLX applications must be recompiled when retargeting Mini GLX or
|
||||||
|
native Xlib/GLX. That is, applications can't simply be re-linked
|
||||||
|
because of ABI incompatibilities.<br>
|
||||||
|
<br>
|
||||||
|
Nevertheless, the fact that Mini GLX programs can be recompiled for
|
||||||
|
Xlib and GLX increases portability and flexibility for testing and
|
||||||
|
prototyping.<br>
|
||||||
|
<br>
|
||||||
|
<h1>5.0 Example Program</h1>
|
||||||
|
<p>This section shows an example program which uses the Mini GLX
|
||||||
|
interface. The program simply draws several frames of a rotating square.<br>
|
||||||
|
</p>
|
||||||
|
<p>The program may be compiled for use with Xlib/GLX or Mini GLX by
|
||||||
|
setting the <code>USE_MINIGLX</code> token to 0 or 1, respectively.
|
||||||
|
Note that the only difference is the header files which are
|
||||||
|
included.<br>
|
||||||
|
</p>
|
||||||
|
<p> </p>
|
||||||
|
<pre><code><br></code>#define USE_MINIGLX 1 /* 1 = use Mini GLX, 0 = use Xlib/GLX */<br><br>#include <stdio.h><br>#include <stdlib.h><br>#include <GL/gl.h><br><br>#if USE_MINIGLX<br>#include <GL/miniglx.h><br>#else<br>#include <GL/glx.h><br>#include <X11/Xlib.h><br>#endif<br><br><code>/*<br> * Create a simple double-buffered RGBA window.<br> */<br>static Window<br>MakeWindow(Display * dpy, unsigned int width, unsigned int height)<br>{<br> int visAttributes[] = {<br> GLX_RGBA,<br> GLX_RED_SIZE, 1,<br> GLX_GREEN_SIZE, 1,<br> GLX_BLUE_SIZE, 1,<br> GLX_DOUBLEBUFFER,<br> None<br> };<br> XSetWindowAttributes attr;<br> unsigned long attrMask;<br> Window root;<br> Window win;<br> GLXContext ctx;<br> XVisualInfo *visinfo;<br><br> root = RootWindow(dpy, 0);<br><br> /* Choose GLX visual / pixel format */<br> visinfo = glXChooseVisual(dpy, 0, visAttributes);<br> if (!visinfo) {<br> printf("Error: couldn't get an RGB, Double-buffered visual\n");<br> exit(1);<br> }<br><br> /* Create the window */<br> attr.background_pixel = 0;<br> attr.border_pixel = 0;<br> attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);<br> attrMask = CWBackPixel | CWBorderPixel | CWColormap;<br> win = XCreateWindow(dpy, root, 0, 0, width, height,<br> 0, visinfo->depth, InputOutput,<br> visinfo->visual, attrMask, &attr);<br> if (!win) {<br> printf("Error: XCreateWindow failed\n");<br> exit(1);<br> }<br><br> /* Display the window */<br> XMapWindow(dpy, win);<br><br> /* Create GLX rendering context */<br> ctx = glXCreateContext(dpy, visinfo, NULL, True);<br> if (!ctx) {<br> printf("Error: glXCreateContext failed\n");<br> exit(1);<br> }<br><br> /* Bind the rendering context and window */<br> glXMakeCurrent(dpy, win, ctx);<br><br> return win;<br>}<br><br><br>/*<br> * Draw a few frames of a rotating square.<br> */<br>static void<br>DrawFrames(Display * dpy, Window win)<br>{<br> int angle;<br> glShadeModel(GL_FLAT);<br> glClearColor(0.5, 0.5, 0.5, 1.0);<br> for (angle = 0; angle < 360; angle += 10) {<br> glClear(GL_COLOR_BUFFER_BIT);<br> glColor3f(1.0, 1.0, 0.0);<br> glPushMatrix();<br> glRotatef(angle, 0, 0, 1);<br> glRectf(-0.8, -0.8, 0.8, 0.8);<br> glPopMatrix();<br> glXSwapBuffers(dpy, win);<br> }<br>}<br><br><br>int<br>main(int argc, char *argv[])<br>{<br> Display *dpy;<br> Window win;<br><br> dpy = XOpenDisplay(NULL);<br> if (!dpy) {<br> printf("Error: XOpenDisplay failed\n");<br> return 1;<br> }<br><br> win = MakeWindow(dpy, 300, 300);<br><br> DrawFrames(dpy, win);<br><br> return 0;<br>}<br></code></pre>
|
||||||
|
<br>
|
||||||
|
</body>
|
||||||
|
</html>
|
613
docs/README.3DFX
Normal file
613
docs/README.3DFX
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
|
||||||
|
3Dfx Glide device driver
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Info for Mesa 4.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The 3dfx Glide driver in Mesa is disabled by default. Not too many people
|
||||||
|
use this driver anymore and at some point down the road it will be dropped.
|
||||||
|
|
||||||
|
To use/enable the Glide driver either do this:
|
||||||
|
|
||||||
|
'./configure --with-glide=DIR' Where DIR is the location of Glide, like
|
||||||
|
/usr/ or /usr/local
|
||||||
|
|
||||||
|
OR
|
||||||
|
|
||||||
|
'make linux-x86-glide' If using the old-style Makefile system.
|
||||||
|
|
||||||
|
The rest of this file hasn't changed since Mesa 3.3. Some of it's out of
|
||||||
|
date, but some is still valid.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
- 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.);
|
||||||
|
|
||||||
|
- 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.
|
114
docs/README.BEOS
Normal file
114
docs/README.BEOS
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
|
||||||
|
Mesa / BeOS Information
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Introduction
|
||||||
|
|
||||||
|
Mesa 4.1 features a driver for the BeOS. The driver implements
|
||||||
|
a clone of the BGLView class. This class, derived from BView, allows
|
||||||
|
OpenGL rendering into a BeOS window.
|
||||||
|
The 4.1 BeOS driver is an update of Brian Paul's BeOS driver released in Mesa 3.1.
|
||||||
|
|
||||||
|
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 R5) 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-4.1/src/BeOS/ directory.
|
||||||
|
It's not 100% finished at this time but many GLUT-based demos are
|
||||||
|
working. No optimizations have been made at this time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Compiling
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
- gcc version 2.95.3 for BeOS
|
||||||
|
You can find it here: http://www.bebits.com/app/2157
|
||||||
|
|
||||||
|
Move to the Mesa-4.x src sub-directory and then type "make -f Makefile.BeOS-R5".
|
||||||
|
When it finishes the Mesa based libGL.so library for
|
||||||
|
BeOS will be in the Mesa-4.x/src/obj.{x86|ppc}/ directory.
|
||||||
|
|
||||||
|
To install it as Be's default libGL.so replacement, put it in your
|
||||||
|
/boot/home/config/lib/ directory. All your GL/GLUTapps will use
|
||||||
|
the Mesa based then.
|
||||||
|
|
||||||
|
By default, it build a non-debug version library.
|
||||||
|
The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
|
||||||
|
Sorry, Mesa don't have ppc (Altivec) optimizations yet.
|
||||||
|
|
||||||
|
|
||||||
|
* Example Programs
|
||||||
|
|
||||||
|
Look in the Mesa-4.x/BeOS/ directory for one or two BGLView demo
|
||||||
|
programs. They should have been compiled along with the Mesa
|
||||||
|
library.
|
||||||
|
|
||||||
|
|
||||||
|
* GLUT
|
||||||
|
|
||||||
|
A beta version of GLUT 3.7 port for BeOS can be found at
|
||||||
|
http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
|
||||||
|
|
||||||
|
There's is a 2.5 version in src-glut.beos/, too.
|
||||||
|
The original distribution can be obtained from
|
||||||
|
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
|
||||||
|
|
||||||
|
They are special version of GLUT adapted for the BeOS. I don't
|
||||||
|
believe Mark Kilgard's normal GLUT distribution includes BeOS
|
||||||
|
support.
|
||||||
|
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
|
BDirectWindow single buffering support is not implemented yet.
|
||||||
|
|
||||||
|
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.7 2002/09/19 16:19:44 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
|
||||||
|
|
226
docs/README.DJ
Normal file
226
docs/README.DJ
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
Mesa 5.1 DOS/DJGPP Port v1.4
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Description:
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, guess what... this is the DOS port of Mesa 5.1, for DJGPP fans... Whoa!
|
||||||
|
The driver has its origins in ddsample.c, written by Brian Paul and found by me
|
||||||
|
in Mesa 3.4.2.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Legal:
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
Mesa copyright applies, provided this package is used within Mesa. For anything
|
||||||
|
else, see GPL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Unzip and type:
|
||||||
|
|
||||||
|
make -f Makefile.DJ [OPTIONS...]
|
||||||
|
|
||||||
|
Available options:
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
CPU optimize for the given processor.
|
||||||
|
default = pentium
|
||||||
|
GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
|
||||||
|
or `mesa'.
|
||||||
|
default = mesa
|
||||||
|
GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
default = $(TOP)/glide3
|
||||||
|
FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
compilation of most DMesa code and requires fxMesa.
|
||||||
|
As a consequence, you'll need the DJGPP Glide3
|
||||||
|
library to build any application.
|
||||||
|
default = no
|
||||||
|
MATROX=1 build for Matrox Millennium I (MGA2064W) cards.
|
||||||
|
This is experimental and not intensively tested.
|
||||||
|
default = no
|
||||||
|
HAVE_X86=1 optimize for i386.
|
||||||
|
default = no
|
||||||
|
HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
supports MMX instruction set. However, the true CPU
|
||||||
|
capabilities are checked at run-time to avoid lockups.
|
||||||
|
default = no
|
||||||
|
HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
default = no
|
||||||
|
HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
default = no
|
||||||
|
|
||||||
|
Targets:
|
||||||
|
all: build everything
|
||||||
|
libgl: build GL
|
||||||
|
libglu: build GLU
|
||||||
|
libglut: build GLUT
|
||||||
|
clean: remove object files
|
||||||
|
realclean: remove all generated files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
CPU: AMD Athlon XP 1800+
|
||||||
|
Mainboard: EP-8KTA3 w/ 128 MB SDRAM
|
||||||
|
Video card: Voodoo5 5500 AGP w/ 64 MB SDRAM
|
||||||
|
DJGPP: djdev 2.04 + gcc v3.2.2 + make v3.80
|
||||||
|
OS: DOS and Win98SE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
1. Compilation
|
||||||
|
|
||||||
|
Q) `make' barfs and exits because it cannot find some stupid file.
|
||||||
|
A) You need LFN support.
|
||||||
|
A) When compiling for Glide (FX=1), pay attention to Glide path.
|
||||||
|
|
||||||
|
Q) Libraries built OK, but linker complains about `vsnprintf' every time I
|
||||||
|
compile some demo.
|
||||||
|
A) Upgrade to DJGPP 2.04.
|
||||||
|
A) Add `vsnprintf.c' to the CORE_SOURCES in `src/Makefile.DJ' (untested!).
|
||||||
|
A) Patch `src/mesa/main/imports.c' with the following line:
|
||||||
|
#define vsnprintf(buf, max, fmt, arg) vsprintf(buf, fmt, arg)
|
||||||
|
This hack should be safe in 90% of the cases, but if anything goes wrong,
|
||||||
|
don't come back to me crying.
|
||||||
|
|
||||||
|
Q) `make' complains about DXE3 or something, yet it builds the libraries.
|
||||||
|
A) DXE3 refers to the DJGPP dynamic modules. You'll need either the latest
|
||||||
|
DJGPP distro, or download the separate package from my web page. Read the
|
||||||
|
DXE3 documentation on how to use them.
|
||||||
|
A) When compiling for Glide (FX=1), make sure `glide3x.dxe' can be found in
|
||||||
|
LD_LIBRARY_PATH (or top `lib' directory).
|
||||||
|
|
||||||
|
2. Using Mesa for DJGPP
|
||||||
|
|
||||||
|
Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better...
|
||||||
|
A) Is that a question? If you have a 3dfx Voodoo Banshee or higher card,
|
||||||
|
you're lucky (check http://sourceforge.net/projects/glide for the DJGPP
|
||||||
|
port). If you have a Matrox Millennium I card, you just MIGHT be lucky...
|
||||||
|
If you haven't, sorry; everything is done in software. Suggestions?
|
||||||
|
|
||||||
|
Q) I tried to set refresh rate w/ DMesa, but without success.
|
||||||
|
A) Refresh rate control works only for VESA 3.0. If you were compiling for
|
||||||
|
Glide, see Glide info. If not, sorry!
|
||||||
|
|
||||||
|
Q) I made a simple application and it does nothing. It exits right away. Not
|
||||||
|
even a blank screen.
|
||||||
|
A) The pure software drivers (VESA/VGA) support only double-buffered modes.
|
||||||
|
A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a
|
||||||
|
lazy programmer and I found that the easiest way to keep buffer handling
|
||||||
|
at peak performance ;-).
|
||||||
|
|
||||||
|
Q) The GLUT is incomplete.
|
||||||
|
A) See below.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libGLUT (the toolkit):
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, this "skeletal" GLUT implementation was taken from AllegGL project and
|
||||||
|
heavily changed. Thanks should go to Bernhard Tschirren, Mark Kilgard, Brian
|
||||||
|
Paul and probably others (or probably not ;-). GLUT functionality will be
|
||||||
|
extended only on an "as needed" basis.
|
||||||
|
|
||||||
|
GLUT talks to hardware via PC_HW package which was put together from various
|
||||||
|
pieces I wrote long time ago. It consists from the keyboard, mouse and timer
|
||||||
|
drivers.
|
||||||
|
|
||||||
|
My keyboard driver used only scancodes; as GLUT requires ASCII values for keys,
|
||||||
|
I borrowed the translation tables (and maybe more) from Allegro -- many thanks
|
||||||
|
to Shawn Hargreaves et co. 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 (hopefully) call the destructors, 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 drawing, etc), but is enough to
|
||||||
|
make almost all the demos work. Supports the CuteMouse WheelAPI.
|
||||||
|
|
||||||
|
The timer is pretty versatile for it supports multiple timers with different
|
||||||
|
frequencies. While not being the most accurate timer in the known universe, 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. A bit of a hack, I
|
||||||
|
know, because all messages come in bulk, but I think it's better than nothing.
|
||||||
|
"Borrowed" from LIBRHUTI (Robert Hoehne).
|
||||||
|
|
||||||
|
Window creating defaults: (0, 0, 300, 300), 16bpp. However, the video mode is
|
||||||
|
chosen in such a way that first window will fit. If you need high resolution
|
||||||
|
with small windows, set initial position far to the right (or way down); then
|
||||||
|
you can move them back to any position right before the main loop.
|
||||||
|
|
||||||
|
The following environment variables can customize GLUT behaviour:
|
||||||
|
GLUT_FPS - print frames/second statistics to stderr
|
||||||
|
DMESA_GLUT_REFRESH - set vertical screen refresh rate (VESA3)
|
||||||
|
DMESA_GLUT_BPP - set default bits per pixel (VGA needs 8)
|
||||||
|
DMESA_GLUT_ALPHA - set default alpha bits (8)
|
||||||
|
DMESA_GLUT_DEPTH - set default depth bits (16)
|
||||||
|
DMESA_GLUT_STENCIL - set default stencil bits (8)
|
||||||
|
DMESA_GLUT_ACCUM - set default accum bits (16)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
History:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
v1.0 (mar-2002)
|
||||||
|
initial release
|
||||||
|
|
||||||
|
v1.1 (sep-2002)
|
||||||
|
+ added 3dfx Glide3 support
|
||||||
|
+ added refresh rate control
|
||||||
|
+ added fonts in GLUT
|
||||||
|
* lots of minor changes
|
||||||
|
|
||||||
|
v1.2 (nov-2002)
|
||||||
|
* synced w/ Mesa-4.1
|
||||||
|
- removed dmesadxe.h
|
||||||
|
|
||||||
|
v1.3 (mar-2003)
|
||||||
|
+ enabled OpenGL 1.4 support
|
||||||
|
+ added MMX clear/blit routines
|
||||||
|
+ enabled SGI's GLU compilation
|
||||||
|
+ added samples makefile
|
||||||
|
+ added new GLUT functions
|
||||||
|
+ added color-index modes
|
||||||
|
+ added Matrox Millennium MGA2064W driver
|
||||||
|
+ added 8bit FakeColor (thanks to Neil Funk)
|
||||||
|
+ added VGA support (to keep Ben Decker happy)
|
||||||
|
! fixed some compilation errors (reported by Chan Kar Heng)
|
||||||
|
* optimized driver for faster callback access... yeah, right :)
|
||||||
|
* overhauled virtual buffer and internal video drivers
|
||||||
|
* better fxMesa integration
|
||||||
|
* revamped GLUT
|
||||||
|
* switched to DXE3
|
||||||
|
|
||||||
|
v1.4 (oct-2003)
|
||||||
|
+ enabled GLUT fonts with DXE
|
||||||
|
+ truly added multi-window support in GLUT (for Adrian Woodward)
|
||||||
|
* accomodated makefiles with the new sourcetree
|
||||||
|
* fixed some ALPHA issues
|
||||||
|
x hacked and slashed the 3dfx driver (w/ help from Hiroshi Morii)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Contact:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
Name: Borca Daniel
|
||||||
|
E-mail: dborca@users.sourceforge.net
|
||||||
|
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,85 @@
|
|||||||
File: docs/README.WIN32
|
File: docs/README.WIN32
|
||||||
|
|
||||||
Last updated: 21 June 2013
|
Last updated: Sep 18, 2003 - Karl Schultz - kschultz@users.sourceforge.net
|
||||||
|
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
----- -----
|
|
||||||
|
|
||||||
Windows drivers are build with SCons. Makefiles or Visual Studio projects are
|
Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
|
||||||
no longer shipped or supported.
|
The libs and demos build separately, so if you do not care about the
|
||||||
|
demos, you do not have to unzip that zip file. But if you do, it does
|
||||||
|
need to be unzipped into the same directory as the lib zip file because
|
||||||
|
the demos depend on the libs.
|
||||||
|
|
||||||
Run
|
The build system has been changed to use Microsoft Visual Studio project
|
||||||
|
workspaces and projects. Makefiles are no longer shipped or supported, but
|
||||||
|
can be generated from the projects using Visual Studio.
|
||||||
|
|
||||||
scons libgl-gdi
|
Details and Notes
|
||||||
|
|
||||||
to build gallium based GDI driver.
|
- To build the Mesa libraries, open the Mesa.dsw workspace file
|
||||||
|
in the top directory. You can build each project one-by-one,
|
||||||
|
or build the glut project to build everything except osmesa,
|
||||||
|
which needs to be built separately. The build process will
|
||||||
|
create a lib directory in the top directory and will put the
|
||||||
|
following files there:
|
||||||
|
OPENGL32.LIB, GLU32.LIB, GLUT32.LIB, OSMESA32.LIB
|
||||||
|
OPENGL32.DLL, GLU32.DLL, GLUT32.DLL, OSMESA32.DLL
|
||||||
|
|
||||||
This will work both with MSVS or Mingw.
|
- 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.
|
||||||
|
|
||||||
|
- Build the demos by opening the appropriate *.dsw file in the
|
||||||
|
progs directory tree. For example, to build the demos, use
|
||||||
|
progs/demos/Windows/demos.dsw. The Windows directory contains
|
||||||
|
the workspace and all the projects for each demo program. Each
|
||||||
|
project places the executable in the same directory as its source
|
||||||
|
code, which is required for some demos.
|
||||||
|
|
||||||
|
- The demo projects also copy the Mesa library DLL files from the lib
|
||||||
|
directory into the same directory as the demo executables, so that
|
||||||
|
the demos use the Mesa libs you just built.
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
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
|
314
docs/README.X11
Normal file
314
docs/README.X11
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
|
||||||
|
Mesa 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.
|
||||||
|
|
||||||
|
When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory.
|
||||||
|
|
||||||
|
|
||||||
|
2. The new way:
|
||||||
|
Type './configure' and then 'make'. This uses GNU autoconfig.
|
||||||
|
Run 'make check' to build the demos.
|
||||||
|
See docs/INSTALL for more details.
|
||||||
|
When finished, the Mesa libraries will be in the Mesa-x.y/src/.libs/,
|
||||||
|
Mesa-x.y/si-glu/.libs, etc directories.
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
==========
|
||||||
|
There are three Mesa-specific 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.10 2003/03/08 17:38:57 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.2 2002/03/23 02:37:17 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.2 2001/12/18 14:08:23 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
|
||||||
|
|
||||||
|
March 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.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.2 2002/03/23 02:38:39 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.2 2002/06/26 02:36:34 brianp Exp $
|
308
docs/RELNOTES-4.1
Normal file
308
docs/RELNOTES-4.1
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
|
||||||
|
Mesa 4.1 release notes
|
||||||
|
|
||||||
|
October 29, 2002
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Even numbered versions (such as 4.0) designate stable releases.
|
||||||
|
Odd numbered versions (such as 4.1) designate new developmental releases.
|
||||||
|
|
||||||
|
|
||||||
|
New Features in Mesa 4.1
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
New extensions. Docs at http://oss.sgi.com/projects/ogl-sample/registry/
|
||||||
|
|
||||||
|
GL_NV_vertex_program
|
||||||
|
|
||||||
|
NVIDIA's vertex programming extension
|
||||||
|
|
||||||
|
GL_NV_vertex_program1_1
|
||||||
|
|
||||||
|
A few features built on top of GL_NV_vertex_program
|
||||||
|
|
||||||
|
GL_ARB_window_pos
|
||||||
|
|
||||||
|
This is the ARB-approved version of GL_MESA_window_pos
|
||||||
|
|
||||||
|
GL_ARB_depth_texture
|
||||||
|
|
||||||
|
This is the ARB-approved version of GL_SGIX_depth_texture.
|
||||||
|
It allows depth (Z buffer) data to be stored in textures.
|
||||||
|
This is used by GL_ARB_shadow
|
||||||
|
|
||||||
|
GL_ARB_shadow
|
||||||
|
|
||||||
|
Shadow mapping with depth textures.
|
||||||
|
This is the ARB-approved version of GL_SGIX_shadow.
|
||||||
|
|
||||||
|
GL_ARB_shadow_ambient
|
||||||
|
|
||||||
|
Allows one to specify the luminance of shadowed pixels.
|
||||||
|
This is the ARB-approved version of GL_SGIX_shadow_ambient.
|
||||||
|
|
||||||
|
GL_EXT_shadow_funcs
|
||||||
|
|
||||||
|
Extends the set of GL_ARB_shadow texture comparision functions to
|
||||||
|
include all eight of standard OpenGL dept-test functions.
|
||||||
|
|
||||||
|
GL_ARB_point_parameters
|
||||||
|
|
||||||
|
This is basically the same as GL_EXT_point_parameters.
|
||||||
|
|
||||||
|
GL_ARB_texture_env_crossbar
|
||||||
|
|
||||||
|
Allows any texture combine stage to reference any texture source unit.
|
||||||
|
|
||||||
|
GL_NV_point_sprite
|
||||||
|
|
||||||
|
For rendering points as textured quads. Useful for particle effects.
|
||||||
|
|
||||||
|
GL_NV_texture_rectangle (new in 4.0.4 actually)
|
||||||
|
|
||||||
|
Allows one to use textures with sizes that are not powers of two.
|
||||||
|
Note that mipmapping and several texture wrap modes are not allowed.
|
||||||
|
|
||||||
|
GL_EXT_multi_draw_arrays
|
||||||
|
|
||||||
|
Allows arrays of vertex arrays to be rendered with one call.
|
||||||
|
|
||||||
|
GL_EXT_stencil_two_side
|
||||||
|
|
||||||
|
Separate stencil modes for front and back-facing polygons.
|
||||||
|
|
||||||
|
GLX_SGIX_fbconfig & GLX_SGIX_pbuffer
|
||||||
|
|
||||||
|
Off-screen rendering support.
|
||||||
|
|
||||||
|
GL_ATI_texture_mirror_once
|
||||||
|
|
||||||
|
Adds two new texture wrap modes: GL_MIRROR_CLAMP_ATI and
|
||||||
|
GL_MIRROR_CLAMP_TO_EDGE_ATI.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Status
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of these 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
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
BeOS needs updating (underway)
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
DOS needs updating
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New features in GLUT
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
1. Frames per second printing
|
||||||
|
|
||||||
|
GLUT now looks for an environment variable called "GLUT_FPS". If it's
|
||||||
|
set, GLUT will print out a frames/second statistic to stderr when
|
||||||
|
glutSwapBuffers() is called. By default, frames/second is computed
|
||||||
|
and displayed once every 5 seconds. You can specify a different
|
||||||
|
interval (in milliseconds) when you set the env var. For example
|
||||||
|
'export GLUT_FPS=1000' or 'setenv GLUT_FPS 1000' will set the interval
|
||||||
|
to one second.
|
||||||
|
|
||||||
|
NOTE: the demo or application must call the glutInit() function for
|
||||||
|
this to work. Otherwise, the env var will be ignored.
|
||||||
|
|
||||||
|
Finally, this feature may not be reliable in multi-window programs.
|
||||||
|
|
||||||
|
|
||||||
|
2. glutGetProcAddress() function
|
||||||
|
|
||||||
|
The new function:
|
||||||
|
|
||||||
|
void *glutGetProcAddress(const char *procName)
|
||||||
|
|
||||||
|
is a wrapper for glXGetProcAddressARB() and wglGetProcAddress(). It
|
||||||
|
lets you dynamically get the address of an OpenGL function at runtime.
|
||||||
|
The GLUT_API_VERSION has been bumped to 5, but I haven't bumped the
|
||||||
|
GLUT version number from 3.7 since that's probably Mark Kilgard's role.
|
||||||
|
|
||||||
|
This function should probably also be able to return the address of
|
||||||
|
GLUT functions themselves, but it doesn't do that yet.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
XXX Things To Do Yet XXXX
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
isosurf with vertex program exhibits some missing triangles (probably
|
||||||
|
when recycling the vertex buffer for long prims).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Porting Info
|
||||||
|
------------
|
||||||
|
|
||||||
|
If you're porting a DRI or other driver from Mesa 4.0.x to Mesa 4.1 here
|
||||||
|
are some things to change:
|
||||||
|
|
||||||
|
1. ctx->Texture._ReallyEnabled is obsolete.
|
||||||
|
|
||||||
|
Since there are now 5 texture targets (1D, 2D, 3D, cube and rect) that
|
||||||
|
left room for only 6 units (6*5 < 32) in this field.
|
||||||
|
This field is being replaced by ctx->Texture._EnabledUnits which has one
|
||||||
|
bit per texture unit. If the bit k of _EnabledUnits is set, that means
|
||||||
|
ctx->Texture.Unit[k]._ReallyEnabled is non-zero. You'll have to look at
|
||||||
|
ctx->Texture.Unit[k]._ReallyEnabled to learn if the 1D, 2D, 3D, cube or
|
||||||
|
rect texture is enabled for unit k.
|
||||||
|
|
||||||
|
This also means that the constants TEXTURE1_*, TEXTURE2_*, etc are
|
||||||
|
obsolete.
|
||||||
|
|
||||||
|
The tokens TEXTURE0_* have been replaced as well (since there's no
|
||||||
|
significance to the "0" part:
|
||||||
|
|
||||||
|
old token new token
|
||||||
|
TEXTURE0_1D TEXTURE_1D_BIT
|
||||||
|
TEXTURE0_2D TEXTURE_2D_BIT
|
||||||
|
TEXTURE0_3D TEXTURE_3D_BIT
|
||||||
|
TEXTURE0_CUBE TEXTURE_CUBE_BIT
|
||||||
|
<none> TEXTURE_RECT_BIT
|
||||||
|
|
||||||
|
These tokens are only used for the ctx->Texture.Unit[i].Enabled and
|
||||||
|
ctx->Texture.Unit[i]._ReallyEnabled fields. Exactly 0 or 1 bits will
|
||||||
|
be set in _ReallyEnabled at any time!
|
||||||
|
|
||||||
|
Q: "What's the purpose of Unit[i].Enabled vs Unit[i]._ReallyEnabled?"
|
||||||
|
A: The user can enable GL_TEXTURE_1D, GL_TEXTURE_2D, etc for any
|
||||||
|
texure unit all at once (an unusual thing to do).
|
||||||
|
OpenGL defines priorities that basically say GL_TEXTURE_2D has
|
||||||
|
higher priority than GL_TEXTURE_1D, etc. Also, just because a
|
||||||
|
texture target is enabled by the user doesn't mean we'll actually
|
||||||
|
use that texture! If a texture object is incomplete (missing mip-
|
||||||
|
map levels, etc) it's as if texturing is disabled for that target.
|
||||||
|
The _ReallyEnabled field will have a bit set ONLY if the texture
|
||||||
|
target is enabled and complete. This spares the driver writer from
|
||||||
|
examining a _lot_ of GL state to determine which texture target is
|
||||||
|
to be used.
|
||||||
|
|
||||||
|
|
||||||
|
2. Tnl tokens changes
|
||||||
|
|
||||||
|
During the implementation of GL_NV_vertex_program some of the vertex
|
||||||
|
buffer code was changed. Specifically, the VERT_* bits defined in
|
||||||
|
tnl/t_context.h have been renamed to better match the conventions of
|
||||||
|
GL_NV_vertex_program. The old names are still present but obsolete.
|
||||||
|
Drivers should use the newer names.
|
||||||
|
|
||||||
|
For example: VERT_RGBA is now VERT_BIT_COLOR0 and
|
||||||
|
VERT_SPEC_RGB is now VERT_BIT_COLOR1.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3. Read/Draw Buffer changes
|
||||||
|
|
||||||
|
The business of setting the current read/draw buffers in Mesa 4.0.x
|
||||||
|
was complicated. It's much simpler now in Mesa 4.1.
|
||||||
|
|
||||||
|
Here are the changes:
|
||||||
|
|
||||||
|
- Renamed ctx->Color.DrawDestMask to ctx->Color._DrawDestMask
|
||||||
|
- Removed ctx->Color.DriverDrawBuffer
|
||||||
|
- Removed ctx->Pixel.DriverReadBuffer
|
||||||
|
- Removed ctx->Color.MultiDrawBuffer
|
||||||
|
- Removed ctx->Driver.SetDrawBuffer()
|
||||||
|
- Removed swrast->Driver.SetReadBuffer().
|
||||||
|
- Added ctx->Color._DrawDestMask - a bitmask of FRONT/BACK_LEFT/RIGHT_BIT
|
||||||
|
values to indicate the current draw buffers.
|
||||||
|
- Added ctx->Pixel._ReadSrcMask to indicate the source for pixel reading.
|
||||||
|
The value is _one_ of the FRONT/BACK_LEFT/RIGHT_BIT values.
|
||||||
|
- Added ctx->Driver.DrawBuffer() and ctx->Driver.ReadBuffer().
|
||||||
|
These functions exactly correspond to glDrawBuffer and glReadBuffer calls.
|
||||||
|
Many drivers will set ctx->Driver.DrawBuffer = _swrast_DrawBuffer and
|
||||||
|
leave ctx->Draw.ReadBuffer NULL.
|
||||||
|
DRI drivers should implement their own function for ctx->Driver.DrawBuffer
|
||||||
|
and use it to set the current hardware drawing buffer. You'll probably
|
||||||
|
also want to check for GL_FRONT_AND_BACK mode and fall back to software.
|
||||||
|
Call _swrast_DrawBuffer() too, to update the swrast state.
|
||||||
|
- Added swrast->Driver.SetBuffer().
|
||||||
|
This function should be implemented by all device drivers that use swrast.
|
||||||
|
Mesa will call it to specify the buffer to use for span reading AND
|
||||||
|
writing and point/line/triangle rendering.
|
||||||
|
There should be no confusion between current read or draw buffer anymore.
|
||||||
|
- Added swrast->CurrentBuffer to indicate which color buffer to read/draw.
|
||||||
|
Will be FRONT_LEFT_BIT, BACK_LEFT_BIT, FRONT_RIGHT_BIT or BACK_RIGHT_BIT.
|
||||||
|
This value is usually passed to swrast->Driver.SetBuffer().
|
||||||
|
|
||||||
|
|
||||||
|
4. _mesa_create_context() changes. This function now takes a pointer to
|
||||||
|
a __GLimports object. The __GLimports structure contains function
|
||||||
|
pointers to system functions like fprintf(), malloc(), etc.
|
||||||
|
The _mesa_init_default_imports() function can be used to initialize
|
||||||
|
a __GLimports object. Most device drivers (like the DRI drivers)
|
||||||
|
should use this.
|
||||||
|
|
||||||
|
|
||||||
|
5. In tnl's struct vertex_buffer, the field "ProjectedClipCoords"
|
||||||
|
has been replaced by "NdcPtr" to better match the OpenGL spec's
|
||||||
|
terminology.
|
||||||
|
|
||||||
|
|
||||||
|
6. Since GL_EXT_stencil_two_side has been implemented, many of the
|
||||||
|
ctx->Stencil fields are now 2-element arrays. For example,
|
||||||
|
"GLenum Ref" is now "GLenum Ref[2]" The [0] elements are the front-face
|
||||||
|
values and the [1] elements are the back-face values.
|
||||||
|
ctx->Stencil.ActiveFace is 0 or 1 to indicate the current face for
|
||||||
|
the glStencilOp/Func/Mask() functions.
|
||||||
|
ctx->Stencil.TestTwoSide controls whether or not 1 or 2-sided stenciling
|
||||||
|
is enabled.
|
||||||
|
|
||||||
|
|
||||||
|
7. Removed ctx->Polygon._OffsetAny. Removed ctx->Polygon.OffsetMRD.
|
||||||
|
|
||||||
|
|
||||||
|
8. GLfloat / GLchan changes:
|
||||||
|
|
||||||
|
- Changed ctx->Driver.ClearColor() to take GLfloat[4] instead of GLchan[4].
|
||||||
|
ctx->Color.ClearColor is now GLfloat[4] too.
|
||||||
|
- Changed ctx->Driver.AlphaRef() to take GLfloat instead of GLchan.
|
||||||
|
- ctx->Color.AlphaRef is now GLfloat.
|
||||||
|
- texObj->BorderColor is now GLfloat[4]. texObj->_BorderChan is GLchan[4].
|
||||||
|
|
||||||
|
This is part of an effort to remove all GLchan types from core Mesa so
|
||||||
|
that someday we can support 8, 16 and 32-bit color channels dynamically
|
||||||
|
at runtime, instead of at compile-time.
|
||||||
|
|
||||||
|
|
||||||
|
9. GLboolean ctx->Tranform.ClipEnabled[MAX_CLIP_PLANES] has been replaced
|
||||||
|
by GLuint ctx->Transform.ClipPlanesEnabled. The later is a bitfield.
|
||||||
|
|
||||||
|
|
||||||
|
10. There's a new matrix_stack type in mtypes.h used for the Modelview,
|
||||||
|
Projection, Color and Texcoord matrix stacks.
|
||||||
|
|
||||||
|
|
||||||
|
11. The ctx->Current.* fields have changed a lot. Now, there's a
|
||||||
|
ctx->Current.Attrib[] array for all vertex attributes which matches
|
||||||
|
the NV vertex program conventions.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-4.1,v 1.22 2002/10/29 15:06:37 brianp Exp $
|
85
docs/RELNOTES-5.0
Normal file
85
docs/RELNOTES-5.0
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
|
||||||
|
Mesa 5.0 release notes
|
||||||
|
|
||||||
|
November 13, 2002
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Even-numbered versions (such as 5.0) designate stable releases.
|
||||||
|
Odd-numbered versions (such as 4.1) designate new developmental releases.
|
||||||
|
|
||||||
|
Mesa 5.0 is basically just a stabilization of Mesa 4.1. To see a list of
|
||||||
|
bug fixes, etc. see the VERSIONS file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Features in Mesa 5.0
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Mesa 5.0 supports OpenGL 1.4. Note Mesa's versioning convention:
|
||||||
|
|
||||||
|
OpenGL Version Mesa Version
|
||||||
|
------------------------------
|
||||||
|
1.0 1.x
|
||||||
|
1.1 2.x
|
||||||
|
1.2 3.x
|
||||||
|
1.3 4.x
|
||||||
|
1.4 5.x
|
||||||
|
|
||||||
|
OpenGL 1.4 (and Mesa 5.0) incorporates the following OpenGL extensions as
|
||||||
|
standard features:
|
||||||
|
|
||||||
|
GL_ARB_depth_texture
|
||||||
|
GL_ARB_shadow
|
||||||
|
GL_ARB_texture_env_crossbar
|
||||||
|
GL_ARB_texture_mirror_repeat
|
||||||
|
GL_ARB_window_pos
|
||||||
|
GL_EXT_blend_color
|
||||||
|
GL_EXT_blend_func_separate
|
||||||
|
GL_EXT_blend_logic_op
|
||||||
|
GL_EXT_blend_minmax
|
||||||
|
GL_EXT_blend_subtract
|
||||||
|
GL_EXT_fog_coord
|
||||||
|
GL_EXT_multi_draw_arrays
|
||||||
|
GL_EXT_point_parameters
|
||||||
|
GL_EXT_secondary_color
|
||||||
|
GL_EXT_stencil_wrap
|
||||||
|
GL_SGIS_generate_mipmap
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Status
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of these drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.4
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.4
|
||||||
|
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.4
|
||||||
|
DOS/DJGPP implements OpenGL 1.3
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
DOS implements OpenGL 1.4
|
||||||
|
BeOS needs updating (underway)
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
|
||||||
|
driver call the _mesa_enable_1_4_extensions() function.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-5.0,v 3.2 2002/11/13 15:33:51 brianp Exp $
|
46
docs/RELNOTES-5.0.1
Normal file
46
docs/RELNOTES-5.0.1
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
Mesa 5.0.1 release notes
|
||||||
|
|
||||||
|
March 30, 2003
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Even-numbered versions (such as 5.0.x) designate stable releases.
|
||||||
|
Odd-numbered versions (such as 4.1.x) designate new developmental releases.
|
||||||
|
|
||||||
|
Mesa 5.0.1 just fixes bugs found since the 5.0 release. See the VERSIONS
|
||||||
|
file for details.
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Status
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of these drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.4
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.4
|
||||||
|
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.4
|
||||||
|
DJGPP implements OpenGL 1.4
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
BeOS implements OpenGL 1.4
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
|
||||||
|
driver call the _mesa_enable_1_4_extensions() function.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-5.0.1,v 3.1 2003/03/30 16:17:54 brianp Exp $
|
46
docs/RELNOTES-5.0.2
Normal file
46
docs/RELNOTES-5.0.2
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
Mesa 5.0.2 release notes
|
||||||
|
|
||||||
|
September 5, 2003
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Even-numbered versions (such as 5.0.x) designate stable releases.
|
||||||
|
Odd-numbered versions (such as 4.1.x) designate new developmental releases.
|
||||||
|
|
||||||
|
Mesa 5.0.2 just fixes bugs found since the 5.0.1 release. See the VERSIONS
|
||||||
|
file for details.
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Status
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of these drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.4
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.4
|
||||||
|
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.4
|
||||||
|
DJGPP implements OpenGL 1.4
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
BeOS implements OpenGL 1.4
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
|
||||||
|
driver call the _mesa_enable_1_4_extensions() function.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: RELNOTES-5.0.2,v 1.1 2003/09/04 23:10:38 brianp Exp $
|
228
docs/RELNOTES-5.1
Normal file
228
docs/RELNOTES-5.1
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
|
||||||
|
Mesa 5.1 release notes
|
||||||
|
|
||||||
|
Month day, 2003
|
||||||
|
|
||||||
|
PLEASE READ!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||||
|
Even-numbered versions (such as 5.0) designate stable releases.
|
||||||
|
Odd-numbered versions (such as 5.1) designate new developmental releases.
|
||||||
|
|
||||||
|
|
||||||
|
Bug fixes
|
||||||
|
---------
|
||||||
|
See the VERSIONS file for a list of bugs fixed in this release.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
New Features in Mesa 5.1
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
GL_ATI_texture_env_combine3 extension
|
||||||
|
This adds a few new texture combine modes.
|
||||||
|
Contributed by Ian Romanick.
|
||||||
|
|
||||||
|
GL_SGI_texture_color_table
|
||||||
|
Adds a color table lookup to the RGBA texture path. There's a separate
|
||||||
|
color table for each texture unit.
|
||||||
|
Contributed by Eric Plante.
|
||||||
|
|
||||||
|
GL_NV_fragment_program
|
||||||
|
NVIDIA's fragment-level programming feature.
|
||||||
|
Possible lurking bugs:
|
||||||
|
- the DDX and DDY commands aren't fully tested
|
||||||
|
- there may be bugs in the parser
|
||||||
|
- the TEX and TXP instructions both do perspective correction
|
||||||
|
- the pack/unpack instructions may not be correct
|
||||||
|
|
||||||
|
GL_EXT_depth_bounds_test
|
||||||
|
This extension adds a scissor-like test for the Z axis. It's used to
|
||||||
|
optimize stencil-volume shadow algorithms.
|
||||||
|
|
||||||
|
GL_NV_light_max_exponent
|
||||||
|
Lifts the 128 limit for max light exponent.
|
||||||
|
|
||||||
|
GL_EXT_texture_rectangle
|
||||||
|
Identical to GL_NV_texture_rectangle
|
||||||
|
|
||||||
|
GL_ARB_occlusion_query
|
||||||
|
Useful for visibility-based culling.
|
||||||
|
|
||||||
|
GL_ARB_texture_non_power_of_two
|
||||||
|
Removes the restriction that texture dimensions must be powers of two.
|
||||||
|
|
||||||
|
GL_ARB_vertex_buffer_object
|
||||||
|
Allows server-side vertex arrays, optimized host/card data transfers, etc.
|
||||||
|
|
||||||
|
GL_ARB_point_sprite
|
||||||
|
ARB-approved version of GL_NV_point_sprite. Basically allows textures
|
||||||
|
to be applied to points.
|
||||||
|
|
||||||
|
GL_IBM_multimode_draw_arrays
|
||||||
|
Allows multiple vertex arrays to be drawn with one call, including arrays
|
||||||
|
of different types of primitives.
|
||||||
|
|
||||||
|
GL_SUN_multi_draw_arrays
|
||||||
|
An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
|
||||||
|
|
||||||
|
|
||||||
|
With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
|
||||||
|
GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
|
||||||
|
all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release)
|
||||||
|
will advertise GL_VERSION = "1.5".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vertex/Fragment program debugger
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
GL_MESA_program_debug is an experimental extension to support
|
||||||
|
interactive debugging of vertex and fragment programs. See the
|
||||||
|
docs/MESA_program_debug.spec file for details.
|
||||||
|
|
||||||
|
The bulk of the vertex/fragment program debugger is implemented
|
||||||
|
outside of Mesa. The GL_MESA_program_debug extension just has minimal
|
||||||
|
hooks for stopping running programs and inspecting programs.
|
||||||
|
|
||||||
|
The progs/tests/debugger.c (only in CVS) program is an example of how
|
||||||
|
the extension can be used. Presently, the debugger code and demo code
|
||||||
|
is in the same file. Eventually the debugger code should be moved
|
||||||
|
into a reusable module.
|
||||||
|
|
||||||
|
As it is now, the demo lets you set breakpoings in vertex/fragment
|
||||||
|
programs, single step, and print intermediate register values. It's
|
||||||
|
basically just a proof of concept.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Directory tree reorganization
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The directory structure for Mesa has been overhauled to improve its layout.
|
||||||
|
All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
|
||||||
|
in appropriate subdirectories.
|
||||||
|
|
||||||
|
The Mesa source code and drivers has been reorganized under src/mesa/.
|
||||||
|
|
||||||
|
All demonstration programs and tests are now in subdirectories under progs/.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Build System Changes
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The GNU automake/autoconf support has been removed. As it was, it seldom
|
||||||
|
worked on anything but Linux. The Mesa developers aren't big fans of
|
||||||
|
automake/autoconf/libtool and didn't have the time to maintain it.
|
||||||
|
If someone wants to contribute new automake/autoconf support (and is
|
||||||
|
willing to maintain it), it may be re-incorporated into Mesa, subject
|
||||||
|
to some requirements.
|
||||||
|
|
||||||
|
The "old style" makefile system has been updated:
|
||||||
|
1. Make-config has been trimmed down to fewer, modern configurations.
|
||||||
|
2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
|
||||||
|
script that works on all sorts of systems. There are probably some
|
||||||
|
bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
|
||||||
|
Improvements/contributes are greatly appreciated.
|
||||||
|
3. The Makefile.X11 files have been cleaned up in various ways
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Source File Changes
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The mmath.[ch] files are obsolete. Their contents have been moved
|
||||||
|
into the imports.[ch] and macros.[ch] files.
|
||||||
|
|
||||||
|
The files related to vertex and fragment programming have changed.
|
||||||
|
Old files:
|
||||||
|
vpexec.[ch]
|
||||||
|
vpparse.[ch]
|
||||||
|
vpstate.[ch]
|
||||||
|
New files:
|
||||||
|
program.[ch] - generic ARB/NV program code
|
||||||
|
arbprogram.[ch] - ARB program API functions
|
||||||
|
nvprogram.[ch] - NV program API functions
|
||||||
|
nvvertprog.h - NV vertex program definitions
|
||||||
|
nvfragprog.h - NV fragment program definitions
|
||||||
|
nvvertparse.[ch] - NV vertex program parser
|
||||||
|
nvfragparse.[ch] - NV fragment program parser
|
||||||
|
nvvertexec.[ch] - NV vertex program execution
|
||||||
|
swrast/s_nvfragprog.[ch] - NV fragment program execution
|
||||||
|
|
||||||
|
Removed files:
|
||||||
|
swrast/s_histogram.[ch] - moved into src/histogram.c
|
||||||
|
|
||||||
|
Other New files:
|
||||||
|
bufferobj.[ch] - GL_ARB_vertex_buffer_object functions
|
||||||
|
version.h - defines the Mesa version info
|
||||||
|
|
||||||
|
|
||||||
|
Other Changes
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The ctx->Driver.CreateTexture function has been removed - it wasn't used.
|
||||||
|
|
||||||
|
New device driver hook functions:
|
||||||
|
NewTextureObject - used to allocate struct gl_texture_objects
|
||||||
|
NewTextureImage - used to allocate struct gl_texture_images
|
||||||
|
|
||||||
|
New ctx->Texture._EnabledCoordUnits field:
|
||||||
|
With the addition of GL_NV_fragment_program we may need to interpolate
|
||||||
|
various sets of texture coordinates even when the corresponding texture
|
||||||
|
unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get
|
||||||
|
called but we still may have to interpolate texture coordinates across
|
||||||
|
triangles so that the fragment program will get them.
|
||||||
|
This new field indicates which sets of texture coordinates are needed.
|
||||||
|
If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
|
||||||
|
same bit MUST be set in ctx->Texture._EnabledCoordUnits.
|
||||||
|
|
||||||
|
The ctx->_TriangleCaps field is deprecated.
|
||||||
|
Instead of testing the DD_* bits in _TriangleCaps, you should instead
|
||||||
|
directly test the relevant state variables, or use one of the helper
|
||||||
|
functions like NEED_SECONDARY_COLOR() at the bottom of context.h
|
||||||
|
While testing _TriangleCaps bits was fast, it was kludgey, and setting
|
||||||
|
the bits in the first place could be error prone.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
To Do
|
||||||
|
-----
|
||||||
|
Add screen-awareness to fakeglx.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Device Driver Status
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
A number of Mesa's software drivers haven't been actively maintained for
|
||||||
|
some time. We rely on volunteers to maintain many of these drivers.
|
||||||
|
Here's the current status of all included drivers:
|
||||||
|
|
||||||
|
|
||||||
|
Driver Status
|
||||||
|
---------------------- ---------------------
|
||||||
|
XMesa (Xlib) implements OpenGL 1.4
|
||||||
|
OSMesa (off-screen) implements OpenGL 1.4
|
||||||
|
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.4
|
||||||
|
DJGPP implements OpenGL 1.4
|
||||||
|
GGI implements OpenGL 1.3
|
||||||
|
BeOS implements OpenGL 1.4
|
||||||
|
Allegro needs updating
|
||||||
|
D3D needs updating
|
||||||
|
|
||||||
|
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
|
||||||
|
driver call the _mesa_enable_1_4_extensions() function.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
345
docs/VERSIONS
345
docs/VERSIONS
@@ -103,7 +103,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
|
||||||
@@ -1007,7 +1007,7 @@ Mesa Version History
|
|||||||
- glGetTexImage was using pixel unpacking instead of packing params
|
- glGetTexImage was using pixel unpacking instead of packing params
|
||||||
- auto-mipmap generation for cube maps was incorrect
|
- auto-mipmap generation for cube maps was incorrect
|
||||||
Changes:
|
Changes:
|
||||||
- max texture units reduced to six to accommodate texture rectangles
|
- max texture units reduced to six to accomodate texture rectangles
|
||||||
- removed unfinished GL_MESA_sprite_point extension code
|
- removed unfinished GL_MESA_sprite_point extension code
|
||||||
|
|
||||||
|
|
||||||
@@ -1146,10 +1146,9 @@ Mesa Version History
|
|||||||
- build GLUT with -fexceptions so C++ apps propogate exceptions
|
- build GLUT with -fexceptions so C++ apps propogate exceptions
|
||||||
|
|
||||||
|
|
||||||
5.1 December 17, 2003
|
5.1 Month day, 2003 (NOT RELEASED YET)
|
||||||
New:
|
New:
|
||||||
- reorganized directory tree
|
- reorganized directory tree
|
||||||
- GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
|
|
||||||
- GL_ATI_texture_env_combine3 extension (Ian Romanick)
|
- GL_ATI_texture_env_combine3 extension (Ian Romanick)
|
||||||
- GL_SGI_texture_color_table extension (Eric Plante)
|
- GL_SGI_texture_color_table extension (Eric Plante)
|
||||||
- GL_NV_fragment_program extension
|
- GL_NV_fragment_program extension
|
||||||
@@ -1165,350 +1164,12 @@ Mesa Version History
|
|||||||
- less memory used for display lists and vertex buffers
|
- less memory used for display lists and vertex buffers
|
||||||
- demo of per-pixel lighting with a fragment program (demos/fplight.c)
|
- demo of per-pixel lighting with a fragment program (demos/fplight.c)
|
||||||
- new version (18) of glext.h header
|
- 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:
|
Bug fixes:
|
||||||
- really enable OpenGL 1.4 features in DOS driver.
|
- really enable OpenGL 1.4 features in DOS driver.
|
||||||
- fixed issues in glDrawPixels and glCopyPixels for very wide images
|
- fixed issues in glDrawPixels and glCopyPixels for very wide images
|
||||||
- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
|
- 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:
|
Changes:
|
||||||
- dropped API trace feature (src/Trace/)
|
- dropped API trace feature (src/Trace/)
|
||||||
- documentation overhaul. merged with website content. more html.
|
- documentation overhaul. merged with website content. more html.
|
||||||
- glxgears.c demo updated to use GLX swap rate extensions
|
- glxgears.c demo updated to use GLX swap rate extensions
|
||||||
- glTexImage1/2/3D now allows width/height/depth = 0
|
- 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,257 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<title>Compilation and Installation using Autoconf</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Compilation and Installation using Autoconf</h1>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li><p><a href="#basic">Basic Usage</a></li>
|
|
||||||
<li><p><a href="#driver">Driver Options</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#xlib">Xlib Driver Options</a></li>
|
|
||||||
<li><a href="#dri">DRI Driver Options</a></li>
|
|
||||||
<li><a href="#osmesa">OSMesa Driver Options</a></li>
|
|
||||||
</ul>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="basic">1. Basic Usage</h2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The autoconf generated configure script can be used to guess your
|
|
||||||
platform and change various options for building Mesa. To use the
|
|
||||||
configure script, type:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
./configure
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To see a short description of all the options, type <code>./configure
|
|
||||||
--help</code>. If you are using a development snapshot and the configure
|
|
||||||
script does not exist, type <code>./autogen.sh</code> to generate it
|
|
||||||
first. If you know the options you want to pass to
|
|
||||||
<code>configure</code>, you can pass them to <code>autogen.sh</code>. It
|
|
||||||
will run <code>configure</code> with these options after it is
|
|
||||||
generated. Once you have run <code>configure</code> and set the options
|
|
||||||
to your preference, type:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
make
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
This will produce libGL.so and/or several other libraries depending on the
|
|
||||||
options you have chosen. Later, if you want to rebuild for a different
|
|
||||||
configuration run <code>make realclean</code> before rebuilding.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Some of the generic autoconf options are used with Mesa:
|
|
||||||
</p>
|
|
||||||
<dl>
|
|
||||||
<dt><code>--prefix=PREFIX</code></dt>
|
|
||||||
<dd><p>This is the root directory where
|
|
||||||
files will be installed by <code>make install</code>. The default is
|
|
||||||
<code>/usr/local</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--exec-prefix=EPREFIX</code></dt>
|
|
||||||
<dd><p>This is the root directory
|
|
||||||
where architecture-dependent files will be installed. In Mesa, this is
|
|
||||||
only used to derive the directory for the libraries. The default is
|
|
||||||
<code>${prefix}</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--libdir=LIBDIR</code></dt>
|
|
||||||
<dd><p>This option specifies the directory
|
|
||||||
where the GL libraries will be installed. The default is
|
|
||||||
<code>${exec_prefix}/lib</code>. It also serves as the name of the
|
|
||||||
library staging area in the source tree. For instance, if the option
|
|
||||||
<code>--libdir=/usr/local/lib64</code> is used, the libraries will be
|
|
||||||
created in a <code>lib64</code> directory at the top of the Mesa source
|
|
||||||
tree.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--sysconfdir=DIR</code></dt>
|
|
||||||
<dd><p>This option specifies the directory where the configuration
|
|
||||||
files will be installed. The default is <code>${prefix}/etc</code>.
|
|
||||||
Currently there's only one config file provided when dri drivers are
|
|
||||||
enabled - it's <code>drirc</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>--enable-static, --disable-shared</code></dt>
|
|
||||||
<dd><p>By default, Mesa
|
|
||||||
will build shared libraries. Either of these options will force static
|
|
||||||
libraries to be built. It is not currently possible to build static and
|
|
||||||
shared libraries in a single pass.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
|
|
||||||
<dd><p>These environment variables
|
|
||||||
control the C and C++ compilers used during the build. By default,
|
|
||||||
<code>gcc</code> and <code>g++</code> are used and the debug/optimisation
|
|
||||||
level is left unchanged.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>LDFLAGS</code></dt>
|
|
||||||
<dd><p>An environment variable specifying flags to
|
|
||||||
pass when linking programs. These should be empty and
|
|
||||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
|
|
||||||
it can be used to direct the linker to use libraries in nonstandard
|
|
||||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
|
||||||
<dd><p>The
|
|
||||||
<code>pkg-config</code> utility is a hard requirement for 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>
|
|
15
docs/banner.html
Normal file
15
docs/banner.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<title>Banner</title>
|
||||||
|
|
||||||
|
|
||||||
|
<body text="#ffffff" bgcolor="#aa4444">
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<p>
|
||||||
|
<font size="5">The Mesa 3D Graphics Library</font>
|
||||||
|
</p>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -1,55 +1,27 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<HTML>
|
||||||
<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">
|
<TITLE>Mesa Bug Reporting</TITLE>
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Bug Database</h1>
|
<H1>Bug Database</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Mesa bug database is hosted on
|
Bug reports can be filed in the <a
|
||||||
<a href="https://freedesktop.org">freedesktop.org</a>.
|
href="http://sourceforge.net/bugs/?group_id=3" target="_parent">Bug
|
||||||
The old bug database on SourceForge is no longer used.
|
Database</a> on sourceforge.net. Please follow these guidelines:
|
||||||
</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>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Check if a new version of Mesa is available which might have fixed
|
<li>Make sure you're using the most recent version of Mesa
|
||||||
the problem.
|
<li>Make sure your bug isn't already reported
|
||||||
<li>Check if your bug is already reported in the database.
|
<li>Include as much information as possible in the report
|
||||||
<li>Monitor your bug report for requests for additional information, etc.
|
<li>Provide a simple GLUT-based test program if possible
|
||||||
<li>Attach the output of running glxinfo or wglinfo.
|
<li>Check back for follow-ups to the report
|
||||||
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>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Bug reports will automatically be forwarded by bugzilla to the Mesa
|
Bug reports will automatically be forwarded to the Mesa developer's list.
|
||||||
developer's mailing list.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -59,6 +31,5 @@ If your bug report is vague or your test program doesn't compile
|
|||||||
easily, the problem may not be fixed very quickly.
|
easily, the problem may not be fixed very quickly.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</BODY>
|
||||||
</body>
|
</HTML>
|
||||||
</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,25 +1,15 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<HTML>
|
||||||
<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">
|
<TITLE>Conformance</TITLE>
|
||||||
<h1>The Mesa 3D Graphics Library</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<h1>Conformance</h1>
|
<H1>Conformance</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
||||||
implementations. I, Brian Paul, have been given a copy of the tests
|
implementations. I, Brian Paul, have been given a copy of the tests
|
||||||
for testing Mesa. The tests are not publicly available.
|
for testing Mesa. The tests are not publically available.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
This file has the latest results of testing Mesa with the OpenGL 1.2
|
This file has the latest results of testing Mesa with the OpenGL 1.2
|
||||||
@@ -698,6 +688,6 @@ Conformx passed.
|
|||||||
|
|
||||||
NOTE: conformx passes for all machine path levels (-p option).
|
NOTE: conformx passes for all machine path levels (-p option).
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user