Compare commits
	
		
			8 Commits
		
	
	
		
			cros-mesa-
			...
			rgb10_a2ui
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					257f32ad20 | ||
| 
						 | 
					4e0ece34ed | ||
| 
						 | 
					8bccaa61d7 | ||
| 
						 | 
					63d5fd0376 | ||
| 
						 | 
					08bc1b7343 | ||
| 
						 | 
					9f92031355 | ||
| 
						 | 
					e56728c9d8 | ||
| 
						 | 
					644d434137 | 
@@ -1,18 +1,11 @@
 | 
				
			|||||||
((nil . ((show-trailing-whitespace . t)))
 | 
					((nil
 | 
				
			||||||
 (prog-mode
 | 
					 | 
				
			||||||
  (indent-tabs-mode . nil)
 | 
					  (indent-tabs-mode . nil)
 | 
				
			||||||
  (tab-width . 8)
 | 
					  (tab-width . 8)
 | 
				
			||||||
  (c-basic-offset . 3)
 | 
					  (c-basic-offset . 3)
 | 
				
			||||||
  (c-file-style . "stroustrup")
 | 
					  (c-file-style . "stroustrup")
 | 
				
			||||||
  (fill-column . 78)
 | 
					  (fill-column . 78)
 | 
				
			||||||
  (eval . (progn
 | 
					  (eval . (progn
 | 
				
			||||||
	    (c-set-offset 'case-label '0)
 | 
					 | 
				
			||||||
	    (c-set-offset 'innamespace '0)
 | 
						    (c-set-offset 'innamespace '0)
 | 
				
			||||||
	    (c-set-offset 'inline-open '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
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -4,7 +4,6 @@
 | 
				
			|||||||
*.ilk
 | 
					*.ilk
 | 
				
			||||||
*.la
 | 
					*.la
 | 
				
			||||||
*.lo
 | 
					*.lo
 | 
				
			||||||
*.log
 | 
					 | 
				
			||||||
*.o
 | 
					*.o
 | 
				
			||||||
*.obj
 | 
					*.obj
 | 
				
			||||||
*.os
 | 
					*.os
 | 
				
			||||||
@@ -18,8 +17,6 @@
 | 
				
			|||||||
*.tar
 | 
					*.tar
 | 
				
			||||||
*.tar.bz2
 | 
					*.tar.bz2
 | 
				
			||||||
*.tar.gz
 | 
					*.tar.gz
 | 
				
			||||||
*.tar.xz
 | 
					 | 
				
			||||||
*.trs
 | 
					 | 
				
			||||||
*.zip
 | 
					*.zip
 | 
				
			||||||
*~
 | 
					*~
 | 
				
			||||||
depend
 | 
					depend
 | 
				
			||||||
@@ -34,19 +31,13 @@ aclocal.m4
 | 
				
			|||||||
config.log
 | 
					config.log
 | 
				
			||||||
config.status
 | 
					config.status
 | 
				
			||||||
cscope*
 | 
					cscope*
 | 
				
			||||||
tags
 | 
					 | 
				
			||||||
.scon*
 | 
					.scon*
 | 
				
			||||||
config.py
 | 
					config.py
 | 
				
			||||||
build
 | 
					build
 | 
				
			||||||
libtool
 | 
					libtool
 | 
				
			||||||
manifest.txt
 | 
					manifest.txt
 | 
				
			||||||
 | 
					Makefile.in
 | 
				
			||||||
.dir-locals.el
 | 
					.dir-locals.el
 | 
				
			||||||
.deps/
 | 
					.deps/
 | 
				
			||||||
.dirstamp
 | 
					 | 
				
			||||||
.libs/
 | 
					.libs/
 | 
				
			||||||
Makefile
 | 
					/Makefile
 | 
				
			||||||
Makefile.in
 | 
					 | 
				
			||||||
.install-mesa-links
 | 
					 | 
				
			||||||
.install-gallium-links
 | 
					 | 
				
			||||||
/src/git_sha1.h
 | 
					 | 
				
			||||||
TAGS
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										464
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										464
									
								
								.mailmap
									
									
									
									
									
								
							@@ -1,464 +0,0 @@
 | 
				
			|||||||
Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net>
 | 
					 | 
				
			||||||
Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
 | 
					 | 
				
			||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com>
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk>
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com>
 | 
					 | 
				
			||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andre Heider <a.heider@gmail.com>
 | 
					 | 
				
			||||||
Andreas Heider <andreas@heider.io>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
 | 
					 | 
				
			||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
 | 
					 | 
				
			||||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de>
 | 
					 | 
				
			||||||
Christoph Brill <egore911@egore911.de> <egore@gmx.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
 | 
					 | 
				
			||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
 | 
					 | 
				
			||||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
 | 
					 | 
				
			||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> davem69 <davem69>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
 | 
					 | 
				
			||||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
 | 
					 | 
				
			||||||
Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
 | 
					 | 
				
			||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com>
 | 
					 | 
				
			||||||
Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
 | 
					 | 
				
			||||||
Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
 | 
					 | 
				
			||||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com>
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
 | 
					 | 
				
			||||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de>
 | 
					 | 
				
			||||||
Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> <michal@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@quad.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@transistor.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@wmvare.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com>
 | 
					 | 
				
			||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
 | 
					 | 
				
			||||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nick Bowler <nbowler@draconx.ca>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nick Sarnie <commendsarnex@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
 | 
					 | 
				
			||||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city>
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com>
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com>
 | 
					 | 
				
			||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
 | 
					 | 
				
			||||||
# The next ones are not 100% sure
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)>
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
 | 
					 | 
				
			||||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)>
 | 
					 | 
				
			||||||
Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
 | 
					 | 
				
			||||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
 | 
					 | 
				
			||||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
 | 
					 | 
				
			||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
 | 
					 | 
				
			||||||
Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
 | 
					 | 
				
			||||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Tanner <tanner@gmx.net> tanner <tanner>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
 | 
					 | 
				
			||||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
 | 
					 | 
				
			||||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
 | 
					 | 
				
			||||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
 | 
					 | 
				
			||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn>
 | 
					 | 
				
			||||||
							
								
								
									
										112
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								.travis.yml
									
									
									
									
									
								
							@@ -1,112 +0,0 @@
 | 
				
			|||||||
language: c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sudo: true
 | 
					 | 
				
			||||||
dist: trusty
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
  directories:
 | 
					 | 
				
			||||||
    - $HOME/.ccache
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
addons:
 | 
					 | 
				
			||||||
  apt:
 | 
					 | 
				
			||||||
    packages:
 | 
					 | 
				
			||||||
      - libdrm-dev
 | 
					 | 
				
			||||||
      - x11proto-xf86vidmode-dev
 | 
					 | 
				
			||||||
      - libexpat1-dev
 | 
					 | 
				
			||||||
      - libxcb-dri2-0-dev
 | 
					 | 
				
			||||||
      - libx11-xcb-dev
 | 
					 | 
				
			||||||
      - llvm-3.5-dev
 | 
					 | 
				
			||||||
      # llvm-config is not in the dev package?
 | 
					 | 
				
			||||||
      - llvm-3.5
 | 
					 | 
				
			||||||
      # LLVM packaging is broken and misses this dep.
 | 
					 | 
				
			||||||
      - libedit-dev
 | 
					 | 
				
			||||||
      - scons
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
env:
 | 
					 | 
				
			||||||
  global:
 | 
					 | 
				
			||||||
    - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
 | 
					 | 
				
			||||||
    - XCB_RELEASES=http://xcb.freedesktop.org/dist
 | 
					 | 
				
			||||||
    - XORGMACROS_VERSION=util-macros-1.19.0
 | 
					 | 
				
			||||||
    - GLPROTO_VERSION=glproto-1.4.17
 | 
					 | 
				
			||||||
    - DRI2PROTO_VERSION=dri2proto-2.8
 | 
					 | 
				
			||||||
    - DRI3PROTO_VERSION=dri3proto-1.0
 | 
					 | 
				
			||||||
    - PRESENTPROTO_VERSION=presentproto-1.0
 | 
					 | 
				
			||||||
    - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
 | 
					 | 
				
			||||||
    - LIBDRM_VERSION=libdrm-2.4.74
 | 
					 | 
				
			||||||
    - XCBPROTO_VERSION=xcb-proto-1.11
 | 
					 | 
				
			||||||
    - LIBXCB_VERSION=libxcb-1.11
 | 
					 | 
				
			||||||
    - LIBXSHMFENCE_VERSION=libxshmfence-1.2
 | 
					 | 
				
			||||||
    - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
 | 
					 | 
				
			||||||
  matrix:
 | 
					 | 
				
			||||||
    - BUILD=make
 | 
					 | 
				
			||||||
    - BUILD=scons
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
  - export PATH="/usr/lib/ccache:$PATH"
 | 
					 | 
				
			||||||
  - pip install --user mako
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Since libdrm gets updated in configure.ac regularly, try to pick up the
 | 
					 | 
				
			||||||
  # latest version from there.
 | 
					 | 
				
			||||||
  - for line in `grep "^LIBDRM_.*_REQUIRED=" configure.ac`; do
 | 
					 | 
				
			||||||
      old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
 | 
					 | 
				
			||||||
      new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
 | 
					 | 
				
			||||||
      if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
 | 
					 | 
				
			||||||
        export LIBDRM_VERSION="libdrm-$new_ver";
 | 
					 | 
				
			||||||
      fi;
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Install dependencies where we require specific versions (or where
 | 
					 | 
				
			||||||
  # disallowed by Travis CI's package whitelisting).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $XORGMACROS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $GLPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/proto/$DRI3PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $DRI3PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $DRI3PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/proto/$PRESENTPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $PRESENTPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $PRESENTPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $XCBPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $LIBXCB_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $LIBDRM_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-etnaviv-experimental-api && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
 | 
					 | 
				
			||||||
  - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xmake; then
 | 
					 | 
				
			||||||
      ./autogen.sh --enable-debug
 | 
					 | 
				
			||||||
        --with-egl-platforms=x11,drm
 | 
					 | 
				
			||||||
        --with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
 | 
					 | 
				
			||||||
        --with-gallium-drivers=svga,swrast,vc4,virgl,r300,r600,etnaviv,imx
 | 
					 | 
				
			||||||
        --disable-llvm-shared-libs
 | 
					 | 
				
			||||||
        ;
 | 
					 | 
				
			||||||
      make && make check;
 | 
					 | 
				
			||||||
    elif test x$BUILD = xscons; then
 | 
					 | 
				
			||||||
      scons;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
@@ -21,95 +21,43 @@
 | 
				
			|||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | 
					# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | 
				
			||||||
# DEALINGS IN THE SOFTWARE.
 | 
					# DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# use c99 compiler by default
 | 
				
			||||||
 | 
					ifeq ($(LOCAL_CC),)
 | 
				
			||||||
ifeq ($(LOCAL_IS_HOST_MODULE),true)
 | 
					ifeq ($(LOCAL_IS_HOST_MODULE),true)
 | 
				
			||||||
LOCAL_CFLAGS += -D_GNU_SOURCE
 | 
					LOCAL_CC := $(HOST_CC) -std=c99
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					LOCAL_CC := $(TARGET_CC) -std=c99
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCAL_C_INCLUDES += \
 | 
					LOCAL_C_INCLUDES += \
 | 
				
			||||||
	$(MESA_TOP)/src \
 | 
					 | 
				
			||||||
	$(MESA_TOP)/include
 | 
						$(MESA_TOP)/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
 | 
					 | 
				
			||||||
# define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
 | 
					# define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
 | 
				
			||||||
 | 
					major := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
 | 
				
			||||||
 | 
					minor := $(word 2, $(subst ., , $(PLATFORM_VERSION)))
 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					LOCAL_CFLAGS += \
 | 
				
			||||||
	-Wno-unused-parameter \
 | 
						-DANDROID_VERSION=0x0$(major)0$(minor)
 | 
				
			||||||
	-Wno-date-time \
 | 
					 | 
				
			||||||
	-Wno-pointer-arith \
 | 
					 | 
				
			||||||
	-Wno-missing-field-initializers \
 | 
					 | 
				
			||||||
	-Wno-initializer-overrides \
 | 
					 | 
				
			||||||
	-Wno-mismatched-tags \
 | 
					 | 
				
			||||||
	-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
 | 
					 | 
				
			||||||
	-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\" \
 | 
					 | 
				
			||||||
	-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					LOCAL_CFLAGS += \
 | 
				
			||||||
	-DENABLE_SHADER_CACHE \
 | 
						-DPTHREADS \
 | 
				
			||||||
	-D__STDC_LIMIT_MACROS \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_EXPECT \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_FFS \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_FFSLL \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_UNUSED \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_FORMAT \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_PACKED \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_ALIAS \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CTZ \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_POPCOUNT \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_POPCOUNTLL \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CLZ \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CLZLL \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_UNREACHABLE \
 | 
					 | 
				
			||||||
	-DHAVE_PTHREAD=1 \
 | 
					 | 
				
			||||||
	-DHAVE_DLOPEN \
 | 
					 | 
				
			||||||
	-fvisibility=hidden \
 | 
						-fvisibility=hidden \
 | 
				
			||||||
	-Wno-sign-compare
 | 
						-Wno-sign-compare
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# mesa requires at least c99 compiler
 | 
					 | 
				
			||||||
LOCAL_CONLYFLAGS += \
 | 
					 | 
				
			||||||
	-std=c99
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
 | 
					ifeq ($(strip $(MESA_ENABLE_ASM)),true)
 | 
				
			||||||
ifeq ($(TARGET_ARCH),x86)
 | 
					ifeq ($(TARGET_ARCH),x86)
 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					LOCAL_CFLAGS += \
 | 
				
			||||||
	-DUSE_X86_ASM \
 | 
						-DUSE_X86_ASM
 | 
				
			||||||
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(MESA_ENABLE_LLVM),true)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					 | 
				
			||||||
	-DHAVE_LLVM=0x0305 -DMESA_LLVM_VERSION_PATCH=2 \
 | 
					 | 
				
			||||||
	-D__STDC_CONSTANT_MACROS \
 | 
					 | 
				
			||||||
	-D__STDC_FORMAT_MACROS \
 | 
					 | 
				
			||||||
	-D__STDC_LIMIT_MACROS
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
 | 
					 | 
				
			||||||
# add libdrm if there are hardware drivers
 | 
					 | 
				
			||||||
ifneq ($(filter-out swrast,$(MESA_GPU_DRIVERS)),)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
 | 
					 | 
				
			||||||
LOCAL_SHARED_LIBRARIES += libdrm
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCAL_CPPFLAGS += \
 | 
					LOCAL_CPPFLAGS += \
 | 
				
			||||||
	$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \
 | 
					 | 
				
			||||||
	-Wno-error=non-virtual-dtor \
 | 
						-Wno-error=non-virtual-dtor \
 | 
				
			||||||
	-Wno-non-virtual-dtor
 | 
						-Wno-non-virtual-dtor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(MESA_LOLLIPOP_BUILD),true)
 | 
					 | 
				
			||||||
  LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
 | 
					 | 
				
			||||||
  LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  LOCAL_CFLAGS += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# uncomment to keep the debug symbols
 | 
					# uncomment to keep the debug symbols
 | 
				
			||||||
#LOCAL_STRIP_MODULE := false
 | 
					#LOCAL_STRIP_MODULE := false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
 | 
					ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
 | 
				
			||||||
LOCAL_MODULE_TAGS := optional
 | 
					LOCAL_MODULE_TAGS := optional
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Quiet down the build system and remove any .h files from the sources
 | 
					 | 
				
			||||||
LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										46
									
								
								Android.mk
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								Android.mk
									
									
									
									
									
								
							@@ -24,33 +24,20 @@
 | 
				
			|||||||
# BOARD_GPU_DRIVERS should be defined.  The valid values are
 | 
					# BOARD_GPU_DRIVERS should be defined.  The valid values are
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   classic drivers: i915 i965
 | 
					#   classic drivers: i915 i965
 | 
				
			||||||
#   gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vc4 virgl vmwgfx
 | 
					#   gallium drivers: swrast i915g nouveau r300g r600g radeonsi vmwgfx
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# The main target is libGLES_mesa.  For each classic driver enabled, a DRI
 | 
					# 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.
 | 
					# module will also be built.  DRI modules will be loaded by libGLES_mesa.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_TOP := $(call my-dir)
 | 
					MESA_TOP := $(call my-dir)
 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
 | 
					 | 
				
			||||||
MESA_ANDROID_MINOR_VERSION := $(word 2, $(subst ., , $(PLATFORM_VERSION)))
 | 
					 | 
				
			||||||
MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSION)
 | 
					 | 
				
			||||||
ifeq ($(filter 1 2 3 4,$(MESA_ANDROID_MAJOR_VERSION)),)
 | 
					 | 
				
			||||||
MESA_LOLLIPOP_BUILD := true
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
define local-generated-sources-dir
 | 
					 | 
				
			||||||
$(call local-intermediates-dir)
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_REL_PATH := dri
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH)
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
 | 
					MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
 | 
				
			||||||
MESA_PYTHON2 := python
 | 
					MESA_PYTHON2 := python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRM_TOP := external/drm
 | 
				
			||||||
 | 
					DRM_GRALLOC_TOP := hardware/drm_gralloc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
classic_drivers := i915 i965
 | 
					classic_drivers := i915 i965
 | 
				
			||||||
gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx vc4 virgl
 | 
					gallium_drivers := swrast i915g nouveau r300g r600g radeonsi vmwgfx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
 | 
					MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -82,29 +69,26 @@ else
 | 
				
			|||||||
MESA_BUILD_GALLIUM := false
 | 
					MESA_BUILD_GALLIUM := false
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add subdirectories
 | 
					# add subdirectories
 | 
				
			||||||
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
 | 
					ifneq ($(strip $(MESA_GPU_DRIVERS)),)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SUBDIRS := \
 | 
					SUBDIRS := \
 | 
				
			||||||
	src/gbm \
 | 
					 | 
				
			||||||
	src/loader \
 | 
					 | 
				
			||||||
	src/mapi \
 | 
						src/mapi \
 | 
				
			||||||
	src/compiler \
 | 
						src/glsl \
 | 
				
			||||||
	src/mesa \
 | 
						src/mesa \
 | 
				
			||||||
	src/util \
 | 
						src/egl/main
 | 
				
			||||||
	src/egl \
 | 
					 | 
				
			||||||
	src/amd \
 | 
					 | 
				
			||||||
	src/intel \
 | 
					 | 
				
			||||||
	src/mesa/drivers/dri
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
 | 
					ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
 | 
				
			||||||
 | 
					SUBDIRS += \
 | 
				
			||||||
 | 
						src/egl/drivers/dri2 \
 | 
				
			||||||
 | 
						src/mesa/drivers/dri
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
 | 
					ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
 | 
				
			||||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
 | 
					SUBDIRS += src/gallium
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include $(INC_DIRS)
 | 
					mkfiles := $(patsubst %,$(MESA_TOP)/%/Android.mk,$(SUBDIRS))
 | 
				
			||||||
 | 
					include $(mkfiles)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							@@ -1,16 +0,0 @@
 | 
				
			|||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
 | 
					 | 
				
			||||||
							
								
								
									
										143
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										143
									
								
								Makefile.am
									
									
									
									
									
								
							@@ -21,53 +21,104 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
SUBDIRS = src
 | 
					SUBDIRS = src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
 | 
					doxygen:
 | 
				
			||||||
	--enable-dri \
 | 
						cd doxygen && $(MAKE)
 | 
				
			||||||
	--enable-dri3 \
 | 
					 | 
				
			||||||
	--enable-egl \
 | 
					 | 
				
			||||||
	--enable-gallium-tests \
 | 
					 | 
				
			||||||
	--enable-gallium-osmesa \
 | 
					 | 
				
			||||||
	--enable-gallium-llvm \
 | 
					 | 
				
			||||||
	--enable-gbm \
 | 
					 | 
				
			||||||
	--enable-gles1 \
 | 
					 | 
				
			||||||
	--enable-gles2 \
 | 
					 | 
				
			||||||
	--enable-glx \
 | 
					 | 
				
			||||||
	--enable-glx-tls \
 | 
					 | 
				
			||||||
	--enable-nine \
 | 
					 | 
				
			||||||
	--enable-opencl \
 | 
					 | 
				
			||||||
	--enable-opengl \
 | 
					 | 
				
			||||||
	--enable-va \
 | 
					 | 
				
			||||||
	--enable-vdpau \
 | 
					 | 
				
			||||||
	--enable-xa \
 | 
					 | 
				
			||||||
	--enable-xvmc \
 | 
					 | 
				
			||||||
	--enable-llvm-shared-libs \
 | 
					 | 
				
			||||||
	--with-egl-platforms=x11,wayland,drm,surfaceless \
 | 
					 | 
				
			||||||
	--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
 | 
					 | 
				
			||||||
	--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,swr,etnaviv,imx \
 | 
					 | 
				
			||||||
	--with-vulkan-drivers=intel,radeon
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ACLOCAL_AMFLAGS = -I m4
 | 
					check-local:
 | 
				
			||||||
 | 
						$(MAKE) -C src/mapi/glapi/tests check
 | 
				
			||||||
 | 
						$(MAKE) -C src/mesa/main/tests check
 | 
				
			||||||
 | 
						$(MAKE) -C src/glsl/tests check
 | 
				
			||||||
 | 
						$(MAKE) -C src/glx/tests check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXTRA_DIST = \
 | 
					clean-local:
 | 
				
			||||||
	autogen.sh \
 | 
						-@touch $(top_builddir)/configs/current
 | 
				
			||||||
	common.py \
 | 
						-@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
	docs \
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
	doxygen \
 | 
								(cd $$dir && $(MAKE) clean) ; \
 | 
				
			||||||
	scons \
 | 
							fi \
 | 
				
			||||||
	SConstruct
 | 
						done
 | 
				
			||||||
 | 
						-@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current
 | 
				
			||||||
 | 
					
 | 
				
			||||||
noinst_HEADERS = \
 | 
					 | 
				
			||||||
	include/c99_alloca.h \
 | 
					 | 
				
			||||||
	include/c99_compat.h \
 | 
					 | 
				
			||||||
	include/c99_math.h \
 | 
					 | 
				
			||||||
	include/c11 \
 | 
					 | 
				
			||||||
	include/D3D9 \
 | 
					 | 
				
			||||||
	include/GL/wglext.h \
 | 
					 | 
				
			||||||
	include/HaikuGL \
 | 
					 | 
				
			||||||
	include/no_extern_c.h \
 | 
					 | 
				
			||||||
	include/pci_ids
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# We list some directories in EXTRA_DIST, but don't actually want to include
 | 
					
 | 
				
			||||||
# the .gitignore files in the tarball.
 | 
					distclean-local:
 | 
				
			||||||
dist-hook:
 | 
						-rm -rf lib*
 | 
				
			||||||
	find $(distdir) -name .gitignore -exec $(RM) {} +
 | 
						-rm -f $(top_builddir)/configs/current
 | 
				
			||||||
 | 
						-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
 | 
				
			||||||
 | 
						  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: doxygen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rules for making release tarballs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PACKAGE_VERSION=8.1-devel
 | 
				
			||||||
 | 
					PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
 | 
				
			||||||
 | 
					PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXTRA_FILES = \
 | 
				
			||||||
 | 
						aclocal.m4					\
 | 
				
			||||||
 | 
						configure					\
 | 
				
			||||||
 | 
						src/glsl/glsl_parser.cc				\
 | 
				
			||||||
 | 
						src/glsl/glsl_parser.h				\
 | 
				
			||||||
 | 
						src/glsl/glsl_lexer.cc				\
 | 
				
			||||||
 | 
						src/glsl/glcpp/glcpp-lex.c			\
 | 
				
			||||||
 | 
						src/glsl/glcpp/glcpp-parse.c			\
 | 
				
			||||||
 | 
						src/glsl/glcpp/glcpp-parse.h			\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es1.c			\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es1_dispatch.h		\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es1_remap_helper.h	\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es2.c			\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es2_dispatch.h		\
 | 
				
			||||||
 | 
						src/mesa/main/api_exec_es2_remap_helper.h	\
 | 
				
			||||||
 | 
						src/mesa/program/lex.yy.c			\
 | 
				
			||||||
 | 
						src/mesa/program/program_parse.tab.c		\
 | 
				
			||||||
 | 
						src/mesa/program/program_parse.tab.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IGNORE_FILES = \
 | 
				
			||||||
 | 
						-x autogen.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parsers: configure
 | 
				
			||||||
 | 
						-@touch $(top_builddir)/configs/current
 | 
				
			||||||
 | 
						$(MAKE) -C src/glsl glsl_parser.cc glsl_parser.h glsl_lexer.cc
 | 
				
			||||||
 | 
						$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
 | 
				
			||||||
 | 
						$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Everything for new a Mesa release:
 | 
				
			||||||
 | 
					ARCHIVES = $(PACKAGE_NAME).tar.gz \
 | 
				
			||||||
 | 
						$(PACKAGE_NAME).tar.bz2 \
 | 
				
			||||||
 | 
						$(PACKAGE_NAME).zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tarballs: md5
 | 
				
			||||||
 | 
						rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					manifest.txt: .git
 | 
				
			||||||
 | 
						( \
 | 
				
			||||||
 | 
							ls -1 $(EXTRA_FILES) ; \
 | 
				
			||||||
 | 
							git ls-files $(IGNORE_FILES) \
 | 
				
			||||||
 | 
						) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					../$(PACKAGE_DIR):
 | 
				
			||||||
 | 
						ln -s $(PWD) $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
 | 
				
			||||||
 | 
						cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
 | 
				
			||||||
 | 
						gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
 | 
				
			||||||
 | 
						bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
 | 
				
			||||||
 | 
						rm -f $(PACKAGE_NAME).zip ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
 | 
				
			||||||
 | 
						mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					md5: $(ARCHIVES)
 | 
				
			||||||
 | 
						@-md5sum $(PACKAGE_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(PACKAGE_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(PACKAGE_NAME).zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: tarballs md5
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										116
									
								
								REVIEWERS
									
									
									
									
									
								
							
							
						
						
									
										116
									
								
								REVIEWERS
									
									
									
									
									
								
							@@ -1,116 +0,0 @@
 | 
				
			|||||||
Overview:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	This file is similar in syntax (or more precisly a subset) of what is
 | 
					 | 
				
			||||||
	used by the MAINTAINERS file in the linux kernel.  Some fields do not
 | 
					 | 
				
			||||||
	apply, for example, in all cases, send patches to:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mesa-dev@lists.freedesktop.org
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	and in all cases the patchwork instance is:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		https://patchwork.freedesktop.org/project/mesa/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	The purpose is not exactly the same the MAINTAINERS file in the linux
 | 
					 | 
				
			||||||
	kernel, as there are not official/formal maintainers of different
 | 
					 | 
				
			||||||
	subsystems in mesa, but is meant to give an idea of who to CC for
 | 
					 | 
				
			||||||
	various patches for review, and to allow the use of
 | 
					 | 
				
			||||||
	scripts/get_reviewer.pl as git --cc-cmd.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Usage:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	When sending patches:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		git send-email --cc-cmd ./scripts/get_reviewer.pl ...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Or to configure as default:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		git config sendemail.cccmd ./scripts/get_reviewer.pl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Descriptions of section entries:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	R: Designated reviewer: FullName <address@domain>
 | 
					 | 
				
			||||||
	   These reviewers should be CCed on patches.
 | 
					 | 
				
			||||||
	F: Files and directories with wildcard patterns.
 | 
					 | 
				
			||||||
	   A trailing slash includes all files and subdirectory files.
 | 
					 | 
				
			||||||
	   F:	drivers/net/	all files in and below drivers/net
 | 
					 | 
				
			||||||
	   F:	drivers/net/*	all files in drivers/net, but not below
 | 
					 | 
				
			||||||
	   F:	*/net/*		all files in "any top level directory"/net
 | 
					 | 
				
			||||||
	   One pattern per line.  Multiple F: lines acceptable.
 | 
					 | 
				
			||||||
	N: Files and directories with regex patterns.
 | 
					 | 
				
			||||||
	   N:	[^a-z]tegra	all files whose path contains the word tegra
 | 
					 | 
				
			||||||
	   One pattern per line.  Multiple N: lines acceptable.
 | 
					 | 
				
			||||||
	   scripts/get_maintainer.pl has different behavior for files that
 | 
					 | 
				
			||||||
	   match F: pattern and matches of N: patterns.  By default,
 | 
					 | 
				
			||||||
	   get_maintainer will not look at git log history when an F: pattern
 | 
					 | 
				
			||||||
	   match occurs.  When an N: match occurs, git log history is used
 | 
					 | 
				
			||||||
	   to also notify the people that have git commit signatures.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maintainers List (try to look for most precise areas first)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: this is an opt-in system, I have not tried to add anyone who hasn't
 | 
					 | 
				
			||||||
either asked me or sent a patch to add themselves.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		-----------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NIR
 | 
					 | 
				
			||||||
R:	Jason Ekstrand <jason@jlekstrand.net>
 | 
					 | 
				
			||||||
F:	src/compiler/nir/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DOCUMENTATION
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: docs/
 | 
					 | 
				
			||||||
F: doxygen/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COMPATIBILITY HEADERS
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: include/c99*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DRI LOADER
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/loader/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM LOADER
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/gallium/auxiliary/pipe-loader/
 | 
					 | 
				
			||||||
F: src/gallium/auxiliary/target-helpers/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM TARGETS
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/gallium/targets/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUTOCONF BUILD
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: configure.ac
 | 
					 | 
				
			||||||
F: */Automake.inc
 | 
					 | 
				
			||||||
F: */Makefile.*am
 | 
					 | 
				
			||||||
F: */Makefile.sources
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SCONS BUILD
 | 
					 | 
				
			||||||
F: scons/
 | 
					 | 
				
			||||||
F: */SConscript*
 | 
					 | 
				
			||||||
F: */Makefile.sources
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ANDROID BUILD
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
R: Rob Herring <robh@kernel.org>
 | 
					 | 
				
			||||||
F: CleanSpec.mk
 | 
					 | 
				
			||||||
F: */Android.*mk
 | 
					 | 
				
			||||||
F: */Makefile.sources
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ANDROID EGL SUPPORT
 | 
					 | 
				
			||||||
R: Rob Herring <robh@kernel.org>
 | 
					 | 
				
			||||||
R: Tomasz Figa <tfiga@chromium.org>
 | 
					 | 
				
			||||||
F: src/egl/drivers/dri2/platform_android.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WAYLAND EGL SUPPORT
 | 
					 | 
				
			||||||
R: Daniel Stone <daniels@collabora.com>
 | 
					 | 
				
			||||||
F: src/egl/wayland/*
 | 
					 | 
				
			||||||
F: src/egl/drivers/dri2/platform_wayland.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FREEDRENO
 | 
					 | 
				
			||||||
R:	Rob Clark <robclark@freedesktop.org>
 | 
					 | 
				
			||||||
F:	src/gallium/drivers/freedreno/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX
 | 
					 | 
				
			||||||
R: Adam Jackson <ajax@redhat.com>
 | 
					 | 
				
			||||||
F: src/glx/
 | 
					 | 
				
			||||||
							
								
								
									
										39
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								SConstruct
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
				
			|||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Top-level SConstruct
 | 
					# Top-level SConstruct
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# For example, invoke scons as
 | 
					# For example, invoke scons as 
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   scons build=debug llvm=yes machine=x86
 | 
					#   scons build=debug llvm=yes machine=x86
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@@ -12,13 +12,13 @@
 | 
				
			|||||||
#   build='debug'
 | 
					#   build='debug'
 | 
				
			||||||
#   llvm=True
 | 
					#   llvm=True
 | 
				
			||||||
#   machine='x86'
 | 
					#   machine='x86'
 | 
				
			||||||
#
 | 
					# 
 | 
				
			||||||
# Invoke
 | 
					# Invoke
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   scons -h
 | 
					#   scons -h
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# to get the full list of options. See scons manpage for more info.
 | 
					# to get the full list of options. See scons manpage for more info.
 | 
				
			||||||
#
 | 
					#  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import os.path
 | 
					import os.path
 | 
				
			||||||
@@ -36,7 +36,7 @@ common.AddOptions(opts)
 | 
				
			|||||||
env = Environment(
 | 
					env = Environment(
 | 
				
			||||||
	options = opts,
 | 
						options = opts,
 | 
				
			||||||
	tools = ['gallium'],
 | 
						tools = ['gallium'],
 | 
				
			||||||
	toolpath = ['#scons'],
 | 
						toolpath = ['#scons'],	
 | 
				
			||||||
	ENV = os.environ,
 | 
						ENV = os.environ,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -53,22 +53,22 @@ else:
 | 
				
			|||||||
    print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
 | 
					    print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
 | 
				
			||||||
    print
 | 
					    print
 | 
				
			||||||
    print '  scons %s' % ' '.join(targets)
 | 
					    print '  scons %s' % ' '.join(targets)
 | 
				
			||||||
    print
 | 
					    print 
 | 
				
			||||||
    COMMAND_LINE_TARGETS.append(targets)
 | 
					    COMMAND_LINE_TARGETS.append(targets)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Help(opts.GenerateHelpText(env))
 | 
					Help(opts.GenerateHelpText(env))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# fail early for a common error on windows
 | 
				
			||||||
 | 
					if env['gles']:
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        import libxml2
 | 
				
			||||||
 | 
					    except ImportError:
 | 
				
			||||||
 | 
					        raise SCons.Errors.UserError, "GLES requires libxml2-python to build"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Environment setup
 | 
					# 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
 | 
					# Includes
 | 
				
			||||||
env.Prepend(CPPPATH = [
 | 
					env.Prepend(CPPPATH = [
 | 
				
			||||||
	'#/include',
 | 
						'#/include',
 | 
				
			||||||
@@ -80,18 +80,16 @@ env.Append(CPPPATH = [
 | 
				
			|||||||
	'#/src/gallium/winsys',
 | 
						'#/src/gallium/winsys',
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if env['msvc']:
 | 
				
			||||||
 | 
					    env.Append(CPPPATH = ['#include/c99'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# for debugging
 | 
					# for debugging
 | 
				
			||||||
#print env.Dump()
 | 
					#print env.Dump()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add a check target for running tests
 | 
					 | 
				
			||||||
check = env.Alias('check')
 | 
					 | 
				
			||||||
env.AlwaysBuild(check)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Invoke host SConscripts
 | 
					# Invoke host SConscripts 
 | 
				
			||||||
#
 | 
					# 
 | 
				
			||||||
# For things that are meant to be run on the native host build machine, instead
 | 
					# For things that are meant to be run on the native host build machine, instead
 | 
				
			||||||
# of the target machine.
 | 
					# of the target machine.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@@ -117,6 +115,9 @@ if env['crosscompile'] and not env['embedded']:
 | 
				
			|||||||
    host_env['hostonly'] = True
 | 
					    host_env['hostonly'] = True
 | 
				
			||||||
    assert host_env['crosscompile'] == False
 | 
					    assert host_env['crosscompile'] == False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if host_env['msvc']:
 | 
				
			||||||
 | 
					        host_env.Append(CPPPATH = ['#include/c99'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    target_env = env
 | 
					    target_env = env
 | 
				
			||||||
    env = host_env
 | 
					    env = host_env
 | 
				
			||||||
    Export('env')
 | 
					    Export('env')
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					# A few convenience macros for Mesa, mostly to keep all the platform
 | 
				
			||||||
 | 
					# specifics out of configure.ac.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MESA_PIC_FLAGS()
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Find out whether to build PIC code using the option --enable-pic and
 | 
				
			||||||
 | 
					# the configure enable_static/enable_shared settings. If PIC is needed,
 | 
				
			||||||
 | 
					# figure out the necessary flags for the platform and compiler.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The platform checks have been shamelessly taken from libtool and
 | 
				
			||||||
 | 
					# stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in
 | 
				
			||||||
 | 
					# /usr/share/aclocal/libtool.m4 or
 | 
				
			||||||
 | 
					# http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					AC_DEFUN([MESA_PIC_FLAGS],
 | 
				
			||||||
 | 
					[AC_REQUIRE([AC_PROG_CC])dnl
 | 
				
			||||||
 | 
					AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code])
 | 
				
			||||||
 | 
					AC_ARG_ENABLE([pic],
 | 
				
			||||||
 | 
					    [AS_HELP_STRING([--disable-pic],
 | 
				
			||||||
 | 
					        [compile PIC objects @<:@default=enabled for shared builds
 | 
				
			||||||
 | 
					        on supported platforms@:>@])],
 | 
				
			||||||
 | 
					    [enable_pic="$enableval"
 | 
				
			||||||
 | 
					    test "x$enable_pic" = x && enable_pic=auto],
 | 
				
			||||||
 | 
					    [enable_pic=auto])
 | 
				
			||||||
 | 
					# disable PIC by default for static builds
 | 
				
			||||||
 | 
					if test "$enable_pic" = auto && test "$enable_static" = yes; then
 | 
				
			||||||
 | 
					    enable_pic=no
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					# if PIC hasn't been explicitly disabled, try to figure out the flags
 | 
				
			||||||
 | 
					if test "$enable_pic" != no; then
 | 
				
			||||||
 | 
					    AC_MSG_CHECKING([for $CC option to produce PIC])
 | 
				
			||||||
 | 
					    # allow the user's flags to override
 | 
				
			||||||
 | 
					    if test "x$PIC_FLAGS" = x; then
 | 
				
			||||||
 | 
					        # see if we're using GCC
 | 
				
			||||||
 | 
					        if test "x$GCC" = xyes; then
 | 
				
			||||||
 | 
					            case "$host_os" in
 | 
				
			||||||
 | 
					            aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
 | 
				
			||||||
 | 
					                # PIC is the default for these OSes.
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            mingw*|os2*|pw32*)
 | 
				
			||||||
 | 
					                # This hack is so that the source file can tell whether
 | 
				
			||||||
 | 
					                # it is being built for inclusion in a dll (and should
 | 
				
			||||||
 | 
					                # export symbols for example).
 | 
				
			||||||
 | 
					                PIC_FLAGS="-DDLL_EXPORT"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            darwin*|rhapsody*)
 | 
				
			||||||
 | 
					                # PIC is the default on this platform
 | 
				
			||||||
 | 
					                # Common symbols not allowed in MH_DYLIB files
 | 
				
			||||||
 | 
					                PIC_FLAGS="-fno-common"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            hpux*)
 | 
				
			||||||
 | 
					                # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
 | 
				
			||||||
 | 
					                # but not for PA HP-UX.
 | 
				
			||||||
 | 
					                case $host_cpu in
 | 
				
			||||||
 | 
					                hppa*64*|ia64*)
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                *)
 | 
				
			||||||
 | 
					                    PIC_FLAGS="-fPIC"
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                esac
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            *)
 | 
				
			||||||
 | 
					                # Everyone else on GCC uses -fPIC
 | 
				
			||||||
 | 
					                PIC_FLAGS="-fPIC"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            esac
 | 
				
			||||||
 | 
					        else # !GCC
 | 
				
			||||||
 | 
					            case "$host_os" in
 | 
				
			||||||
 | 
					            hpux9*|hpux10*|hpux11*)
 | 
				
			||||||
 | 
					                # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
 | 
				
			||||||
 | 
					                # but not for PA HP-UX.
 | 
				
			||||||
 | 
					                case "$host_cpu" in
 | 
				
			||||||
 | 
					                hppa*64*|ia64*)
 | 
				
			||||||
 | 
					                    # +Z the default
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                *)
 | 
				
			||||||
 | 
					                    PIC_FLAGS="+Z"
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                esac
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            linux*|k*bsd*-gnu)
 | 
				
			||||||
 | 
					                case `basename "$CC"` in
 | 
				
			||||||
 | 
					                icc*|ecc*|ifort*)
 | 
				
			||||||
 | 
					                    PIC_FLAGS="-KPIC"
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                pgcc*|pgf77*|pgf90*|pgf95*)
 | 
				
			||||||
 | 
					                    # Portland Group compilers (*not* the Pentium gcc
 | 
				
			||||||
 | 
					                    # compiler, which looks to be a dead project)
 | 
				
			||||||
 | 
					                    PIC_FLAGS="-fpic"
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                ccc*)
 | 
				
			||||||
 | 
					                    # All Alpha code is PIC.
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                xl*)
 | 
				
			||||||
 | 
					                    # IBM XL C 8.0/Fortran 10.1 on PPC
 | 
				
			||||||
 | 
					                    PIC_FLAGS="-qpic"
 | 
				
			||||||
 | 
					                    ;;
 | 
				
			||||||
 | 
					                *)
 | 
				
			||||||
 | 
					                    case `$CC -V 2>&1 | sed 5q` in
 | 
				
			||||||
 | 
					                    *Sun\ C*|*Sun\ F*)
 | 
				
			||||||
 | 
					                        # Sun C 5.9 or Sun Fortran
 | 
				
			||||||
 | 
					                        PIC_FLAGS="-KPIC"
 | 
				
			||||||
 | 
					                        ;;
 | 
				
			||||||
 | 
					                    esac
 | 
				
			||||||
 | 
					                esac
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            solaris*)
 | 
				
			||||||
 | 
					                PIC_FLAGS="-KPIC"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            sunos4*)
 | 
				
			||||||
 | 
					                PIC_FLAGS="-PIC"
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					            esac
 | 
				
			||||||
 | 
					        fi # GCC
 | 
				
			||||||
 | 
					    fi # PIC_FLAGS
 | 
				
			||||||
 | 
					    AC_MSG_RESULT([$PIC_FLAGS])
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					AC_SUBST([PIC_FLAGS])
 | 
				
			||||||
 | 
					])# MESA_PIC_FLAGS
 | 
				
			||||||
							
								
								
									
										80
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										80
									
								
								appveyor.yml
									
									
									
									
									
								
							@@ -1,80 +0,0 @@
 | 
				
			|||||||
# http://www.appveyor.com/docs/appveyor-yml
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To setup AppVeyor for your own personal repositories do the following:
 | 
					 | 
				
			||||||
# - Sign up
 | 
					 | 
				
			||||||
# - Add a new project
 | 
					 | 
				
			||||||
# - Select Git and fill in the Git clone URL
 | 
					 | 
				
			||||||
# - Setup a Git hook as explained in
 | 
					 | 
				
			||||||
#   https://github.com/appveyor/webhooks#installing-git-hook
 | 
					 | 
				
			||||||
# - Check 'Settings > General > Skip branches without appveyor.yml'
 | 
					 | 
				
			||||||
# - Check 'Settings > General > Rolling builds'
 | 
					 | 
				
			||||||
# - Setup the global or project notifications to your liking
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note that kicking (or restarting) a build via the web UI will not work, as it
 | 
					 | 
				
			||||||
# will fail to find appveyor.yml .  The Git hook is the most practical way to
 | 
					 | 
				
			||||||
# kick a build.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# See also:
 | 
					 | 
				
			||||||
# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
 | 
					 | 
				
			||||||
# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
version: '{build}'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
branches:
 | 
					 | 
				
			||||||
  except:
 | 
					 | 
				
			||||||
  - /^travis.*$/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Don't download the full Mesa history to speed up cloning.  However the clone
 | 
					 | 
				
			||||||
# depth must not be too small, otherwise builds might fail when lots of patches
 | 
					 | 
				
			||||||
# are committed in succession, because the desired commit is not found on the
 | 
					 | 
				
			||||||
# truncated history.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# See also:
 | 
					 | 
				
			||||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
 | 
					 | 
				
			||||||
clone_depth: 100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
- win_flex_bison-2.4.5.zip
 | 
					 | 
				
			||||||
- llvm-3.3.1-msvc2013-mtd.7z
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os: Visual Studio 2013
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
environment:
 | 
					 | 
				
			||||||
  WINFLEXBISON_ARCHIVE: win_flex_bison-2.4.5.zip
 | 
					 | 
				
			||||||
  LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
# Check pip
 | 
					 | 
				
			||||||
- python --version
 | 
					 | 
				
			||||||
- python -m pip --version
 | 
					 | 
				
			||||||
# Install Mako
 | 
					 | 
				
			||||||
- python -m pip install --egg Mako
 | 
					 | 
				
			||||||
# Install pywin32 extensions, needed by SCons
 | 
					 | 
				
			||||||
- python -m pip install pypiwin32
 | 
					 | 
				
			||||||
# Install SCons
 | 
					 | 
				
			||||||
- python -m pip install --egg scons==2.4.1
 | 
					 | 
				
			||||||
- scons --version
 | 
					 | 
				
			||||||
# Install flex/bison
 | 
					 | 
				
			||||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
 | 
					 | 
				
			||||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
 | 
					 | 
				
			||||||
- set Path=%CD%\winflexbison;%Path%
 | 
					 | 
				
			||||||
- win_flex --version
 | 
					 | 
				
			||||||
- win_bison --version
 | 
					 | 
				
			||||||
# Download and extract LLVM
 | 
					 | 
				
			||||||
- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
 | 
					 | 
				
			||||||
- 7z x -y "%LLVM_ARCHIVE%" > nul
 | 
					 | 
				
			||||||
- mkdir llvm\bin
 | 
					 | 
				
			||||||
- set LLVM=%CD%\llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
build_script:
 | 
					 | 
				
			||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
after_build:
 | 
					 | 
				
			||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1 check
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# It's possible to setup notification here, as described in
 | 
					 | 
				
			||||||
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
 | 
					 | 
				
			||||||
# doing so would cause the notification settings to be replicated across all
 | 
					 | 
				
			||||||
# repos, which is most likely undesired.  So it's better to rely on the
 | 
					 | 
				
			||||||
# Appveyor global/project notification settings.
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -3,11 +3,17 @@
 | 
				
			|||||||
srcdir=`dirname "$0"`
 | 
					srcdir=`dirname "$0"`
 | 
				
			||||||
test -z "$srcdir" && srcdir=.
 | 
					test -z "$srcdir" && srcdir=.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SRCDIR=`(cd "$srcdir" && pwd)`
 | 
				
			||||||
ORIGDIR=`pwd`
 | 
					ORIGDIR=`pwd`
 | 
				
			||||||
cd "$srcdir"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
autoreconf --force --verbose --install || exit 1
 | 
					if test "x$SRCDIR" != "x$ORIGDIR"; then
 | 
				
			||||||
cd "$ORIGDIR" || exit $?
 | 
						echo "Mesa cannot be built when srcdir != builddir" 1>&2
 | 
				
			||||||
 | 
						exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAKEFLAGS=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					autoreconf -v --install || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if test -z "$NOCONFIGURE"; then
 | 
					if test -z "$NOCONFIGURE"; then
 | 
				
			||||||
    "$srcdir"/configure "$@"
 | 
					    "$srcdir"/configure "$@"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +0,0 @@
 | 
				
			|||||||
[*.sh]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 2
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -6,4 +6,3 @@ install-sh
 | 
				
			|||||||
ylwrap
 | 
					ylwrap
 | 
				
			||||||
compile
 | 
					compile
 | 
				
			||||||
ar-lib
 | 
					ar-lib
 | 
				
			||||||
/test-driver
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,49 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This script is used to generate the list of fixed bugs that
 | 
					 | 
				
			||||||
# appears in the release notes files, with HTML formatting.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: This script could take a while until all details have
 | 
					 | 
				
			||||||
#       been fetched from bugzilla.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
 | 
					 | 
				
			||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 > bugfixes
 | 
					 | 
				
			||||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes
 | 
					 | 
				
			||||||
# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
 | 
					 | 
				
			||||||
# $ DRYRUN=yes bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | wc -l
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# regex pattern: trim before bug number
 | 
					 | 
				
			||||||
trim_before='s/.*show_bug.cgi?id=\([0-9]*\).*/\1/'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# regex pattern: reconstruct the url
 | 
					 | 
				
			||||||
use_after='s,^,https://bugs.freedesktop.org/show_bug.cgi?id=,'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# extract fdo urls from commit log
 | 
					 | 
				
			||||||
urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# if DRYRUN is set to "yes", simply print the URLs and don't fetch the
 | 
					 | 
				
			||||||
# details from fdo bugzilla.
 | 
					 | 
				
			||||||
#DRYRUN=yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "x$DRYRUN" = xyes ]; then
 | 
					 | 
				
			||||||
	for i in $urls
 | 
					 | 
				
			||||||
	do
 | 
					 | 
				
			||||||
		echo $i
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	echo "<ul>"
 | 
					 | 
				
			||||||
	echo ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i in $urls
 | 
					 | 
				
			||||||
	do
 | 
					 | 
				
			||||||
		id=$(echo $i | cut -d'=' -f2)
 | 
					 | 
				
			||||||
		summary=$(wget --quiet -O - $i | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/')
 | 
					 | 
				
			||||||
		echo "<li><a href=\"$i\">Bug $id</a> - $summary</li>"
 | 
					 | 
				
			||||||
		echo ""
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo "</ul>"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Script for generating a list of candidates which fix commits that have been
 | 
					 | 
				
			||||||
# previously cherry-picked to a stable branch.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh > picklist
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh | tee picklist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use the last branchpoint as our limit for the search
 | 
					 | 
				
			||||||
# XXX: there should be a better way for this
 | 
					 | 
				
			||||||
latest_branchpoint=`git branch | grep \* | cut -c 3-`-branchpoint
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits with "cherry picked from commit" in the commit message.
 | 
					 | 
				
			||||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
 | 
					 | 
				
			||||||
	grep "cherry picked from commit" |\
 | 
					 | 
				
			||||||
	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' |\
 | 
					 | 
				
			||||||
	cut -c -8 |\
 | 
					 | 
				
			||||||
while read sha
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	# Check if the original commit is referenced in master
 | 
					 | 
				
			||||||
	git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
 | 
					 | 
				
			||||||
		cut -c -8 |\
 | 
					 | 
				
			||||||
	while read candidate
 | 
					 | 
				
			||||||
	do
 | 
					 | 
				
			||||||
		# Check if the potential fix, hasn't landed in branch yet.
 | 
					 | 
				
			||||||
		found=`git log -n1 --pretty=oneline --reverse --grep=$candidate $latest_branchpoint..HEAD |wc -l`
 | 
					 | 
				
			||||||
		if test $found = 0
 | 
					 | 
				
			||||||
		then
 | 
					 | 
				
			||||||
			echo Commit $candidate might need to be picked, as it references $sha
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Script for generating a list of candidates for cherry-picking to a stable branch
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh > picklist
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh | tee picklist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits with "cherry picked from commit" in the commit message.
 | 
					 | 
				
			||||||
git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
 | 
					 | 
				
			||||||
	grep "cherry picked from commit" |\
 | 
					 | 
				
			||||||
	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits that were marked as a candidate for the stable tree.
 | 
					 | 
				
			||||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*mesa-stable\)' HEAD..origin/master |\
 | 
					 | 
				
			||||||
while read sha
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	# Check to see whether the patch is on the ignore list.
 | 
					 | 
				
			||||||
	if [ -f bin/.cherry-ignore ] ; then
 | 
					 | 
				
			||||||
		if grep -q ^$sha bin/.cherry-ignore ; then
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Check to see if it has already been picked over.
 | 
					 | 
				
			||||||
	if grep -q ^$sha already_picked ; then
 | 
					 | 
				
			||||||
		continue
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	git log -n1 --pretty=oneline $sha | cat
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm -f already_picked
 | 
					 | 
				
			||||||
@@ -1,39 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Script for generating a list of candidates which have typos in the nomination line
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/get-typod-pick-list.sh
 | 
					 | 
				
			||||||
# $ bin/get-typod-pick-list.sh > picklist
 | 
					 | 
				
			||||||
# $ bin/get-typod-pick-list.sh | tee picklist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# NB:
 | 
					 | 
				
			||||||
# This script intentionally _never_ checks for specific version tag
 | 
					 | 
				
			||||||
# Should we consider folding it with the original get-pick-list.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits with "cherry picked from commit" in the commit message.
 | 
					 | 
				
			||||||
git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
 | 
					 | 
				
			||||||
	grep "cherry picked from commit" |\
 | 
					 | 
				
			||||||
	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits that were marked as a candidate for the stable tree.
 | 
					 | 
				
			||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' HEAD..origin/master |\
 | 
					 | 
				
			||||||
while read sha
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	# Check to see whether the patch is on the ignore list.
 | 
					 | 
				
			||||||
	if [ -f bin/.cherry-ignore ] ; then
 | 
					 | 
				
			||||||
		if grep -q ^$sha bin/.cherry-ignore ; then
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Check to see if it has already been picked over.
 | 
					 | 
				
			||||||
	if grep -q ^$sha already_picked ; then
 | 
					 | 
				
			||||||
		continue
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	git log -n1 --pretty=oneline $sha | cat
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm -f already_picked
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Simple shell script for installing Mesa's header and library files.
 | 
				
			||||||
 | 
					# If the copy commands below don't work on a particular system (i.e. the
 | 
				
			||||||
 | 
					# -f or -d flags), we may need to branch on `uname` to do the right thing.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TOP=.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDE_DIR="/usr/local/include"
 | 
				
			||||||
 | 
					LIB_DIR="/usr/local/lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "x$#" = "x0" ] ; then
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "***** Mesa installation - You may need root privileges to do this *****"
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "Default directory for header files is:" ${INCLUDE_DIR}
 | 
				
			||||||
 | 
					echo "Enter new directory or press <Enter> to accept this default."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					if [ "x${INPUT}" != "x" ] ; then
 | 
				
			||||||
 | 
						INCLUDE_DIR=${INPUT}
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "Default directory for library files is:" ${LIB_DIR}
 | 
				
			||||||
 | 
					echo "Enter new directory or press <Enter> to accept this default."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					if [ "x${INPUT}" != "x" ] ; then
 | 
				
			||||||
 | 
						LIB_DIR=${INPUT}
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR}
 | 
				
			||||||
 | 
					echo "Press <Enter> to continue, or <ctrl>-C to abort."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					INCLUDE_DIR=$1/include
 | 
				
			||||||
 | 
					LIB_DIR=$1/lib
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# flags:
 | 
				
			||||||
 | 
					#  -f = force
 | 
				
			||||||
 | 
					#  -d = preserve symlinks (does not work on BSD)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ `uname` = "FreeBSD" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-f"
 | 
				
			||||||
 | 
					elif [ `uname` = "Darwin" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-f"
 | 
				
			||||||
 | 
					elif [ `uname` = "AIX" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-fh"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						CP_FLAGS="-fd"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p ${INCLUDE_DIR}
 | 
				
			||||||
 | 
					mkdir -p ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					# NOT YET: mkdir -p ${INCLUDE_DIR}/GLES
 | 
				
			||||||
 | 
					mkdir -p ${LIB_DIR}
 | 
				
			||||||
 | 
					cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					cp -f ${TOP}/src/glw/*.h ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					# NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES
 | 
				
			||||||
 | 
					cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Done."
 | 
				
			||||||
							
								
								
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A minimal replacement for 'install' that supports installing symbolic links.
 | 
				
			||||||
 | 
					# Only a limited number of options are supported:
 | 
				
			||||||
 | 
					# -d dir          Create a directory
 | 
				
			||||||
 | 
					# -m mode         Sets a file's mode when installing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If these commands aren't portable, we'll need some "if (arch)" type stuff
 | 
				
			||||||
 | 
					SYMLINK="ln -s"
 | 
				
			||||||
 | 
					MKDIR="mkdir -p"
 | 
				
			||||||
 | 
					RM="rm -f"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MODE=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" = "-d" ] ; then
 | 
				
			||||||
 | 
						# make a directory path
 | 
				
			||||||
 | 
						$MKDIR "$2"
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" = "-m" ] ; then
 | 
				
			||||||
 | 
						# set file mode
 | 
				
			||||||
 | 
						MODE=$2
 | 
				
			||||||
 | 
						shift 2
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install file(s) into destination
 | 
				
			||||||
 | 
					if [ $# -ge 2 ] ; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Last cmd line arg is the dest dir
 | 
				
			||||||
 | 
						for FILE in $@ ; do
 | 
				
			||||||
 | 
							DESTDIR="$FILE"
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Loop over args, moving them to DEST directory
 | 
				
			||||||
 | 
						I=1
 | 
				
			||||||
 | 
						for FILE in $@ ; do
 | 
				
			||||||
 | 
							if [ $I = $# ] ; then
 | 
				
			||||||
 | 
								# stop, don't want to install $DEST into $DEST
 | 
				
			||||||
 | 
								exit 0
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                DEST=$DESTDIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # On CYGWIN, because DLLs are loaded by the native Win32 loader,
 | 
				
			||||||
 | 
					                # they are installed in the executable path.  Stub libraries used
 | 
				
			||||||
 | 
					                # only for linking are installed in the library path
 | 
				
			||||||
 | 
					                case `uname` in
 | 
				
			||||||
 | 
					                    CYGWIN*)
 | 
				
			||||||
 | 
					                        case $FILE in
 | 
				
			||||||
 | 
					                            *.dll)
 | 
				
			||||||
 | 
					                                DEST="$DEST/../bin"
 | 
				
			||||||
 | 
					                                ;;
 | 
				
			||||||
 | 
					                            *)
 | 
				
			||||||
 | 
					                                ;;
 | 
				
			||||||
 | 
					                        esac
 | 
				
			||||||
 | 
						                ;;
 | 
				
			||||||
 | 
					                    *)
 | 
				
			||||||
 | 
					                        ;;
 | 
				
			||||||
 | 
					                esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							PWDSAVE=`pwd`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							# determine file's type
 | 
				
			||||||
 | 
							if [ -h "$FILE" ] ; then
 | 
				
			||||||
 | 
								#echo $FILE is a symlink
 | 
				
			||||||
 | 
								# Unfortunately, cp -d isn't universal so we have to
 | 
				
			||||||
 | 
								# use a work-around.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								# Use ls -l to find the target that the link points to
 | 
				
			||||||
 | 
								LL=`ls -l "$FILE"`
 | 
				
			||||||
 | 
								for L in $LL ; do
 | 
				
			||||||
 | 
									TARGET=$L
 | 
				
			||||||
 | 
								done
 | 
				
			||||||
 | 
								#echo $FILE is a symlink pointing to $TARGET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								FILE=`basename "$FILE"`
 | 
				
			||||||
 | 
								# Go to $DEST and make the link
 | 
				
			||||||
 | 
								cd "$DEST"        # pushd
 | 
				
			||||||
 | 
									$RM "$FILE"
 | 
				
			||||||
 | 
									$SYMLINK "$TARGET" "$FILE"
 | 
				
			||||||
 | 
								cd "$PWDSAVE"     # popd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							elif [ -f "$FILE" ] ; then
 | 
				
			||||||
 | 
								#echo "$FILE" is a regular file
 | 
				
			||||||
 | 
								# Only copy if the files differ
 | 
				
			||||||
 | 
								if ! cmp -s $FILE $DEST/`basename $FILE`; then
 | 
				
			||||||
 | 
									$RM "$DEST/`basename $FILE`"
 | 
				
			||||||
 | 
									cp "$FILE" "$DEST"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								if [ $MODE ] ; then
 | 
				
			||||||
 | 
									FILE=`basename "$FILE"`
 | 
				
			||||||
 | 
									chmod $MODE "$DEST/$FILE"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								echo "Unknown type of argument: " "$FILE"
 | 
				
			||||||
 | 
								exit 1
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							I=`expr $I + 1`
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If we get here, we didn't find anything to do
 | 
				
			||||||
 | 
					echo "Usage:"
 | 
				
			||||||
 | 
					echo "  install -d dir                      Create named directory"
 | 
				
			||||||
 | 
					echo "  install [-m mode] file [...] dest   Install files in destination"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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:
 | 
					 | 
				
			||||||
@@ -2,12 +2,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# This script is used to generate the list of changes that
 | 
					# This script is used to generate the list of changes that
 | 
				
			||||||
# appears in the release notes files, with HTML formatting.
 | 
					# appears in the release notes files, with HTML formatting.
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
 | 
					 | 
				
			||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 > changes
 | 
					 | 
				
			||||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typeset -i in_log=0
 | 
					typeset -i in_log=0
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										99
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								common.py
									
									
									
									
									
								
							@@ -26,28 +26,28 @@ else:
 | 
				
			|||||||
    target_platform = host_platform
 | 
					    target_platform = host_platform
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_machine_map = {
 | 
					_machine_map = {
 | 
				
			||||||
    'x86': 'x86',
 | 
						'x86': 'x86',
 | 
				
			||||||
    'i386': 'x86',
 | 
						'i386': 'x86',
 | 
				
			||||||
    'i486': 'x86',
 | 
						'i486': 'x86',
 | 
				
			||||||
    'i586': 'x86',
 | 
						'i586': 'x86',
 | 
				
			||||||
    'i686': 'x86',
 | 
						'i686': 'x86',
 | 
				
			||||||
    'BePC': 'x86',
 | 
						'BePC': 'x86',
 | 
				
			||||||
    'Intel': 'x86',
 | 
						'Intel': 'x86',
 | 
				
			||||||
    'ppc': 'ppc',
 | 
						'ppc' : 'ppc',
 | 
				
			||||||
    'BeBox': 'ppc',
 | 
						'BeBox': 'ppc',
 | 
				
			||||||
    'BeMac': 'ppc',
 | 
						'BeMac': 'ppc',
 | 
				
			||||||
    'AMD64': 'x86_64',
 | 
						'AMD64': 'x86_64',
 | 
				
			||||||
    'x86_64': 'x86_64',
 | 
						'x86_64': 'x86_64',
 | 
				
			||||||
    'sparc': 'sparc',
 | 
						'sparc': 'sparc',
 | 
				
			||||||
    'sun4u': 'sparc',
 | 
						'sun4u': 'sparc',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# find host_machine value
 | 
					# find host_machine value
 | 
				
			||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
					if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
				
			||||||
    host_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
						host_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
    host_machine = _platform.machine()
 | 
						host_machine = _platform.machine()
 | 
				
			||||||
host_machine = _machine_map.get(host_machine, 'generic')
 | 
					host_machine = _machine_map.get(host_machine, 'generic')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default_machine = host_machine
 | 
					default_machine = host_machine
 | 
				
			||||||
@@ -59,14 +59,13 @@ if target_platform == 'windows' and host_platform != 'windows':
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# find default_llvm value
 | 
					# find default_llvm value
 | 
				
			||||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
 | 
					if 'LLVM' in os.environ:
 | 
				
			||||||
    default_llvm = 'yes'
 | 
					    default_llvm = 'yes'
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
    default_llvm = 'no'
 | 
					    default_llvm = 'no'
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        if target_platform != 'windows' and \
 | 
					        if target_platform != 'windows' and \
 | 
				
			||||||
           subprocess.call(['llvm-config', '--version'],
 | 
					           subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0:
 | 
				
			||||||
                           stdout=subprocess.PIPE) == 0:
 | 
					 | 
				
			||||||
            default_llvm = 'yes'
 | 
					            default_llvm = 'yes'
 | 
				
			||||||
    except:
 | 
					    except:
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
@@ -76,40 +75,28 @@ else:
 | 
				
			|||||||
# Common options
 | 
					# Common options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def AddOptions(opts):
 | 
					def AddOptions(opts):
 | 
				
			||||||
    try:
 | 
						try:
 | 
				
			||||||
        from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
							from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
				
			||||||
    except ImportError:
 | 
						except ImportError:
 | 
				
			||||||
        from SCons.Options.BoolOption import BoolOption
 | 
							from SCons.Options.BoolOption import BoolOption
 | 
				
			||||||
    try:
 | 
						try:
 | 
				
			||||||
        from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
							from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
				
			||||||
    except ImportError:
 | 
						except ImportError:
 | 
				
			||||||
        from SCons.Options.EnumOption import EnumOption
 | 
							from SCons.Options.EnumOption import EnumOption
 | 
				
			||||||
    opts.Add(EnumOption('build', 'build type', 'debug',
 | 
						opts.Add(EnumOption('build', 'build type', 'debug',
 | 
				
			||||||
                        allowed_values=('debug', 'checked', 'profile',
 | 
						                  allowed_values=('debug', 'checked', 'profile', 'release')))
 | 
				
			||||||
                                        'release', 'opt')))
 | 
						opts.Add(BoolOption('verbose', 'verbose output', 'no'))
 | 
				
			||||||
    opts.Add(BoolOption('verbose', 'verbose output', 'no'))
 | 
						opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
 | 
				
			||||||
    opts.Add(EnumOption('machine', 'use machine-specific assembly code',
 | 
																 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
				
			||||||
                        default_machine,
 | 
						opts.Add(EnumOption('platform', 'target platform', host_platform,
 | 
				
			||||||
                        allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
																 allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', 'linux', 'sunos', 'windows')))
 | 
				
			||||||
    opts.Add(EnumOption('platform', 'target platform', host_platform,
 | 
						opts.Add(BoolOption('embedded', 'embedded build', 'no'))
 | 
				
			||||||
                        allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
 | 
						opts.Add('toolchain', 'compiler toolchain', default_toolchain)
 | 
				
			||||||
                                        'linux', 'sunos', 'windows')))
 | 
						opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
 | 
				
			||||||
    opts.Add(BoolOption('embedded', 'embedded build', 'no'))
 | 
						opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
 | 
				
			||||||
    opts.Add(BoolOption('analyze',
 | 
						opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', 'no'))
 | 
				
			||||||
                        'enable static code analysis where available', 'no'))
 | 
						opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
 | 
				
			||||||
    opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
 | 
						opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
 | 
				
			||||||
    opts.Add('toolchain', 'compiler toolchain', default_toolchain)
 | 
						opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
 | 
				
			||||||
    opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support',
 | 
						if host_platform == 'windows':
 | 
				
			||||||
                        'no'))
 | 
							opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
 | 
				
			||||||
    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')
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					current
 | 
				
			||||||
 | 
					autoconf
 | 
				
			||||||
							
								
								
									
										226
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										226
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,226 @@
 | 
				
			|||||||
 | 
					# Autoconf configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pull in the defaults
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is generated by configure
 | 
				
			||||||
 | 
					CONFIG_NAME = autoconf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					CXX = @CXX@
 | 
				
			||||||
 | 
					OPT_FLAGS = @OPT_FLAGS@
 | 
				
			||||||
 | 
					ARCH_FLAGS = @ARCH_FLAGS@
 | 
				
			||||||
 | 
					PIC_FLAGS = @PIC_FLAGS@
 | 
				
			||||||
 | 
					DEFINES = @DEFINES@
 | 
				
			||||||
 | 
					API_DEFINES = @API_DEFINES@
 | 
				
			||||||
 | 
					SHARED_GLAPI = @SHARED_GLAPI@
 | 
				
			||||||
 | 
					CFLAGS_NOVISIBILITY = @CPPFLAGS@ @CFLAGS@ \
 | 
				
			||||||
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					CXXFLAGS_NOVISIBILITY = @CPPFLAGS@ @CXXFLAGS@ \
 | 
				
			||||||
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					CFLAGS = $(CFLAGS_NOVISIBILITY) @VISIBILITY_CFLAGS@
 | 
				
			||||||
 | 
					CXXFLAGS = $(CXXFLAGS_NOVISIBILITY) @VISIBILITY_CXXFLAGS@
 | 
				
			||||||
 | 
					LDFLAGS = @LDFLAGS@
 | 
				
			||||||
 | 
					EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
 | 
				
			||||||
 | 
					RADEON_CFLAGS = @RADEON_CFLAGS@
 | 
				
			||||||
 | 
					RADEON_LIBS = @RADEON_LIBS@
 | 
				
			||||||
 | 
					NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@
 | 
				
			||||||
 | 
					NOUVEAU_LIBS = @NOUVEAU_LIBS@
 | 
				
			||||||
 | 
					INTEL_LIBS = @INTEL_LIBS@
 | 
				
			||||||
 | 
					INTEL_CFLAGS = @INTEL_CFLAGS@
 | 
				
			||||||
 | 
					X11_LIBS = @X11_LIBS@
 | 
				
			||||||
 | 
					X11_CFLAGS = @X11_CFLAGS@
 | 
				
			||||||
 | 
					LLVM_BINDIR = @LLVM_BINDIR@
 | 
				
			||||||
 | 
					LLVM_CFLAGS = @LLVM_CFLAGS@
 | 
				
			||||||
 | 
					LLVM_CPPFLAGS = @LLVM_CPPFLAGS@
 | 
				
			||||||
 | 
					LLVM_CXXFLAGS = @LLVM_CXXFLAGS@
 | 
				
			||||||
 | 
					LLVM_LDFLAGS = @LLVM_LDFLAGS@
 | 
				
			||||||
 | 
					LLVM_LIBDIR = @LLVM_LIBDIR@
 | 
				
			||||||
 | 
					LLVM_LIBS = @LLVM_LIBS@
 | 
				
			||||||
 | 
					LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@
 | 
				
			||||||
 | 
					GLW_CFLAGS = @GLW_CFLAGS@
 | 
				
			||||||
 | 
					GLX_TLS = @GLX_TLS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# dlopen
 | 
				
			||||||
 | 
					DLOPEN_LIBS = @DLOPEN_LIBS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Source selection
 | 
				
			||||||
 | 
					MESA_ASM_FILES = @MESA_ASM_FILES@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Misc tools and flags
 | 
				
			||||||
 | 
					MAKE = @MAKE@
 | 
				
			||||||
 | 
					SHELL = @SHELL@
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = @MKLIB_OPTIONS@
 | 
				
			||||||
 | 
					MKDEP = @MKDEP@
 | 
				
			||||||
 | 
					MKDEP_OPTIONS = @MKDEP_OPTIONS@
 | 
				
			||||||
 | 
					INSTALL = @INSTALL@
 | 
				
			||||||
 | 
					AWK = @AWK@
 | 
				
			||||||
 | 
					GREP = @GREP@
 | 
				
			||||||
 | 
					NM = @NM@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Perl
 | 
				
			||||||
 | 
					PERL = @PERL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Indent (used for generating dispatch tables)
 | 
				
			||||||
 | 
					INDENT = @INDENT@
 | 
				
			||||||
 | 
					INDENT_FLAGS = @INDENT_FLAGS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Python and flags (generally only needed by the developers)
 | 
				
			||||||
 | 
					PYTHON2 = @PYTHON2@
 | 
				
			||||||
 | 
					PYTHON_FLAGS = -t -O -O
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Flex and Bison for GLSL compiler
 | 
				
			||||||
 | 
					FLEX = @LEX@
 | 
				
			||||||
 | 
					BISON = @YACC@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (base name)
 | 
				
			||||||
 | 
					GL_LIB = @GL_LIB@
 | 
				
			||||||
 | 
					GLU_LIB = @GLU_LIB@
 | 
				
			||||||
 | 
					GLW_LIB = GLw
 | 
				
			||||||
 | 
					OSMESA_LIB = @OSMESA_LIB@
 | 
				
			||||||
 | 
					GLESv1_CM_LIB = GLESv1_CM
 | 
				
			||||||
 | 
					GLESv2_LIB = GLESv2
 | 
				
			||||||
 | 
					VG_LIB = OpenVG
 | 
				
			||||||
 | 
					GLAPI_LIB = glapi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = @GL_LIB_NAME@
 | 
				
			||||||
 | 
					GLU_LIB_NAME = @GLU_LIB_NAME@
 | 
				
			||||||
 | 
					GLW_LIB_NAME = @GLW_LIB_NAME@
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = @OSMESA_LIB_NAME@
 | 
				
			||||||
 | 
					EGL_LIB_NAME = @EGL_LIB_NAME@
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@
 | 
				
			||||||
 | 
					GLESv2_LIB_NAME = @GLESv2_LIB_NAME@
 | 
				
			||||||
 | 
					VG_LIB_NAME = @VG_LIB_NAME@
 | 
				
			||||||
 | 
					GLAPI_LIB_NAME = @GLAPI_LIB_NAME@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Globs used to install the lib and all symlinks
 | 
				
			||||||
 | 
					GL_LIB_GLOB = @GL_LIB_GLOB@
 | 
				
			||||||
 | 
					GLU_LIB_GLOB = @GLU_LIB_GLOB@
 | 
				
			||||||
 | 
					GLW_LIB_GLOB = @GLW_LIB_GLOB@
 | 
				
			||||||
 | 
					OSMESA_LIB_GLOB = @OSMESA_LIB_GLOB@
 | 
				
			||||||
 | 
					EGL_LIB_GLOB = @EGL_LIB_GLOB@
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@
 | 
				
			||||||
 | 
					GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@
 | 
				
			||||||
 | 
					VG_LIB_GLOB = @VG_LIB_GLOB@
 | 
				
			||||||
 | 
					GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories to build
 | 
				
			||||||
 | 
					LIB_DIR = @LIB_DIR@
 | 
				
			||||||
 | 
					SRC_DIRS = @SRC_DIRS@
 | 
				
			||||||
 | 
					GLU_DIRS = @GLU_DIRS@
 | 
				
			||||||
 | 
					DRIVER_DIRS = @DRIVER_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_DIRS = @GALLIUM_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_TARGET_DIRS = @GALLIUM_TARGET_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Driver specific build vars
 | 
				
			||||||
 | 
					DRI_DIRS = @DRI_DIRS@
 | 
				
			||||||
 | 
					EGL_PLATFORMS = @EGL_PLATFORMS@
 | 
				
			||||||
 | 
					EGL_CLIENT_APIS = @EGL_CLIENT_APIS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependencies
 | 
				
			||||||
 | 
					X11_INCLUDES = @X11_INCLUDES@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# GLw motif setup
 | 
				
			||||||
 | 
					GLW_SOURCES = @GLW_SOURCES@
 | 
				
			||||||
 | 
					MOTIF_CFLAGS = @MOTIF_CFLAGS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \
 | 
				
			||||||
 | 
						$(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@
 | 
				
			||||||
 | 
					EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @EGL_LIB_DEPS@
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \
 | 
				
			||||||
 | 
						$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \
 | 
				
			||||||
 | 
						$(EXTRA_LIB_PATH) @GLW_LIB_DEPS@
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_CM_LIB_DEPS@
 | 
				
			||||||
 | 
					GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@
 | 
				
			||||||
 | 
					VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@
 | 
				
			||||||
 | 
					GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) @GLAPI_LIB_DEPS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DRI dependencies
 | 
				
			||||||
 | 
					DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
 | 
				
			||||||
 | 
					GALLIUM_DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @GALLIUM_DRI_LIB_DEPS@
 | 
				
			||||||
 | 
					LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
 | 
				
			||||||
 | 
					LIBDRM_LIB = @LIBDRM_LIBS@
 | 
				
			||||||
 | 
					DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@
 | 
				
			||||||
 | 
					GLPROTO_CFLAGS = @GLPROTO_CFLAGS@
 | 
				
			||||||
 | 
					EXPAT_INCLUDES = @EXPAT_INCLUDES@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Autoconf directories
 | 
				
			||||||
 | 
					prefix = @prefix@
 | 
				
			||||||
 | 
					exec_prefix = @exec_prefix@
 | 
				
			||||||
 | 
					libdir = @libdir@
 | 
				
			||||||
 | 
					includedir = @includedir@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installation directories (for make install)
 | 
				
			||||||
 | 
					INSTALL_DIR = $(prefix)
 | 
				
			||||||
 | 
					INSTALL_LIB_DIR = $(libdir)
 | 
				
			||||||
 | 
					INSTALL_INC_DIR = $(includedir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DRI installation directories
 | 
				
			||||||
 | 
					DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
 | 
					DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# EGL driver install directory
 | 
				
			||||||
 | 
					EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# XVMC library install directory
 | 
				
			||||||
 | 
					XVMC_LIB_INSTALL_DIR=@XVMC_LIB_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# VDPAU library install directory
 | 
				
			||||||
 | 
					VDPAU_LIB_INSTALL_DIR=@VDPAU_LIB_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# VA library install directory
 | 
				
			||||||
 | 
					VA_LIB_INSTALL_DIR=@VA_LIB_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Xorg driver install directory (for xorg state-tracker)
 | 
				
			||||||
 | 
					XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Path to OpenCL C library libclc
 | 
				
			||||||
 | 
					LIBCLC_PATH = @LIBCLC_PATH@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pkg-config substitutions
 | 
				
			||||||
 | 
					GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
				
			||||||
 | 
					GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					GL_PC_CFLAGS = @GL_PC_CFLAGS@
 | 
				
			||||||
 | 
					DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@
 | 
				
			||||||
 | 
					GLU_PC_REQ = @GLU_PC_REQ@
 | 
				
			||||||
 | 
					GLU_PC_REQ_PRIV = @GLU_PC_REQ_PRIV@
 | 
				
			||||||
 | 
					GLU_PC_LIB_PRIV = @GLU_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					GLU_PC_CFLAGS = @GLU_PC_CFLAGS@
 | 
				
			||||||
 | 
					GLW_PC_REQ_PRIV = @GLW_PC_REQ_PRIV@
 | 
				
			||||||
 | 
					GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					GLW_PC_CFLAGS = @GLW_PC_CFLAGS@
 | 
				
			||||||
 | 
					OSMESA_PC_REQ = @OSMESA_PC_REQ@
 | 
				
			||||||
 | 
					OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					EGL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
				
			||||||
 | 
					EGL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
 | 
				
			||||||
 | 
					EGL_PC_CFLAGS = @GL_PC_CFLAGS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@
 | 
				
			||||||
 | 
					XCB_DRI2_LIBS = @XCB_DRI2_LIBS@
 | 
				
			||||||
 | 
					LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@
 | 
				
			||||||
 | 
					LIBUDEV_LIBS = @LIBUDEV_LIBS@
 | 
				
			||||||
 | 
					WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
 | 
				
			||||||
 | 
					WAYLAND_LIBS = @WAYLAND_LIBS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MESA_LLVM = @MESA_LLVM@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LLVM_VERSION = @LLVM_VERSION@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@
 | 
				
			||||||
 | 
					GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@
 | 
				
			||||||
							
								
								
									
										182
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
				
			|||||||
 | 
					# Default/template configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is included by other config files which may override some
 | 
				
			||||||
 | 
					# of these variables.
 | 
				
			||||||
 | 
					# Think of this as a base class from which configs are derived.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Version info
 | 
				
			||||||
 | 
					MESA_MAJOR=8
 | 
				
			||||||
 | 
					MESA_MINOR=1
 | 
				
			||||||
 | 
					MESA_TINY=0
 | 
				
			||||||
 | 
					MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# external projects.  This should be useless now that we use libdrm.
 | 
				
			||||||
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -O
 | 
				
			||||||
 | 
					CXXFLAGS = -O
 | 
				
			||||||
 | 
					LDFLAGS =
 | 
				
			||||||
 | 
					GLU_CFLAGS = 
 | 
				
			||||||
 | 
					GLX_TLS = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler for building demos/tests/etc
 | 
				
			||||||
 | 
					APP_CC = $(CC)
 | 
				
			||||||
 | 
					APP_CXX = $(CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Misc tools and flags
 | 
				
			||||||
 | 
					SHELL = /bin/sh
 | 
				
			||||||
 | 
					MKLIB = $(SHELL) $(TOP)/bin/mklib
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = 
 | 
				
			||||||
 | 
					MKDEP = makedepend
 | 
				
			||||||
 | 
					MKDEP_OPTIONS = -fdepend
 | 
				
			||||||
 | 
					MAKE = make
 | 
				
			||||||
 | 
					FLEX = flex
 | 
				
			||||||
 | 
					BISON = bison
 | 
				
			||||||
 | 
					PKG_CONFIG = pkg-config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use MINSTALL for installing libraries, INSTALL for everything else
 | 
				
			||||||
 | 
					MINSTALL = $(SHELL) $(TOP)/bin/minstall
 | 
				
			||||||
 | 
					INSTALL = $(MINSTALL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Tools for regenerating glapi (generally only needed by the developers)
 | 
				
			||||||
 | 
					PYTHON2 = python
 | 
				
			||||||
 | 
					PYTHON_FLAGS = -t -O -O
 | 
				
			||||||
 | 
					INDENT = indent
 | 
				
			||||||
 | 
					INDENT_FLAGS = -i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (base name)
 | 
				
			||||||
 | 
					GL_LIB = GL
 | 
				
			||||||
 | 
					GLU_LIB = GLU
 | 
				
			||||||
 | 
					GLW_LIB = GLw
 | 
				
			||||||
 | 
					OSMESA_LIB = OSMesa
 | 
				
			||||||
 | 
					EGL_LIB = EGL
 | 
				
			||||||
 | 
					GLESv1_CM_LIB = GLESv1_CM
 | 
				
			||||||
 | 
					GLESv2_LIB = GLESv2
 | 
				
			||||||
 | 
					VG_LIB = OpenVG
 | 
				
			||||||
 | 
					GLAPI_LIB = glapi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = lib$(GL_LIB).so
 | 
				
			||||||
 | 
					GLU_LIB_NAME = lib$(GLU_LIB).so
 | 
				
			||||||
 | 
					GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
 | 
				
			||||||
 | 
					EGL_LIB_NAME = lib$(EGL_LIB).so
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so
 | 
				
			||||||
 | 
					GLESv2_LIB_NAME = lib$(GLESv2_LIB).so
 | 
				
			||||||
 | 
					VG_LIB_NAME = lib$(VG_LIB).so
 | 
				
			||||||
 | 
					GLAPI_LIB_NAME = lib$(GLAPI_LIB).so
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# globs used to install the lib and all symlinks
 | 
				
			||||||
 | 
					GL_LIB_GLOB = $(GL_LIB_NAME)*
 | 
				
			||||||
 | 
					GLU_LIB_GLOB = $(GLU_LIB_NAME)*
 | 
				
			||||||
 | 
					GLW_LIB_GLOB = $(GLW_LIB_NAME)*
 | 
				
			||||||
 | 
					OSMESA_LIB_GLOB = $(OSMESA_LIB_NAME)*
 | 
				
			||||||
 | 
					EGL_LIB_GLOB = $(EGL_LIB_NAME)*
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)*
 | 
				
			||||||
 | 
					GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
 | 
				
			||||||
 | 
					VG_LIB_GLOB = $(VG_LIB_NAME)*
 | 
				
			||||||
 | 
					GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional assembly language optimization files for libGL
 | 
				
			||||||
 | 
					MESA_ASM_FILES =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
				
			||||||
 | 
					# order to build the Motif widget too)
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c
 | 
				
			||||||
 | 
					MOTIF_CFLAGS = -I/usr/include/Motif1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories to build
 | 
				
			||||||
 | 
					LIB_DIR = lib
 | 
				
			||||||
 | 
					SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
 | 
				
			||||||
 | 
						gallium egl gallium/winsys gallium/targets glu
 | 
				
			||||||
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS = x11 osmesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gallium directories and
 | 
				
			||||||
 | 
					GALLIUM_DIRS = auxiliary drivers state_trackers
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad i915 svga r300 nvfx nv50
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DIRS = sw sw/xlib
 | 
				
			||||||
 | 
					GALLIUM_TARGET_DIRS = libgl-xlib
 | 
				
			||||||
 | 
					GALLIUM_STATE_TRACKERS_DIRS = glx vega
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# native platforms EGL should support
 | 
				
			||||||
 | 
					EGL_PLATFORMS = x11
 | 
				
			||||||
 | 
					EGL_CLIENT_APIS = $(GL_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library dependencies
 | 
				
			||||||
 | 
					#EXTRA_LIB_PATH ?=
 | 
				
			||||||
 | 
					GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
 | 
				
			||||||
 | 
					GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
				
			||||||
 | 
					GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
				
			||||||
 | 
					VG_LIB_DEPS    = $(EXTRA_LIB_PATH) -lpthread
 | 
				
			||||||
 | 
					GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Program dependencies - specific GL libraries added in Makefiles
 | 
				
			||||||
 | 
					X11_LIBS = -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DLOPEN_LIBS = -ldl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installation directories (for make install)
 | 
				
			||||||
 | 
					INSTALL_DIR = /usr/local
 | 
				
			||||||
 | 
					INSTALL_LIB_DIR = $(INSTALL_DIR)/$(LIB_DIR)
 | 
				
			||||||
 | 
					INSTALL_INC_DIR = $(INSTALL_DIR)/include
 | 
				
			||||||
 | 
					DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
 | 
					DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# EGL driver install directory
 | 
				
			||||||
 | 
					EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Xorg driver install directory (for xorg state-tracker)
 | 
				
			||||||
 | 
					XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pkg-config substitutions
 | 
				
			||||||
 | 
					GL_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GL_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GL_PC_CFLAGS =
 | 
				
			||||||
 | 
					DRI_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GLU_PC_REQ = gl
 | 
				
			||||||
 | 
					GLU_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GLU_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GLU_PC_CFLAGS =
 | 
				
			||||||
 | 
					GLW_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GLW_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GLW_PC_CFLAGS =
 | 
				
			||||||
 | 
					OSMESA_PC_REQ =
 | 
				
			||||||
 | 
					OSMESA_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GLESv1_CM_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GLESv1_CM_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GLESv1_CM_PC_CFLAGS =
 | 
				
			||||||
 | 
					GLESv2_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					GLESv2_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					GLESv2_PC_CFLAGS =
 | 
				
			||||||
 | 
					VG_PC_REQ_PRIV =
 | 
				
			||||||
 | 
					VG_PC_LIB_PRIV =
 | 
				
			||||||
 | 
					VG_PC_CFLAGS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# default targets
 | 
				
			||||||
 | 
					# this helps reduce the mismatch between our automake Makefiles and the old
 | 
				
			||||||
 | 
					# custom Makefiles while we transition.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					am--refresh:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean: clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					check:
 | 
				
			||||||
 | 
					test:
 | 
				
			||||||
							
								
								
									
										3303
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										3303
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										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!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										134
									
								
								docs/GL3.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								docs/GL3.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Status of OpenGL 3.x features in Mesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note: when an item is marked as "DONE" it means all the core Mesa
 | 
				
			||||||
 | 
					infrastructure is complete but it may be the case that few (if any) drivers
 | 
				
			||||||
 | 
					implement the features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Feature                                               Status
 | 
				
			||||||
 | 
					----------------------------------------------------- ------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 3.0:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 1.30                                             DONE
 | 
				
			||||||
 | 
					glBindFragDataLocation, glGetFragDataLocation         DONE
 | 
				
			||||||
 | 
					Conditional rendering (GL_NV_conditional_render)      DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Map buffer subranges (GL_ARB_map_buffer_range)        DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Clamping controls (GL_ARB_color_buffer_float)         DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					Float textures, renderbuffers (GL_ARB_texture_float)  DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					GL_EXT_packed_float                                   DONE (i965, r600)
 | 
				
			||||||
 | 
					GL_EXT_texture_shared_exponent                        DONE (i965, r600, swrast)
 | 
				
			||||||
 | 
					Float depth buffers (GL_ARB_depth_buffer_float)       DONE (i965, r600)
 | 
				
			||||||
 | 
					Framebuffer objects (GL_ARB_framebuffer_object)       DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Half-float                                            DONE
 | 
				
			||||||
 | 
					Non-normalized Integer texture/framebuffer formats    DONE (i965)
 | 
				
			||||||
 | 
					1D/2D Texture arrays                                  DONE
 | 
				
			||||||
 | 
					Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (i965, r600, swrast)
 | 
				
			||||||
 | 
					GL_EXT_texture_compression_rgtc                       DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Red and red/green texture formats                     DONE (i965, swrast, gallium)
 | 
				
			||||||
 | 
					Transform feedback (GL_EXT_transform_feedback)        DONE (i965)
 | 
				
			||||||
 | 
					Vertex array objects (GL_APPLE_vertex_array_object)   DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE (i965, r600)
 | 
				
			||||||
 | 
					glClearBuffer commands                                DONE
 | 
				
			||||||
 | 
					glGetStringi command                                  DONE
 | 
				
			||||||
 | 
					glTexParameterI, glGetTexParameterI commands          DONE
 | 
				
			||||||
 | 
					glVertexAttribI commands                              ~50% done (converts int
 | 
				
			||||||
 | 
					                                                                 values to floats)
 | 
				
			||||||
 | 
					Depth format cube textures                            DONE
 | 
				
			||||||
 | 
					GLX_ARB_create_context (GLX 1.4 is required)          DONE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 3.1:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 1.40                                             needs UBOs (in progress)
 | 
				
			||||||
 | 
					Forward compatibile context support/deprecations      not started
 | 
				
			||||||
 | 
					Instanced drawing (GL_ARB_draw_instanced)             DONE (i965, gallium, swrast)
 | 
				
			||||||
 | 
					Buffer copying (GL_ARB_copy_buffer)                   DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Primitive restart (GL_NV_primitive_restart)           DONE (i965, r600)
 | 
				
			||||||
 | 
					16 vertex texture image units                         DONE
 | 
				
			||||||
 | 
					Texture buffer objs (GL_ARB_texture_buffer_object)    needs GL3.1 enabling (i965)
 | 
				
			||||||
 | 
					Rectangular textures (GL_ARB_texture_rectangle)       DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Uniform buffer objs (GL_ARB_uniform_buffer_object)    not started
 | 
				
			||||||
 | 
					Signed normalized textures (GL_EXT_texture_snorm)     DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 3.2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Core/compatibility profiles                           not started
 | 
				
			||||||
 | 
					GLSL 1.50                                             not started
 | 
				
			||||||
 | 
					Geometry shaders (GL_ARB_geometry_shader4)            partially done (Zack)
 | 
				
			||||||
 | 
					BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Provoking vertex (GL_ARB_provoking_vertex)            DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE (i965, r600)
 | 
				
			||||||
 | 
					Multisample textures (GL_ARB_texture_multisample)     not started
 | 
				
			||||||
 | 
					Frag depth clamp (GL_ARB_depth_clamp)                 DONE (i965, r600, swrast)
 | 
				
			||||||
 | 
					Fence objects (GL_ARB_sync)                           DONE (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					GLX_ARB_create_context_profile                        DONE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 3.3:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 3.30                                             new features in this version pretty much done
 | 
				
			||||||
 | 
					GL_ARB_blend_func_extended                            DONE (i965, r600, softpipe)
 | 
				
			||||||
 | 
					GL_ARB_explicit_attrib_location                       DONE (i915, i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					GL_ARB_occlusion_query2                               DONE (r300, r600, swrast)
 | 
				
			||||||
 | 
					GL_ARB_sampler_objects                                DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					GL_ARB_shader_bit_encoding                            DONE
 | 
				
			||||||
 | 
					GL_ARB_texture_rgb10_a2ui                             DONE (i965, r600)
 | 
				
			||||||
 | 
					GL_ARB_texture_swizzle                                DONE (same as EXT version) (i965, r300, r600, swrast)
 | 
				
			||||||
 | 
					GL_ARB_timer_query                                    DONE
 | 
				
			||||||
 | 
					GL_ARB_instanced_arrays                               DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					GL_ARB_vertex_type_2_10_10_10_rev                     DONE (r600)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 4.0:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 4.0                                             not started
 | 
				
			||||||
 | 
					GL_ARB_texture_query_lod                             not started
 | 
				
			||||||
 | 
					GL_ARB_draw_buffers_blend                            DONE (i965, r600, softpipe)
 | 
				
			||||||
 | 
					GL_ARB_draw_indirect                                 not started
 | 
				
			||||||
 | 
					GL_ARB_gpu_shader5                                   not started
 | 
				
			||||||
 | 
					GL_ARB_gpu_shader_fp64                               not started
 | 
				
			||||||
 | 
					GL_ARB_sample_shading                                not started
 | 
				
			||||||
 | 
					GL_ARB_shader_subroutine                             not started
 | 
				
			||||||
 | 
					GL_ARB_tessellation_shader                           not started
 | 
				
			||||||
 | 
					GL_ARB_texture_buffer_object_rgb32                   not started
 | 
				
			||||||
 | 
					GL_ARB_texture_cube_map_array                        not started
 | 
				
			||||||
 | 
					GL_ARB_texture_gather                                not started
 | 
				
			||||||
 | 
					GL_ARB_transform_feedback2                           DONE
 | 
				
			||||||
 | 
					GL_ARB_transform_feedback3                           DONE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 4.1:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 4.1                                             not started
 | 
				
			||||||
 | 
					GL_ARB_ES2_compatibility                             DONE (i965, r300, r600)
 | 
				
			||||||
 | 
					GL_ARB_get_program_binary                            not started
 | 
				
			||||||
 | 
					GL_ARB_separate_shader_objects                       some infrastructure done
 | 
				
			||||||
 | 
					GL_ARB_shader_precision                              not started
 | 
				
			||||||
 | 
					GL_ARB_vertex_attrib_64bit                           not started
 | 
				
			||||||
 | 
					GL_ARB_viewport_array                                not started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL 4.2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLSL 4.2                                             not started
 | 
				
			||||||
 | 
					GL_ARB_texture_compression_bptc                      not started
 | 
				
			||||||
 | 
					GL_ARB_compressed_texture_pixel_storage              not started
 | 
				
			||||||
 | 
					GL_ARB_shader_atomic_counters                        not started
 | 
				
			||||||
 | 
					GL_ARB_texture_storage                               DONE (r300, r600, swrast)
 | 
				
			||||||
 | 
					GL_ARB_transform_feedback_instanced                  DONE
 | 
				
			||||||
 | 
					GL_ARB_base_instance                                 DONE (nv50, nvc0, r600, radeonsi)
 | 
				
			||||||
 | 
					GL_ARB_shader_image_load_store                       not started
 | 
				
			||||||
 | 
					GL_ARB_conservative_depth                            DONE (softpipe)
 | 
				
			||||||
 | 
					GL_ARB_shading_language_420pack                      not started
 | 
				
			||||||
 | 
					GL_ARB_internalformat_query                          not started
 | 
				
			||||||
 | 
					GL_ARB_map_buffer_alignment                          not started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					More info about these features and the work involved can be found at
 | 
				
			||||||
 | 
					http://dri.freedesktop.org/wiki/MissingFunctionality
 | 
				
			||||||
@@ -12,7 +12,7 @@ Contact
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Status
 | 
					Status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Obsolete.
 | 
					    Shipping (since Mesa version 2.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,7 +16,7 @@ IP Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Status
 | 
					Status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DEPRECATED - Support removed in Mesa 10.1.
 | 
					    Shipping in Mesa 7.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					                          Mesa Cygwin/X11 Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WARNING
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you installed X11 (packages xorg-x11-devel and xorg-x11-bin-dlls ) with the 
 | 
				
			||||||
 | 
					latest setup.exe from Cygwin the GL (Mesa) libraries and include are already 
 | 
				
			||||||
 | 
					installed in /usr/X11R6. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following will explain how to "replace" them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					How to compile Mesa on Cygwin/X11 systems:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Shared libs:
 | 
				
			||||||
 | 
					    type 'make cygwin-sl'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    When finished, the Mesa DLL will be in the Mesa-x.y/lib/ and 
 | 
				
			||||||
 | 
					    Mesa-x.y/bin directories.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Static libs:
 | 
				
			||||||
 | 
					    type 'make cygwin-static'.
 | 
				
			||||||
 | 
					    When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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/X11R6/include:
 | 
				
			||||||
 | 
						cp -a include/GL /usr/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Copy the Mesa library files to /usr/X11R6/lib:
 | 
				
			||||||
 | 
						cp -a lib/* /usr/X11R6ocal/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Copy the Mesa bin files (used by the DLL stuff) to /usr/X11R6/bin:
 | 
				
			||||||
 | 
						cp -a lib/cyg* /usr/X11R6/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					   For the Motif widgets you must have downloaded the lesstif package.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Using the library
 | 
				
			||||||
 | 
					=================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Configuration options:
 | 
				
			||||||
 | 
					   The file src/mesa/main/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 (Win32 DLLS) you may have to set an 
 | 
				
			||||||
 | 
					   environment variable to specify where the Mesa libraries are located.  
 | 
				
			||||||
 | 
					   Set the PATH variable to include /your-dir/Mesa-2.6/bin.   
 | 
				
			||||||
 | 
					   Otherwise, when you try to run a demo it may fail with a message saying 
 | 
				
			||||||
 | 
					   that one or more DLL couldn't be found.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
 | 
					README.CYGWIN - lassauge April 2004 - based on README.X11
 | 
				
			||||||
							
								
								
									
										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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,207 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					             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/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
							
								
								
									
										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.
 | 
					 | 
				
			||||||
							
								
								
									
										38
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					23-sep-2005
 | 
				
			||||||
 | 
					changed default compilation to use /float=ieee/ieee=denorm. The reason for 
 | 
				
			||||||
 | 
					this is that it makes Mesa on OpenVMS better compatible with other platforms
 | 
				
			||||||
 | 
					and other packages for VMS that I maintain.
 | 
				
			||||||
 | 
					For more information see
 | 
				
			||||||
 | 
					      http://nchrem.tnw.tudelft.nl/openvms
 | 
				
			||||||
 | 
					      https://bugs.freedesktop.org/show_bug.cgi?id=4270
 | 
				
			||||||
 | 
					You may want to compile Mesa to use VAX-floating point arithmetic, instead
 | 
				
			||||||
 | 
					of IEEE floating point by removing the /float=IEEE/denorm flag from the
 | 
				
			||||||
 | 
					compiler options in the descrip.mms files.
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
File: docs/README.WIN32
 | 
					File: docs/README.WIN32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Last updated: 21 June 2013
 | 
					Last updated: 23 April 2011
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Quick Start
 | 
					Quick Start
 | 
				
			||||||
@@ -11,6 +11,10 @@ no longer shipped or supported.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Run
 | 
					Run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scons osmesa mesagdi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					to build classic mesa Windows GDI drivers; or
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  scons libgl-gdi
 | 
					  scons libgl-gdi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
to build gallium based GDI driver.
 | 
					to build gallium based GDI driver.
 | 
				
			||||||
@@ -26,21 +30,6 @@ At this time, only the gallium GDI driver is known to work.
 | 
				
			|||||||
Source code also exists in the tree for other drivers in
 | 
					Source code also exists in the tree for other drivers in
 | 
				
			||||||
src/mesa/drivers/windows, but the status of this code is unknown.
 | 
					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 http://www.mesa3d.org/repository.html
 | 
					 | 
				
			||||||
- run scons
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
General
 | 
					General
 | 
				
			||||||
-------
 | 
					-------
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,279 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					                            Mesa 5.1 release notes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                              December 17, 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_ARB_vertex_program / GL_ARB_fragment_program
 | 
				
			||||||
 | 
					   Michal Krol and Karl Rasche implemented these extensions.  Thanks!
 | 
				
			||||||
 | 
					   Be aware that there may be some rough edges and lurking bugs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Faster glDrawPixels / glCopyPixels in X11 driver
 | 
				
			||||||
 | 
					   If your X screen is 32bpp, glDrawPixels to the front color buffer will
 | 
				
			||||||
 | 
					   be accelerated (via XPutImage()) if the image format is GL_BGRA and the
 | 
				
			||||||
 | 
					   type is GL_UNSIGNED_BYTE.  No raster operations, such as depth test,
 | 
				
			||||||
 | 
					   blend, fog, etc. can be enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   If your X screen is 16bpp, glDrawPixels to the front color buffer will
 | 
				
			||||||
 | 
					   be accelerated (via XPutImage()) if the image format is GL_RGB and the
 | 
				
			||||||
 | 
					   type is GL_UNSIGNED_SHORT_5_6_5.  No raster operations, such as depth
 | 
				
			||||||
 | 
					   test, blend, fog, etc. can be enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   glCopyPixels() calls for the front color buffer will be accelerated
 | 
				
			||||||
 | 
					   (via XCopyArea()) if no raster operations, such as depth test, blend,
 | 
				
			||||||
 | 
					   fog, pixel zoom, etc. are enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The speed-up over typical software rendering is a factor of 10 for
 | 
				
			||||||
 | 
					   glDrawPixels and 100 for glCopyPixels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
						arbfragparse.[ch]         - ARB fragment program parsing
 | 
				
			||||||
 | 
						arbvertparse.[ch]         - ARB vertex program parsing
 | 
				
			||||||
 | 
						arbparse.[ch]             - ARB vertex/fragment parsing
 | 
				
			||||||
 | 
						arbparse_syn.h            - vertex/fragment program syntax
 | 
				
			||||||
 | 
						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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The files related to per-vertex handling have changed.
 | 
				
			||||||
 | 
					Old files:
 | 
				
			||||||
 | 
						tnl/t_eval_api.c          - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_alloc.c         - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_api.c           - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_debug.c         - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_dlist.c         - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_elt.c           - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_eval.c          - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_exec.c          - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_imm_fixup.c         - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_vtx_sse.c           - old per-vertex code
 | 
				
			||||||
 | 
						tnl/t_vtx_x86.c           - old per-vertex code
 | 
				
			||||||
 | 
					New files:
 | 
				
			||||||
 | 
						tnl/t_save_api.c          - new per-vertex code
 | 
				
			||||||
 | 
						tnl/t_save_loopback.c     - new per-vertex code
 | 
				
			||||||
 | 
						tnl/t_save_playback.c     - new per-vertex code
 | 
				
			||||||
 | 
						tnl/t_vtx_eval.c          - old per-vertex code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Other new files:
 | 
				
			||||||
 | 
						bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions
 | 
				
			||||||
 | 
						version.h		- defines the Mesa version info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Other removed files:
 | 
				
			||||||
 | 
						swrast/s_histogram.[ch]   - moved into src/histogram.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					New vertex processing code.
 | 
				
			||||||
 | 
					   The code behind glBegin, glEnd, glVertex, glNormal, etc. has been
 | 
				
			||||||
 | 
					   totally rewritten.  It's a cleaner implementation now and should use
 | 
				
			||||||
 | 
					   less memory. (Keith)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
@@ -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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Version 5, July 16, 2013
 | 
					    Version 1, March 1, 2011
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -57,7 +57,7 @@ New Procedures and Functions
 | 
				
			|||||||
                                         struct wl_display *display);
 | 
					                                         struct wl_display *display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy,
 | 
					    EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy,
 | 
				
			||||||
                                       struct wl_resource *buffer,
 | 
					                                       struct wl_buffer *buffer,
 | 
				
			||||||
                                       EGLint attribute, EGLint *value);
 | 
					                                       EGLint attribute, EGLint *value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New Tokens
 | 
					New Tokens
 | 
				
			||||||
@@ -75,12 +75,6 @@ New Tokens
 | 
				
			|||||||
        EGL_TEXTURE_Y_U_V_WL                    0x31D7
 | 
					        EGL_TEXTURE_Y_U_V_WL                    0x31D7
 | 
				
			||||||
        EGL_TEXTURE_Y_UV_WL                     0x31D8
 | 
					        EGL_TEXTURE_Y_UV_WL                     0x31D8
 | 
				
			||||||
        EGL_TEXTURE_Y_XUXV_WL                   0x31D9
 | 
					        EGL_TEXTURE_Y_XUXV_WL                   0x31D9
 | 
				
			||||||
        EGL_TEXTURE_EXTERNAL_WL                 0x31DA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted in the <attribute> parameter of eglQueryWaylandBufferWL:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_TEXTURE_FORMAT                      0x3080
 | 
					 | 
				
			||||||
        EGL_WAYLAND_Y_INVERTED_WL               0x31DB
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Additions to the EGL 1.4 Specification:
 | 
					Additions to the EGL 1.4 Specification:
 | 
				
			||||||
@@ -149,10 +143,6 @@ Additions to the EGL 1.4 Specification:
 | 
				
			|||||||
                Two planes, samples Y from the first plane to r in
 | 
					                Two planes, samples Y from the first plane to r in
 | 
				
			||||||
                the shader, U and V from the second plane to g and a.
 | 
					                the shader, U and V from the second plane to g and a.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        EGL_TEXTURE_EXTERNAL_WL
 | 
					 | 
				
			||||||
                Treated as a single plane texture, but sampled with
 | 
					 | 
				
			||||||
                samplerExternalOES according to OES_EGL_image_external
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    After querying the wl_buffer layout, create EGLImages for the
 | 
					    After querying the wl_buffer layout, create EGLImages for the
 | 
				
			||||||
    planes by calling eglCreateImageKHR with wl_buffer as
 | 
					    planes by calling eglCreateImageKHR with wl_buffer as
 | 
				
			||||||
    EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL
 | 
					    EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL
 | 
				
			||||||
@@ -167,16 +157,6 @@ Additions to the EGL 1.4 Specification:
 | 
				
			|||||||
    Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and
 | 
					    Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and
 | 
				
			||||||
    EGL_HEIGHT to query the width and height of the wl_buffer.
 | 
					    EGL_HEIGHT to query the width and height of the wl_buffer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Also, eglQueryWaylandBufferWL may accept
 | 
					 | 
				
			||||||
    EGL_WAYLAND_Y_INVERTED_WL attribute to query orientation of
 | 
					 | 
				
			||||||
    wl_buffer. If EGL_WAYLAND_Y_INVERTED_WL is supported
 | 
					 | 
				
			||||||
    eglQueryWaylandBufferWL returns EGL_TRUE and value is a boolean
 | 
					 | 
				
			||||||
    that tells if wl_buffer is y-inverted or not. If
 | 
					 | 
				
			||||||
    EGL_WAYLAND_Y_INVERTED_WL is not supported
 | 
					 | 
				
			||||||
    eglQueryWaylandBufferWL returns EGL_FALSE, in that case
 | 
					 | 
				
			||||||
    wl_buffer should be treated as if value of
 | 
					 | 
				
			||||||
    EGL_WAYLAND_Y_INVERTED_WL was EGL_TRUE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					Issues
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Revision History
 | 
					Revision History
 | 
				
			||||||
@@ -193,10 +173,3 @@ Revision History
 | 
				
			|||||||
        Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA,
 | 
					        Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA,
 | 
				
			||||||
        and just define the new YUV texture formats.  Add support for
 | 
					        and just define the new YUV texture formats.  Add support for
 | 
				
			||||||
        EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg)
 | 
					        EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg)
 | 
				
			||||||
    Version 5, July 16, 2013
 | 
					 | 
				
			||||||
        Change eglQueryWaylandBufferWL to take a resource pointer to the
 | 
					 | 
				
			||||||
        buffer instead of a pointer to a struct wl_buffer, as the latter has
 | 
					 | 
				
			||||||
        been deprecated. (Ander Conselvan de Oliveira)
 | 
					 | 
				
			||||||
    Version 6, September 16, 2013
 | 
					 | 
				
			||||||
        Add EGL_WAYLAND_Y_INVERTED_WL attribute to allow specifying
 | 
					 | 
				
			||||||
        wl_buffer's orientation.
 | 
					 | 
				
			||||||
@@ -1,83 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
					 | 
				
			||||||
<html lang="en">
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
					 | 
				
			||||||
  <title>Application Issues</title>
 | 
					 | 
				
			||||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Application Issues</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
This page documents known issues with some OpenGL applications.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Topogun</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
 | 
					 | 
				
			||||||
creates a GLX visual without requesting a depth buffer.
 | 
					 | 
				
			||||||
This causes bad rendering if the OpenGL driver happens to choose a visual
 | 
					 | 
				
			||||||
without a depth buffer.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 9.1.2 and later (will) support a DRI configuration option to work around
 | 
					 | 
				
			||||||
this issue.
 | 
					 | 
				
			||||||
Using the <a href="http://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
 | 
					 | 
				
			||||||
set the "Create all visuals with a depth buffer" option before running Topogun.
 | 
					 | 
				
			||||||
Then, all GLX visuals will be created with a depth buffer.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Old OpenGL games</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Some old OpenGL games (approx. ten years or older) may crash during
 | 
					 | 
				
			||||||
start-up because of an extension string buffer-overflow problem.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The problem is a modern OpenGL driver will return a very long string
 | 
					 | 
				
			||||||
for the glGetString(GL_EXTENSIONS) query and if the application
 | 
					 | 
				
			||||||
naively copies the string into a fixed-size buffer it can overflow the
 | 
					 | 
				
			||||||
buffer and crash the application.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
 | 
					 | 
				
			||||||
to the approximate release year of the game.
 | 
					 | 
				
			||||||
This will cause the glGetString(GL_EXTENSIONS) query to only report extensions
 | 
					 | 
				
			||||||
older than the given year.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
For example, if the game was released in 2001, do
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
export MESA_EXTENSION_MAX_YEAR=2001
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
before running the game.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Viewperf</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
 | 
					 | 
				
			||||||
of Viewperf issues.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -7,13 +7,6 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<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>
 | 
					<h1>Compilation and Installation using Autoconf</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ol>
 | 
					<ol>
 | 
				
			||||||
@@ -24,6 +17,11 @@
 | 
				
			|||||||
  <li><a href="#dri">DRI Driver Options</a></li>
 | 
					  <li><a href="#dri">DRI Driver Options</a></li>
 | 
				
			||||||
  <li><a href="#osmesa">OSMesa Driver Options</a></li>
 | 
					  <li><a href="#osmesa">OSMesa Driver Options</a></li>
 | 
				
			||||||
  </ul>
 | 
					  </ul>
 | 
				
			||||||
 | 
					<li><p><a href="#library">Library Options</a>
 | 
				
			||||||
 | 
					  <ul>
 | 
				
			||||||
 | 
					  <li><a href="#glu">GLU</a></li>
 | 
				
			||||||
 | 
					  </ul>
 | 
				
			||||||
 | 
					<li><p><a href="#demos">Demo Program Options</a>
 | 
				
			||||||
</ol>
 | 
					</ol>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -55,143 +53,113 @@ to your preference, type:
 | 
				
			|||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
This will produce libGL.so and/or several other libraries depending on the
 | 
					This will produce libGL.so and several other libraries depending on the
 | 
				
			||||||
options you have chosen. Later, if you want to rebuild for a different
 | 
					options you have chosen. Later, if you want to rebuild for a different
 | 
				
			||||||
configuration run <code>make realclean</code> before rebuilding.
 | 
					configuration run <code>make realclean</code> before rebuilding.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Some of the generic autoconf options are used with Mesa:
 | 
					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>
 | 
					<ul>
 | 
				
			||||||
<dd><p>This is the root directory
 | 
					<li><code>--prefix=PREFIX</code> - This is the root directory where
 | 
				
			||||||
 | 
					files will be installed by <code>make install</code>. The default is
 | 
				
			||||||
 | 
					<code>/usr/local</code>.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--exec-prefix=EPREFIX</code> - This is the root directory
 | 
				
			||||||
where architecture-dependent files will be installed. In Mesa, this is
 | 
					where architecture-dependent files will be installed. In Mesa, this is
 | 
				
			||||||
only used to derive the directory for the libraries. The default is
 | 
					only used to derive the directory for the libraries. The default is
 | 
				
			||||||
<code>${prefix}</code>.</p>
 | 
					<code>${prefix}</code>.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--libdir=LIBDIR</code> - This option specifies the directory
 | 
				
			||||||
<dt><code>--libdir=LIBDIR</code></dt>
 | 
					 | 
				
			||||||
<dd><p>This option specifies the directory
 | 
					 | 
				
			||||||
where the GL libraries will be installed. The default is
 | 
					where the GL libraries will be installed. The default is
 | 
				
			||||||
<code>${exec_prefix}/lib</code>. It also serves as the name of the
 | 
					<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
 | 
					library staging area in the source tree. For instance, if the option
 | 
				
			||||||
<code>--libdir=/usr/local/lib64</code> is used, the libraries will be
 | 
					<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
 | 
					created in a <code>lib64</code> directory at the top of the Mesa source
 | 
				
			||||||
tree.</p>
 | 
					tree.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--enable-static, --disable-shared</code> - By default, Mesa
 | 
				
			||||||
<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
 | 
					will build shared libraries. Either of these options will force static
 | 
				
			||||||
libraries to be built. It is not currently possible to build static and
 | 
					libraries to be built. It is not currently possible to build static and
 | 
				
			||||||
shared libraries in a single pass.</p>
 | 
					shared libraries in a single pass.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>CC, CFLAGS, CXX, CXXFLAGS</code> - These environment variables
 | 
				
			||||||
<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,
 | 
					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
 | 
					<code>gcc</code> and <code>g++</code> are used with the options
 | 
				
			||||||
level is left unchanged.</p>
 | 
					<code>"-g -O2"</code>.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>LDFLAGS</code> - An environment variable specifying flags to
 | 
				
			||||||
<dt><code>LDFLAGS</code></dt>
 | 
					pass when linking programs. These are normally empty, but can be used
 | 
				
			||||||
<dd><p>An environment variable specifying flags to
 | 
					to direct the linker to use libraries in nonstandard directories. For
 | 
				
			||||||
pass when linking programs. These should be empty and
 | 
					example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.
 | 
				
			||||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
 | 
					</li>
 | 
				
			||||||
it can be used to direct the linker to use libraries in nonstandard
 | 
					<li><code>PKG_CONFIG_PATH</code> - When available, the
 | 
				
			||||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
 | 
					<code>pkg-config</code> utility is used to search for external libraries
 | 
				
			||||||
</dd>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<dt><code>PKG_CONFIG_PATH</code></dt>
 | 
					 | 
				
			||||||
<dd><p>The
 | 
					 | 
				
			||||||
<code>pkg-config</code> utility is a hard requirement for cofiguring and
 | 
					 | 
				
			||||||
building mesa. It is used to search for external libraries
 | 
					 | 
				
			||||||
on the system. This environment variable is used to control the search
 | 
					on the system. This environment variable is used to control the search
 | 
				
			||||||
path for <code>pkg-config</code>. For instance, setting
 | 
					path for <code>pkg-config</code>. For instance, setting
 | 
				
			||||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
 | 
					<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
 | 
				
			||||||
package metadata in <code>/usr/X11R6</code> before the standard
 | 
					package metadata in <code>/usr/X11R6</code> before the standard
 | 
				
			||||||
directories.</p>
 | 
					directories.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
</dl>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
There are also a few general options for altering the Mesa build:
 | 
					There are also a few general options for altering the Mesa build:
 | 
				
			||||||
</p>
 | 
					<ul>
 | 
				
			||||||
<dl>
 | 
					<li><code>--with-x</code> - When the X11 development libraries are
 | 
				
			||||||
<dt><code>--enable-debug</code></dt>
 | 
					needed, the <code>pkg-config</code> utility <a href="#pkg-config">will
 | 
				
			||||||
<dd><p>This option will set the compiler debug/optimisation levels (if the user
 | 
					be used</a> for locating them. If they cannot be found through
 | 
				
			||||||
hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in
 | 
					<code>pkg-config</code> a fallback routing using <code>imake</code> will
 | 
				
			||||||
debugging the Mesa libraries.</p>
 | 
					be used. In this case, the <code>--with-x</code>,
 | 
				
			||||||
 | 
					<code>--x-includes</code> and <code>--x-libraries</code> options can
 | 
				
			||||||
<p>Note that enabling this option can lead to noticable loss of performance.</p>
 | 
					control the use of X for Mesa.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
<dt><code>--disable-asm</code></dt>
 | 
					<li><code>--enable-gl-osmesa</code> - The <a href="osmesa.html">OSMesa
 | 
				
			||||||
<dd><p>There are assembly routines
 | 
					library</a> can be built on top of libGL for drivers that provide it.
 | 
				
			||||||
 | 
					This option controls whether to build libOSMesa. By default, this is
 | 
				
			||||||
 | 
					enabled for the Xlib driver and disabled otherwise. Note that this
 | 
				
			||||||
 | 
					option is different than using OSMesa as the driver.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--enable-debug</code> - This option will enable compiler
 | 
				
			||||||
 | 
					options and macros to aid in debugging the Mesa libraries.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--disable-asm</code> - There are assembly routines
 | 
				
			||||||
available for a few architectures. These will be used by default if
 | 
					available for a few architectures. These will be used by default if
 | 
				
			||||||
one of these architectures is detected. This option ensures that
 | 
					one of these architectures is detected. This option ensures that
 | 
				
			||||||
assembly will not be used.</p>
 | 
					assembly will not be used.
 | 
				
			||||||
</dd>
 | 
					</li>
 | 
				
			||||||
 | 
					<li><code>--enable-32-bit, --enable-64-bit</code> - By default, the
 | 
				
			||||||
<dt><code>--build=</code></dt>
 | 
					build will compile code as directed by the environment variables
 | 
				
			||||||
<dt><code>--host=</code></dt>
 | 
					<code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is
 | 
				
			||||||
<dd><p>By default, the build will compile code for the architecture that
 | 
					<code>gcc</code>, these options offer a helper to add the compiler flags
 | 
				
			||||||
it's running on. In order to build cross-compile Mesa on a x86-64 machine
 | 
					to force 32- or 64-bit code generation as used on the x86 and x86_64
 | 
				
			||||||
that is to run on a i686, one would need to set the options to:</p>
 | 
					architectures.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p>
 | 
					</ul>
 | 
				
			||||||
 | 
					 | 
				
			||||||
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
 | 
					<h2 id="driver">2. Driver Options</h2>
 | 
				
			||||||
(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>
 | 
					<p>
 | 
				
			||||||
There are several different driver modes that Mesa can use. These are
 | 
					There are several different driver modes that Mesa can use. These are
 | 
				
			||||||
described in more detail in the <a href="install.html">basic
 | 
					described in more detail in the <a href="install.html">basic
 | 
				
			||||||
installation instructions</a>. The Mesa driver is controlled through the
 | 
					installation instructions</a>. The Mesa driver is controlled through the
 | 
				
			||||||
configure options <code>--enable-glx</code> and <code>--enable-osmesa</code>
 | 
					configure option --with-driver. There are currently three supported
 | 
				
			||||||
 | 
					options in the configure script.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h3 id="xlib">Xlib</h3><p>
 | 
					<h3 id="xlib">Xlib</h3><p>This is the default mode for building Mesa.
 | 
				
			||||||
It uses Xlib as a software renderer to do all rendering. It corresponds
 | 
					It uses Xlib as a software renderer to do all rendering. It corresponds
 | 
				
			||||||
to the option <code>--enable-glx=xlib</code> or <code>--enable-glx=gallium-xlib</code>.
 | 
					to the option <code>--with-driver=xlib</code>. The libX11 and libXext
 | 
				
			||||||
 | 
					libraries, as well as the X11 development headers, will be need to
 | 
				
			||||||
 | 
					support the Xlib driver.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for
 | 
					<h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for
 | 
				
			||||||
accelerated OpenGL rendering. To enable use <code>--enable-glx=dri
 | 
					accelerated OpenGL rendering. Enable the DRI drivers with the option
 | 
				
			||||||
--enable-dri</code>.
 | 
					<code>--with-driver=dri</code>. See the <a href="install.html">basic
 | 
				
			||||||
 | 
					installation instructions</a> for details on prerequisites for the DRI
 | 
				
			||||||
 | 
					drivers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!-- DRI specific options -->
 | 
					<!-- DRI specific options -->
 | 
				
			||||||
<dl>
 | 
					<dl>
 | 
				
			||||||
@@ -218,10 +186,8 @@ kernel DRM modules are not available.
 | 
				
			|||||||
<dt><code>--enable-glx-tls</code> <dd><p>
 | 
					<dt><code>--enable-glx-tls</code> <dd><p>
 | 
				
			||||||
Enable Thread Local Storage (TLS) in
 | 
					Enable Thread Local Storage (TLS) in
 | 
				
			||||||
GLX.
 | 
					GLX.
 | 
				
			||||||
<dt><code>--with-expat=DIR</code>
 | 
					<dt><code>--with-expat=DIR</code> <dd> The DRI-enabled libGL uses expat to
 | 
				
			||||||
<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p>
 | 
					parse the DRI configuration files in <code>/etc/drirc</code> and
 | 
				
			||||||
<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
 | 
					<code>~/.drirc</code>. This option allows a specific expat installation
 | 
				
			||||||
to be used. For example, <code>--with-expat=/usr/local</code> will
 | 
					to be used. For example, <code>--with-expat=/usr/local</code> will
 | 
				
			||||||
search for expat headers and libraries in <code>/usr/local/include</code>
 | 
					search for expat headers and libraries in <code>/usr/local/include</code>
 | 
				
			||||||
@@ -231,8 +197,7 @@ and <code>/usr/local/lib</code>, respectively.
 | 
				
			|||||||
<h3 id="osmesa">OSMesa </h3><p> No libGL is built in this
 | 
					<h3 id="osmesa">OSMesa </h3><p> No libGL is built in this
 | 
				
			||||||
mode. Instead, the driver code is built into the Off-Screen Mesa
 | 
					mode. Instead, the driver code is built into the Off-Screen Mesa
 | 
				
			||||||
(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a>
 | 
					(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a>
 | 
				
			||||||
page for more details.  It corresponds to the option
 | 
					page for more details.
 | 
				
			||||||
<code>--enable-osmesa</code>.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!-- OSMesa specific options -->
 | 
					<!-- OSMesa specific options -->
 | 
				
			||||||
<dl>
 | 
					<dl>
 | 
				
			||||||
@@ -249,9 +214,36 @@ will create the libOSMesa16 library with a 16-bit color channel.
 | 
				
			|||||||
<h2 id="library">3. Library Options</h2>
 | 
					<h2 id="library">3. Library Options</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The configure script provides more fine grained control over the libraries
 | 
					The configure script provides more fine grained control over the GL
 | 
				
			||||||
that will be built.
 | 
					libraries that will be built. More details on the specific GL libraries
 | 
				
			||||||
 | 
					can be found in the <a href="install.html">basic installation
 | 
				
			||||||
 | 
					instructions</a>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<dl>
 | 
				
			||||||
 | 
					<dt id="glu">GLU <dd><p> The libGLU library will be built by default
 | 
				
			||||||
 | 
					on all drivers. This can be disable with the option
 | 
				
			||||||
 | 
					<code>--disable-glu</code>.
 | 
				
			||||||
 | 
					</dl>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2 id="demos">4. Demo Program Options</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					There are many demonstration programs in the MesaDemos tarball. If the
 | 
				
			||||||
 | 
					programs are available when <code>./configure</code> is run, a subset of
 | 
				
			||||||
 | 
					the programs will be built depending on the driver and library options
 | 
				
			||||||
 | 
					chosen. See the directory <code>progs</code> for the full set of demos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<dl>
 | 
				
			||||||
 | 
					<dt><code>--with-demos=DEMOS,DEMOS,...</code>
 | 
				
			||||||
 | 
					<dd><p> This option allows a
 | 
				
			||||||
 | 
					specific set of demo programs to be built. For example,
 | 
				
			||||||
 | 
					<code>--with-demos="xdemos,slang"</code>. Beware that if this option is
 | 
				
			||||||
 | 
					used, it will not be ensured that the necessary GL libraries will be
 | 
				
			||||||
 | 
					available.
 | 
				
			||||||
 | 
					<dt><code>--without-demos</code> <dd><p> This completely disables building the
 | 
				
			||||||
 | 
					demo programs. It is equivalent to <code>--with-demos=no</code>.
 | 
				
			||||||
 | 
					</dl>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										33
									
								
								docs/banner.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								docs/banner.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					<!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>Banner</title>
 | 
				
			||||||
 | 
					  <style type="text/css">
 | 
				
			||||||
 | 
					    <!--
 | 
				
			||||||
 | 
					    body { background: black; color: white }
 | 
				
			||||||
 | 
					    h1 {
 | 
				
			||||||
 | 
					      font: x-large sans-serif; text-align: center;
 | 
				
			||||||
 | 
					      height: 75px; margin-left: 100px; margin-right: 100px }
 | 
				
			||||||
 | 
					    .gears { width: 100px; height: 73px; float: left; background: url('gears.png') right no-repeat }
 | 
				
			||||||
 | 
					    div + .gears { float: right; background-position: left }
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					    This should happen in the future instead:
 | 
				
			||||||
 | 
					    h1 {
 | 
				
			||||||
 | 
					      border-left: 71px solid #c11800; border-right: 71px solid #00c130;
 | 
				
			||||||
 | 
					      border-top: 0px; border-bottom: 0px;
 | 
				
			||||||
 | 
					      border-image: url(gears.png) 100%; -webkit-border-image: url(gears.png) 100%;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					  </style>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="gears"></div>
 | 
				
			||||||
 | 
					<div class="gears"></div>
 | 
				
			||||||
 | 
					<h1>The Mesa 3D Graphics Library</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -7,24 +7,18 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Bug Database</h1>
 | 
					<h1>Bug Database</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The Mesa bug database is hosted on
 | 
					The Mesa bug database is hosted on
 | 
				
			||||||
<a href="http://freedesktop.org">freedesktop.org</a>.
 | 
					<a href="http://freedesktop.org" target="_parent">freedesktop.org</a>.
 | 
				
			||||||
The old bug database on SourceForge is no longer used.
 | 
					The old bug database on SourceForge is no longer used.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To file a Mesa bug, go to
 | 
					To file a Mesa bug, go to
 | 
				
			||||||
<a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa">
 | 
					<a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"
 | 
				
			||||||
 | 
					target="_parent">
 | 
				
			||||||
Bugzilla on freedesktop.org</a>
 | 
					Bugzilla on freedesktop.org</a>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,6 +50,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="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Single-line comments:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   /* null-out pointer to prevent dangling reference below */
 | 
					 | 
				
			||||||
   bufferObj = NULL;
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
Or,
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   bufferObj = NULL;  /* prevent dangling reference below */
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
Multi-line comment:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   /* If this is a new buffer object id, or one which was generated but
 | 
					 | 
				
			||||||
    * never used before, allocate a buffer object now.
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
We try to quote the OpenGL specification where prudent:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   /* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
 | 
					 | 
				
			||||||
    *
 | 
					 | 
				
			||||||
    *     "An INVALID_OPERATION error is generated for any of the following
 | 
					 | 
				
			||||||
    *     conditions:
 | 
					 | 
				
			||||||
    *
 | 
					 | 
				
			||||||
    *     * <length> is zero."
 | 
					 | 
				
			||||||
    *
 | 
					 | 
				
			||||||
    * Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
 | 
					 | 
				
			||||||
    * (30.10.2014) also says this, so it's no longer allowed for desktop GL,
 | 
					 | 
				
			||||||
    * either.
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
Function comment example:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   /**
 | 
					 | 
				
			||||||
    * Create and initialize a new buffer object.  Called via the
 | 
					 | 
				
			||||||
    * ctx->Driver.CreateObject() driver callback function.
 | 
					 | 
				
			||||||
    * \param  name  integer name of the object
 | 
					 | 
				
			||||||
    * \param  type  one of GL_FOO, GL_BAR, etc.
 | 
					 | 
				
			||||||
    * \return  pointer to new object or NULL if error
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
   struct gl_object *
 | 
					 | 
				
			||||||
   _mesa_create_object(GLuint name, GLenum type)
 | 
					 | 
				
			||||||
   {
 | 
					 | 
				
			||||||
      /* function body */
 | 
					 | 
				
			||||||
   }
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Put the function return type and qualifiers on one line and the function
 | 
					 | 
				
			||||||
name and parameters on the next, as seen above.  This makes it easy to use
 | 
					 | 
				
			||||||
<code>grep ^function_name dir/*</code> to find function definitions.  Also,
 | 
					 | 
				
			||||||
the opening brace goes on the next line by itself (see above.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Function names follow various conventions depending on the type of function:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   glFooBar()       - a public GL entry point (in glapi_dispatch.c)
 | 
					 | 
				
			||||||
   _mesa_FooBar()   - the internal immediate mode function
 | 
					 | 
				
			||||||
   save_FooBar()    - retained mode (display list) function in dlist.c
 | 
					 | 
				
			||||||
   foo_bar()        - a static (private) function
 | 
					 | 
				
			||||||
   _mesa_foo_bar()  - an internal non-static Mesa function
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
 | 
					 | 
				
			||||||
words.
 | 
					 | 
				
			||||||
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
 | 
					 | 
				
			||||||
while gallium typically uses underscores (Ex: "local_var_name").
 | 
					 | 
				
			||||||
<li>Global variables are almost never used because Mesa should be thread-safe.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Booleans.  Places that are not directly visible to the GL API
 | 
					 | 
				
			||||||
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
 | 
					 | 
				
			||||||
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
 | 
					 | 
				
			||||||
<tt>GL_FALSE</tt>.  In C code, this may mean that
 | 
					 | 
				
			||||||
<tt>#include <stdbool.h></tt> needs to be added.  The
 | 
					 | 
				
			||||||
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
 | 
					 | 
				
			||||||
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -7,19 +7,12 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<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 +691,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>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,66 +25,62 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<b>Documentation</b>
 | 
					<b>Documentation</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="intro.html" target="_parent">Introduction</a>
 | 
					<li><a href="intro.html" target="MainFrame">Introduction</a>
 | 
				
			||||||
<li><a href="index.html" target="_parent">News</a>
 | 
					<li><a href="news.html" target="MainFrame">News</a>
 | 
				
			||||||
<li><a href="developers.html" target="_parent">Developers</a>
 | 
					<li><a href="developers.html" target="MainFrame">Developers</a>
 | 
				
			||||||
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
 | 
					<li><a href="systems.html" target="MainFrame">Platforms and Drivers</a>
 | 
				
			||||||
<li><a href="license.html" target="_parent">License & Copyright</a>
 | 
					<li><a href="license.html" target="MainFrame">License & Copyright</a>
 | 
				
			||||||
<li><a href="faq.html" target="_parent">FAQ</a>
 | 
					<li><a href="faq.html" target="MainFrame">FAQ</a>
 | 
				
			||||||
<li><a href="relnotes.html" target="_parent">Release Notes</a>
 | 
					<li><a href="relnotes.html" target="MainFrame">Release Notes</a>
 | 
				
			||||||
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
 | 
					<li><a href="thanks.html" target="MainFrame">Acknowledgements</a>
 | 
				
			||||||
<li><a href="conform.html" target="_parent">Conformance Testing</a>
 | 
					<li><a href="conform.html" target="MainFrame">Conformance Testing</a>
 | 
				
			||||||
<li>more docs below...
 | 
					<li>more docs below...
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Download / Install</b>
 | 
					<b>Download / Install</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
 | 
					<li><a href="download.html" target="MainFrame">Downloading / Unpacking</a>
 | 
				
			||||||
<li><a href="install.html" target="_parent">Compiling / Installing</a>
 | 
					<li><a href="install.html" target="MainFrame">Compiling / Installing</a>
 | 
				
			||||||
  <ul>
 | 
					<li><a href="precompiled.html" target="MainFrame">Precompiled Libraries</a>
 | 
				
			||||||
    <li><a href="autoconf.html" target="_parent">Autoconf</a></li>
 | 
					 | 
				
			||||||
  </ul>
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Resources</b>
 | 
					<b>Resources</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="lists.html" target="_parent">Mailing Lists</a>
 | 
					<li><a href="lists.html" target="MainFrame">Mailing Lists</a>
 | 
				
			||||||
<li><a href="bugs.html" target="_parent">Bug Database</a>
 | 
					<li><a href="bugs.html" target="MainFrame">Bug Database</a>
 | 
				
			||||||
<li><a href="webmaster.html" target="_parent">Webmaster</a>
 | 
					<li><a href="webmaster.html" target="MainFrame">Webmaster</a>
 | 
				
			||||||
<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
 | 
					<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>User Topics</b>
 | 
					<b>User Topics</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="shading.html" target="_parent">Shading Language</a>
 | 
					<li><a href="egl.html" target="MainFrame">EGL</a>
 | 
				
			||||||
<li><a href="egl.html" target="_parent">EGL</a>
 | 
					<li><a href="opengles.html" target="MainFrame">OpenGL ES</a>
 | 
				
			||||||
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
 | 
					<li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a>
 | 
				
			||||||
<li><a href="envvars.html" target="_parent">Environment Variables</a>
 | 
					<li><a href="envvars.html" target="MainFrame">Environment Variables</a>
 | 
				
			||||||
<li><a href="osmesa.html" target="_parent">Off-Screen Rendering</a>
 | 
					<li><a href="osmesa.html" target="MainFrame">Off-Screen Rendering</a>
 | 
				
			||||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
 | 
					<li><a href="debugging.html" target="MainFrame">Debugging Tips</a>
 | 
				
			||||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
 | 
					<li><a href="perf.html" target="MainFrame">Performance Tips</a>
 | 
				
			||||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
 | 
					<li><a href="extensions.html" target="MainFrame">Mesa Extensions</a>
 | 
				
			||||||
<li><a href="mangling.html" target="_parent">GL Function Name Mangling</a>
 | 
					<li><a href="mangling.html" target="MainFrame">Function Name Mangling</a>
 | 
				
			||||||
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
 | 
					<li><a href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</a>
 | 
				
			||||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
 | 
					<li><a href="vmware-guest.html" target="MainFrame">VMware SVGA3D guest driver</a>
 | 
				
			||||||
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
 | 
					<li><a href="postprocess.html" target="MainFrame">Gallium post-processing</a>
 | 
				
			||||||
<li><a href="application-issues.html" target="_parent">Application Issues</a>
 | 
					<li><a href="viewperf.html" target="MainFrame">Viewperf Issues</a>
 | 
				
			||||||
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Developer Topics</b>
 | 
					<b>Developer Topics</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="repository.html" target="_parent">Source Code Repository</a>
 | 
					<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
 | 
				
			||||||
<li><a href="sourcetree.html" target="_parent">Source Code Tree</a>
 | 
					<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
 | 
				
			||||||
<li><a href="utilities.html" target="_parent">Utilities</a>
 | 
					<li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
 | 
				
			||||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
 | 
					<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
 | 
				
			||||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
 | 
					<li><a href="utilities.html" target="MainFrame">Utilities</a>
 | 
				
			||||||
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
 | 
					<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
 | 
				
			||||||
<li><a href="submittingpatches.html" target="_parent">Submitting patches</a>
 | 
					<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
 | 
				
			||||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
 | 
					<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
 | 
				
			||||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
 | 
					<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
 | 
				
			||||||
 | 
					<li><a HREF="dispatch.html" target="MainFrame">GL Dispatch</a>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Links</b>
 | 
					<b>Links</b>
 | 
				
			||||||
@@ -92,14 +88,19 @@
 | 
				
			|||||||
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
 | 
					<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
 | 
				
			||||||
<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
 | 
					<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
 | 
				
			||||||
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
 | 
					<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
 | 
				
			||||||
<li><a href="http://planet.freedesktop.org" target="_parent">Developer blogs</a>
 | 
					<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
 | 
				
			||||||
 | 
					<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
 | 
				
			||||||
 | 
					<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
 | 
				
			||||||
 | 
					<li><a href="science.html" target="MainFrame">Science and Technical</a>
 | 
				
			||||||
 | 
					<li><a href="utility.html" target="MainFrame">Utilities</a>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Hosted by:</b>
 | 
					<b>Hosted by:</b>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
<blockquote>
 | 
					<blockquote>
 | 
				
			||||||
<a href="http://sourceforge.net"
 | 
					<a href="http://sourceforge.net"
 | 
				
			||||||
target="_parent">sourceforge.net</a>
 | 
					target="_parent"><img src="http://sourceforge.net/sflogo.php?group_id=3&type=1"
 | 
				
			||||||
 | 
					width="88" height="31" align="bottom" alt="Sourceforge.net" border="0"></a>
 | 
				
			||||||
</blockquote>
 | 
					</blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,13 +7,6 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Debugging Tips</h1>
 | 
					<h1>Debugging Tips</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
@@ -42,6 +35,5 @@
 | 
				
			|||||||
   src/dlist.c for details.
 | 
					   src/dlist.c for details.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,20 +7,13 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Developers</h1>
 | 
					<h1>Developers</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Both professional and volunteer developers contribute to Mesa.
 | 
					Both professional and volunteer developers contribute to Mesa.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<a href="http://www.vmware.com/">VMware</a>
 | 
					<a href="http://www.vmware.com/" target="_parent">VMware</a>
 | 
				
			||||||
employs several of the main Mesa developers including Brian Paul
 | 
					employs several of the main Mesa developers including Brian Paul
 | 
				
			||||||
and Keith Whitwell.
 | 
					and Keith Whitwell.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
@@ -38,13 +31,13 @@ including:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Other companies including
 | 
					Other companies including
 | 
				
			||||||
<a href="https://01.org/linuxgraphics">Intel</a>
 | 
					<a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a>
 | 
				
			||||||
and RedHat also actively contribute to the project.
 | 
					and RedHat also actively contribute to the project.
 | 
				
			||||||
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
 | 
					Intel has recently contributed the new GLSL compiler in Mesa 7.9.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<a href="http://www.lunarg.com/">LunarG</a> can be contacted
 | 
					<a href="http://www.lunarg.com/" target="_parent">LunarG</a> can be contacted
 | 
				
			||||||
for custom Mesa / 3D graphics development.
 | 
					for custom Mesa / 3D graphics development.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -53,6 +46,5 @@ Volunteers have made significant contributions to all parts of Mesa, including
 | 
				
			|||||||
complete device drivers.
 | 
					complete device drivers.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,21 +7,10 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Development Notes</h1>
 | 
					<h1>Development Notes</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					<h2>Adding Extentions</h2>
 | 
				
			||||||
<li><a href="#extensions">Adding Extensions</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2 id="extensions">Adding Extensions</h2>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To add a new GL extension to Mesa you have to do at least the following.
 | 
					To add a new GL extension to Mesa you have to do at least the following.
 | 
				
			||||||
@@ -40,18 +29,16 @@ To add a new GL extension to Mesa you have to do at least the following.
 | 
				
			|||||||
   </pre>
 | 
					   </pre>
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li>
 | 
					<li>
 | 
				
			||||||
   In the src/mapi/glapi/gen/ directory, add the new extension functions and
 | 
					   In the src/mesa/glapi/ directory, add the new extension functions and
 | 
				
			||||||
   enums to the gl_API.xml file.
 | 
					   enums to the gl_API.xml file.
 | 
				
			||||||
   Then, a bunch of source files must be regenerated by executing the
 | 
					   Then, a bunch of source files must be regenerated by executing the
 | 
				
			||||||
   corresponding Python scripts.
 | 
					   corresponding Python scripts.
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li>
 | 
					<li>
 | 
				
			||||||
   Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
 | 
					   Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
 | 
				
			||||||
   if the extension requires driver capabilities not already exposed by
 | 
					 | 
				
			||||||
   another extension.
 | 
					 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li>
 | 
					<li>
 | 
				
			||||||
   Add a new entry to the src/mesa/main/extensions_table.h file.
 | 
					   Update the <code>extensions.c</code> file.
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li>
 | 
					<li>
 | 
				
			||||||
   From this point, the best way to proceed is to find another extension,
 | 
					   From this point, the best way to proceed is to find another extension,
 | 
				
			||||||
@@ -62,22 +49,199 @@ To add a new GL extension to Mesa you have to do at least the following.
 | 
				
			|||||||
   If the new extension adds new GL state, the functions in get.c, enable.c
 | 
					   If the new extension adds new GL state, the functions in get.c, enable.c
 | 
				
			||||||
   and attrib.c will most likely require new code.
 | 
					   and attrib.c will most likely require new code.
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<li>
 | 
					 | 
				
			||||||
   To determine if the new extension is active in the current context,
 | 
					 | 
				
			||||||
   use the auto-generated _mesa_has_##name_str() function defined in
 | 
					 | 
				
			||||||
   src/mesa/main/extensions.h.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>
 | 
					 | 
				
			||||||
   The dispatch tests check_table.cpp and dispatch_sanity.cpp
 | 
					 | 
				
			||||||
   should be updated with details about the new extensions functions. These
 | 
					 | 
				
			||||||
   tests are run using 'make check'
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2>Coding Style</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Mesa's code style has changed over the years.  Here's the latest.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Comment your code!  It's extremely important that open-source code be
 | 
				
			||||||
 | 
					well documented.  Also, strive to write clean, easily understandable code.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					3-space indentation
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					If you use tabs, set them to 8 columns
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Line width: the preferred width to fill comments and code in Mesa is 78
 | 
				
			||||||
 | 
					columns.  Exceptions are sometimes made for clarity (e.g. tabular data is
 | 
				
			||||||
 | 
					sometimes filled to a much larger width so that extraneous carriage returns
 | 
				
			||||||
 | 
					don't obscure the table).
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Brace example:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
						if (condition) {
 | 
				
			||||||
 | 
						   foo;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
 | 
						   bar;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						switch (condition) {
 | 
				
			||||||
 | 
						case 0:
 | 
				
			||||||
 | 
						   foo();
 | 
				
			||||||
 | 
						   break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case 1: {
 | 
				
			||||||
 | 
						   ...
 | 
				
			||||||
 | 
						   break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
						   ...
 | 
				
			||||||
 | 
						   break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Here's the GNU indent command which will best approximate my preferred style:
 | 
				
			||||||
 | 
					(Note that it won't format switch statements in the preferred way)
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
						indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Local variable name example:  localVarName (no underscores)
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Constants and macros are ALL_UPPERCASE, with _ between words
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Global variables are not allowed.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Function name examples:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2>Making a New Mesa Release</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					These are the instructions for making a new Mesa release.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Get latest source files</h3>
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Use git to get the latest Mesa files from the git repository, from whatever
 | 
				
			||||||
 | 
					branch is relevant.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					<h3>Verify and update version info</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<dl>
 | 
				
			||||||
 | 
					  <dt>configs/default</dt>
 | 
				
			||||||
 | 
					  <dd>MESA_MAJOR, MESA_MINOR and MESA_TINY</dd>
 | 
				
			||||||
 | 
					  <dt>Makefile.am</dt>
 | 
				
			||||||
 | 
					  <dd>PACKAGE_VERSION</dd>
 | 
				
			||||||
 | 
					  <dt>autoconf.ac</dt>
 | 
				
			||||||
 | 
					  <dd>AC_INIT</dd>
 | 
				
			||||||
 | 
					  <dt>src/mesa/main/version.h</dt>
 | 
				
			||||||
 | 
					  <dd>MESA_MAJOR, MESA_MINOR, MESA_PATCH and MESA_VERSION_STRING</dd>
 | 
				
			||||||
 | 
					</dl>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Create a docs/relnotes-x.y.z.html file.
 | 
				
			||||||
 | 
					The bin/shortlog_mesa.sh script can be used to create a HTML-formatted list
 | 
				
			||||||
 | 
					of changes to include in the file.
 | 
				
			||||||
 | 
					Link the new docs/relnotes-x.y.z.html file into the main <a href="relnotes.html">relnotes.html</a> file.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Update <a href="news.html">docs/news.html</a>.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Tag the files with the release name (in the form <b>mesa-x.y</b>)
 | 
				
			||||||
 | 
					with: <code>git tag -a mesa-x.y</code>
 | 
				
			||||||
 | 
					Then: <code>git push origin mesa-x.y</code>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Make the tarballs</h3>
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Make the distribution files.  From inside the Mesa directory:
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
						make tarballs
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					After the tarballs are created, the md5 checksums for the files will
 | 
				
			||||||
 | 
					be computed.
 | 
				
			||||||
 | 
					Add them to the docs/relnotes-x.y.html file.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Copy the distribution files to a temporary directory, unpack them,
 | 
				
			||||||
 | 
					compile everything, and run some demos to be sure everything works.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Update the website and announce the release</h3>
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Follow the directions on SourceForge for creating a new "release" and
 | 
				
			||||||
 | 
					uploading the tarballs.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Basically, to upload the tarball files with:
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<code>
 | 
				
			||||||
 | 
					rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/
 | 
				
			||||||
 | 
					</code>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Update the web site by copying the docs/ directory's files to 
 | 
				
			||||||
 | 
					/home/users/b/br/brianp/mesa-www/htdocs/ with:
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<code>
 | 
				
			||||||
 | 
					sftp USERNAME,mesa3d@web.sourceforge.net
 | 
				
			||||||
 | 
					</code>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Make an announcement on the mailing lists:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
 | 
				
			||||||
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
 | 
				
			||||||
 | 
					and
 | 
				
			||||||
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,14 +6,6 @@
 | 
				
			|||||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
					  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="header">
 | 
					 | 
				
			||||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<iframe src="contents.html"></iframe>
 | 
					 | 
				
			||||||
<div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>GL Dispatch in Mesa</h1>
 | 
					<h1>GL Dispatch in Mesa</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
 | 
					<p>Several factors combine to make efficient dispatch of OpenGL functions
 | 
				
			||||||
@@ -25,7 +17,7 @@ href="#overview">overview of Mesa's implementation</a>.</p>
 | 
				
			|||||||
<h2>1. Complexity of GL Dispatch</h2>
 | 
					<h2>1. Complexity of GL Dispatch</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>Every GL application has at least one object called a GL <em>context</em>.
 | 
					<p>Every GL application has at least one object called a GL <em>context</em>.
 | 
				
			||||||
This object, which is an implicit parameter to every GL function, stores all
 | 
					This object, which is an implicit parameter to ever GL function, stores all
 | 
				
			||||||
of the GL related state for the application.  Every texture, every buffer
 | 
					of the GL related state for the application.  Every texture, every buffer
 | 
				
			||||||
object, every enable, and much, much more is stored in the context.  Since
 | 
					object, every enable, and much, much more is stored in the context.  Since
 | 
				
			||||||
an application can have more than one context, the context to be used is
 | 
					an application can have more than one context, the context to be used is
 | 
				
			||||||
@@ -51,7 +43,7 @@ example, <tt>glFogCoordf</tt> may operate differently depending on whether
 | 
				
			|||||||
or not fog is enabled.</p>
 | 
					or not fog is enabled.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>In multi-threaded environments, it is possible for each thread to have a
 | 
					<p>In multi-threaded environments, it is possible for each thread to have a
 | 
				
			||||||
different GL context current.  This means that poor old <tt>glVertex3fv</tt>
 | 
					differnt GL context current.  This means that poor old <tt>glVertex3fv</tt>
 | 
				
			||||||
has to know which GL context is current in the thread where it is being
 | 
					has to know which GL context is current in the thread where it is being
 | 
				
			||||||
called.</p>
 | 
					called.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -204,15 +196,16 @@ terribly relevant.</p>
 | 
				
			|||||||
few preprocessor defines.</p>
 | 
					few preprocessor defines.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li>If <tt>GLX_USE_TLS</tt> is defined, method #3 is used.</li>
 | 
					<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
 | 
				
			||||||
<li>If <tt>HAVE_PTHREAD</tt> is defined, method #2 is used.</li>
 | 
					<li>If <tt>PTHREADS</tt> is defined, method #3 is used.</li>
 | 
				
			||||||
<li>If none of the preceding are defined, method #1 is used.</li>
 | 
					<li>If <tt>WIN32_THREADS</tt> is defined, method #2 is used.</li>
 | 
				
			||||||
 | 
					<li>If none of the preceeding are defined, method #1 is used.</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>Two different techniques are used to handle the various different cases.
 | 
					<p>Two different techniques are used to handle the various different cases.
 | 
				
			||||||
On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used.  In the preamble
 | 
					On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used.  In the preamble
 | 
				
			||||||
of the assembly source file different implementations of the macro are
 | 
					of the assembly source file different implementations of the macro are
 | 
				
			||||||
selected based on the defined preprocessor variables.  The assembly code
 | 
					selected based on the defined preprocessor variables.  The assmebly code
 | 
				
			||||||
then consists of a series of invocations of the macros such as:
 | 
					then consists of a series of invocations of the macros such as:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<blockquote>
 | 
					<blockquote>
 | 
				
			||||||
@@ -241,7 +234,7 @@ first technique, is to insert <tt>#ifdef</tt> within the assembly
 | 
				
			|||||||
implementation of each function.  This makes the assembly file considerably
 | 
					implementation of each function.  This makes the assembly file considerably
 | 
				
			||||||
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
 | 
					larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
 | 
				
			||||||
<tt>glapi_x86.S</tt>) and causes simple changes to the function
 | 
					<tt>glapi_x86.S</tt>) and causes simple changes to the function
 | 
				
			||||||
implementation to generate many lines of diffs.  Since the assembly files
 | 
					implementation to generate many lines of diffs.  Since the assmebly files
 | 
				
			||||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
 | 
					are typically generated by scripts (see <a href="#autogen">below</a>), this
 | 
				
			||||||
isn't a significant problem.</p>
 | 
					isn't a significant problem.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -273,6 +266,5 @@ included.</p>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
 | 
					<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</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