Compare commits
	
		
			188 Commits
		
	
	
		
			mesa-10.3-
			...
			mesa_3_2_b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1b539ed613 | ||
| 
						 | 
					905ad56487 | ||
| 
						 | 
					a16ebe76c9 | ||
| 
						 | 
					96563ae75f | ||
| 
						 | 
					11769b9737 | ||
| 
						 | 
					474363af47 | ||
| 
						 | 
					99189ad4fb | ||
| 
						 | 
					361fc66e36 | ||
| 
						 | 
					0b616332f7 | ||
| 
						 | 
					4f030d12ad | ||
| 
						 | 
					792837dafd | ||
| 
						 | 
					8c77d45b06 | ||
| 
						 | 
					660f6dec37 | ||
| 
						 | 
					14e7ab2c4f | ||
| 
						 | 
					089f713f0d | ||
| 
						 | 
					53f81339a4 | ||
| 
						 | 
					2cf228e93d | ||
| 
						 | 
					4e8ee6840a | ||
| 
						 | 
					5144d47c54 | ||
| 
						 | 
					3eaed2527a | ||
| 
						 | 
					353bd24876 | ||
| 
						 | 
					473d64f9cc | ||
| 
						 | 
					c21598fb0d | ||
| 
						 | 
					287abc7aa0 | ||
| 
						 | 
					e6e732c64d | ||
| 
						 | 
					61cca3827f | ||
| 
						 | 
					88406455f5 | ||
| 
						 | 
					fb67681366 | ||
| 
						 | 
					ead75d4894 | ||
| 
						 | 
					bd4ba2b85d | ||
| 
						 | 
					998839109e | ||
| 
						 | 
					a23d3cc054 | ||
| 
						 | 
					803d5a12ab | ||
| 
						 | 
					462144c0f0 | ||
| 
						 | 
					a780e6f228 | ||
| 
						 | 
					7feab37f8a | ||
| 
						 | 
					091834064c | ||
| 
						 | 
					9275c62963 | ||
| 
						 | 
					7166ff0412 | ||
| 
						 | 
					bf69170dff | ||
| 
						 | 
					3c6dd8791c | ||
| 
						 | 
					69bc4e01b8 | ||
| 
						 | 
					b2d3b2dbe0 | ||
| 
						 | 
					c508641aec | ||
| 
						 | 
					f008070ad5 | ||
| 
						 | 
					c562884268 | ||
| 
						 | 
					992795f4c9 | ||
| 
						 | 
					d21f13cb05 | ||
| 
						 | 
					f1b26953e8 | ||
| 
						 | 
					216244bed8 | ||
| 
						 | 
					b85c3afc01 | ||
| 
						 | 
					e4ee3cc9d1 | ||
| 
						 | 
					03d7215604 | ||
| 
						 | 
					82e6fe5e36 | ||
| 
						 | 
					dde5788a44 | ||
| 
						 | 
					8038f3747d | ||
| 
						 | 
					0df95816c5 | ||
| 
						 | 
					3692626805 | ||
| 
						 | 
					b31d01d4a7 | ||
| 
						 | 
					ba8ef5917e | ||
| 
						 | 
					f5d0252282 | ||
| 
						 | 
					83386c0f7b | ||
| 
						 | 
					5e8aa8e5d9 | ||
| 
						 | 
					f008ed46d1 | ||
| 
						 | 
					7b5a65ce28 | ||
| 
						 | 
					4f4b93d8ae | ||
| 
						 | 
					81f97580cc | ||
| 
						 | 
					8de719530c | ||
| 
						 | 
					f0040ae8f5 | ||
| 
						 | 
					ec2425c3b6 | ||
| 
						 | 
					aedc01c850 | ||
| 
						 | 
					93c528a6d5 | ||
| 
						 | 
					443d666b9a | ||
| 
						 | 
					d794378dbc | ||
| 
						 | 
					76dad53903 | ||
| 
						 | 
					e5f8d98410 | ||
| 
						 | 
					7f8fed5711 | ||
| 
						 | 
					5ed6197b0a | ||
| 
						 | 
					609524894a | ||
| 
						 | 
					553adbb0c2 | ||
| 
						 | 
					361afca6a4 | ||
| 
						 | 
					4c6a2f6a33 | ||
| 
						 | 
					717ec19e30 | ||
| 
						 | 
					411fb983f7 | ||
| 
						 | 
					5dbe3d9c98 | ||
| 
						 | 
					fea067dce8 | ||
| 
						 | 
					1cfc846bf3 | ||
| 
						 | 
					dfa45b9f26 | ||
| 
						 | 
					6f602ed44d | ||
| 
						 | 
					34bf1dd293 | ||
| 
						 | 
					9a7584b062 | ||
| 
						 | 
					d6dfb94059 | ||
| 
						 | 
					b9ee2850cf | ||
| 
						 | 
					4183bf524d | ||
| 
						 | 
					1721f447c6 | ||
| 
						 | 
					46ef216f7f | ||
| 
						 | 
					a171741d65 | ||
| 
						 | 
					320c2cdb0f | ||
| 
						 | 
					9ed70db8ea | ||
| 
						 | 
					acbb8cb9dd | ||
| 
						 | 
					7889a93ff7 | ||
| 
						 | 
					970a551795 | ||
| 
						 | 
					d7eae31275 | ||
| 
						 | 
					b0294cbbfe | ||
| 
						 | 
					e2ff9be0b6 | ||
| 
						 | 
					16283fea40 | ||
| 
						 | 
					82ba9449e1 | ||
| 
						 | 
					2377ea9c66 | ||
| 
						 | 
					ac3593ada5 | ||
| 
						 | 
					d6dd996e56 | ||
| 
						 | 
					cee556daea | ||
| 
						 | 
					313f225a2e | ||
| 
						 | 
					95d565b64c | ||
| 
						 | 
					32ea1fdc7e | ||
| 
						 | 
					8d52ee9ae1 | ||
| 
						 | 
					9a07202f5e | ||
| 
						 | 
					0f953d69e5 | ||
| 
						 | 
					b3a1034c05 | ||
| 
						 | 
					8956d5131d | ||
| 
						 | 
					428cf99956 | ||
| 
						 | 
					1e5dab20fd | ||
| 
						 | 
					aa5251d170 | ||
| 
						 | 
					607add71d9 | ||
| 
						 | 
					074710629d | ||
| 
						 | 
					7f0b5dd69c | ||
| 
						 | 
					09b83c889b | ||
| 
						 | 
					9c416c235b | ||
| 
						 | 
					6ce3f22ae9 | ||
| 
						 | 
					32093ccc86 | ||
| 
						 | 
					d5ff1d782b | ||
| 
						 | 
					2ed8894aca | ||
| 
						 | 
					33cd8a5490 | ||
| 
						 | 
					dd25e9852a | ||
| 
						 | 
					05df9bb6e0 | ||
| 
						 | 
					a335bf404f | ||
| 
						 | 
					783a67260a | ||
| 
						 | 
					e99e126479 | ||
| 
						 | 
					98fce32683 | ||
| 
						 | 
					9493e540f9 | ||
| 
						 | 
					7138d38cc1 | ||
| 
						 | 
					9e7f0e1f7c | ||
| 
						 | 
					52345bfa1e | ||
| 
						 | 
					93070bceca | ||
| 
						 | 
					5b90676fc7 | ||
| 
						 | 
					92ad030cb7 | ||
| 
						 | 
					9afe0e4278 | ||
| 
						 | 
					3e63be01d1 | ||
| 
						 | 
					c73eedbe96 | ||
| 
						 | 
					8c54c4d9f7 | ||
| 
						 | 
					33817940c4 | ||
| 
						 | 
					7ec2e161ac | ||
| 
						 | 
					fc2e8cd0d0 | ||
| 
						 | 
					a3ea9edfda | ||
| 
						 | 
					7fa9891de2 | ||
| 
						 | 
					ddd9410a67 | ||
| 
						 | 
					532dde3e99 | ||
| 
						 | 
					2a6f393fa7 | ||
| 
						 | 
					2d1b9e0402 | ||
| 
						 | 
					19c878467f | ||
| 
						 | 
					1041d573ff | ||
| 
						 | 
					fda834160b | ||
| 
						 | 
					7d35435bb6 | ||
| 
						 | 
					5c191a62bc | ||
| 
						 | 
					eca3b6e47e | ||
| 
						 | 
					aa0a8624fb | ||
| 
						 | 
					f16a627115 | ||
| 
						 | 
					1d39975c4e | ||
| 
						 | 
					62d5f4c73e | ||
| 
						 | 
					d42cd99c66 | ||
| 
						 | 
					03ef882735 | ||
| 
						 | 
					19d0fcafb3 | ||
| 
						 | 
					cc6e92ff49 | ||
| 
						 | 
					463c2b6b77 | ||
| 
						 | 
					09c133e16f | ||
| 
						 | 
					bb1d3c1ad1 | ||
| 
						 | 
					cabb6a91cd | ||
| 
						 | 
					c76ac6b644 | ||
| 
						 | 
					6842075a09 | ||
| 
						 | 
					b1da189fe5 | ||
| 
						 | 
					9b635315be | ||
| 
						 | 
					702baf4cd3 | ||
| 
						 | 
					b27ee886e4 | ||
| 
						 | 
					276465cec6 | ||
| 
						 | 
					5428538d65 | ||
| 
						 | 
					ab5d4d6233 | ||
| 
						 | 
					2450ce124b | ||
| 
						 | 
					cf22eb77a7 | ||
| 
						 | 
					569802cdb1 | 
@@ -1,12 +0,0 @@
 | 
			
		||||
((nil
 | 
			
		||||
  (indent-tabs-mode . nil)
 | 
			
		||||
  (tab-width . 8)
 | 
			
		||||
  (c-basic-offset . 3)
 | 
			
		||||
  (c-file-style . "stroustrup")
 | 
			
		||||
  (fill-column . 78)
 | 
			
		||||
  (eval . (progn
 | 
			
		||||
	    (c-set-offset 'innamespace '0)
 | 
			
		||||
	    (c-set-offset 'inline-open '0)))
 | 
			
		||||
  )
 | 
			
		||||
 (makefile-mode (indent-tabs-mode . t))
 | 
			
		||||
 )
 | 
			
		||||
							
								
								
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +0,0 @@
 | 
			
		||||
*.dsp -crlf
 | 
			
		||||
*.dsw -crlf
 | 
			
		||||
*.sln -crlf
 | 
			
		||||
*.vcproj -crlf
 | 
			
		||||
							
								
								
									
										46
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,46 +0,0 @@
 | 
			
		||||
*.a
 | 
			
		||||
*.dll
 | 
			
		||||
*.exe
 | 
			
		||||
*.ilk
 | 
			
		||||
*.la
 | 
			
		||||
*.lo
 | 
			
		||||
*.log
 | 
			
		||||
*.o
 | 
			
		||||
*.obj
 | 
			
		||||
*.os
 | 
			
		||||
*.pc
 | 
			
		||||
*.pdb
 | 
			
		||||
*.pyc
 | 
			
		||||
*.pyo
 | 
			
		||||
*.so
 | 
			
		||||
*.so.*
 | 
			
		||||
*.sw[a-z]
 | 
			
		||||
*.tar
 | 
			
		||||
*.tar.bz2
 | 
			
		||||
*.tar.gz
 | 
			
		||||
*.trs
 | 
			
		||||
*.zip
 | 
			
		||||
*~
 | 
			
		||||
depend
 | 
			
		||||
depend.bak
 | 
			
		||||
bin/ltmain.sh
 | 
			
		||||
lib
 | 
			
		||||
lib64
 | 
			
		||||
configure
 | 
			
		||||
configure.lineno
 | 
			
		||||
autom4te.cache
 | 
			
		||||
aclocal.m4
 | 
			
		||||
config.log
 | 
			
		||||
config.status
 | 
			
		||||
cscope*
 | 
			
		||||
.scon*
 | 
			
		||||
config.py
 | 
			
		||||
build
 | 
			
		||||
libtool
 | 
			
		||||
manifest.txt
 | 
			
		||||
.dir-locals.el
 | 
			
		||||
.deps/
 | 
			
		||||
.dirstamp
 | 
			
		||||
.libs/
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.in
 | 
			
		||||
@@ -1,66 +0,0 @@
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
 | 
			
		||||
# Copyright (C) 2010-2011 LunarG Inc.
 | 
			
		||||
#
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
#
 | 
			
		||||
# The above copyright notice and this permission notice shall be included
 | 
			
		||||
# in all copies or substantial portions of the Software.
 | 
			
		||||
#
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | 
			
		||||
# DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
# use c99 compiler by default
 | 
			
		||||
ifeq ($(LOCAL_CC),)
 | 
			
		||||
ifeq ($(LOCAL_IS_HOST_MODULE),true)
 | 
			
		||||
LOCAL_CC := $(HOST_CC) -std=c99
 | 
			
		||||
else
 | 
			
		||||
LOCAL_CC := $(TARGET_CC) -std=c99
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LOCAL_C_INCLUDES += \
 | 
			
		||||
	$(MESA_TOP)/include
 | 
			
		||||
 | 
			
		||||
MESA_VERSION=$(shell cat $(MESA_TOP)/VERSION)
 | 
			
		||||
# define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
 | 
			
		||||
LOCAL_CFLAGS += \
 | 
			
		||||
	-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 += \
 | 
			
		||||
	-DHAVE_PTHREAD=1 \
 | 
			
		||||
	-fvisibility=hidden \
 | 
			
		||||
	-Wno-sign-compare
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
 | 
			
		||||
ifeq ($(TARGET_ARCH),x86)
 | 
			
		||||
LOCAL_CFLAGS += \
 | 
			
		||||
	-DUSE_X86_ASM \
 | 
			
		||||
	-DHAVE_DLOPEN \
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LOCAL_CPPFLAGS += \
 | 
			
		||||
	-Wno-error=non-virtual-dtor \
 | 
			
		||||
	-Wno-non-virtual-dtor
 | 
			
		||||
 | 
			
		||||
# uncomment to keep the debug symbols
 | 
			
		||||
#LOCAL_STRIP_MODULE := false
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
 | 
			
		||||
LOCAL_MODULE_TAGS := optional
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										99
									
								
								Android.mk
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								Android.mk
									
									
									
									
									
								
							@@ -1,99 +0,0 @@
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
 | 
			
		||||
# Copyright (C) 2010-2011 LunarG Inc.
 | 
			
		||||
#
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
#
 | 
			
		||||
# The above copyright notice and this permission notice shall be included
 | 
			
		||||
# in all copies or substantial portions of the Software.
 | 
			
		||||
#
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 | 
			
		||||
# DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
# BOARD_GPU_DRIVERS should be defined.  The valid values are
 | 
			
		||||
#
 | 
			
		||||
#   classic drivers: i915 i965
 | 
			
		||||
#   gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
 | 
			
		||||
#
 | 
			
		||||
# The main target is libGLES_mesa.  For each classic driver enabled, a DRI
 | 
			
		||||
# module will also be built.  DRI modules will be loaded by libGLES_mesa.
 | 
			
		||||
 | 
			
		||||
MESA_TOP := $(call my-dir)
 | 
			
		||||
 | 
			
		||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
 | 
			
		||||
MESA_ANDROID_MINOR_VERSION := $(word 2, $(subst ., , $(PLATFORM_VERSION)))
 | 
			
		||||
MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSION)
 | 
			
		||||
 | 
			
		||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
 | 
			
		||||
MESA_PYTHON2 := python
 | 
			
		||||
 | 
			
		||||
DRM_GRALLOC_TOP := hardware/drm_gralloc
 | 
			
		||||
 | 
			
		||||
classic_drivers := i915 i965
 | 
			
		||||
gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
 | 
			
		||||
 | 
			
		||||
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
 | 
			
		||||
 | 
			
		||||
# warn about invalid drivers
 | 
			
		||||
invalid_drivers := $(filter-out \
 | 
			
		||||
	$(classic_drivers) $(gallium_drivers), $(MESA_GPU_DRIVERS))
 | 
			
		||||
ifneq ($(invalid_drivers),)
 | 
			
		||||
$(warning invalid GPU drivers: $(invalid_drivers))
 | 
			
		||||
# tidy up
 | 
			
		||||
MESA_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(MESA_GPU_DRIVERS))
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# host and target must be the same arch to generate matypes.h
 | 
			
		||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
 | 
			
		||||
MESA_ENABLE_ASM := true
 | 
			
		||||
else
 | 
			
		||||
MESA_ENABLE_ASM := false
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq ($(filter $(classic_drivers), $(MESA_GPU_DRIVERS)),)
 | 
			
		||||
MESA_BUILD_CLASSIC := true
 | 
			
		||||
else
 | 
			
		||||
MESA_BUILD_CLASSIC := false
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),)
 | 
			
		||||
MESA_BUILD_GALLIUM := true
 | 
			
		||||
else
 | 
			
		||||
MESA_BUILD_GALLIUM := false
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# add subdirectories
 | 
			
		||||
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
 | 
			
		||||
 | 
			
		||||
SUBDIRS := \
 | 
			
		||||
	src/loader \
 | 
			
		||||
	src/mapi \
 | 
			
		||||
	src/glsl \
 | 
			
		||||
	src/mesa \
 | 
			
		||||
	src/egl/main
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
 | 
			
		||||
SUBDIRS += \
 | 
			
		||||
	src/egl/drivers/dri2 \
 | 
			
		||||
	src/mesa/drivers/dri
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
 | 
			
		||||
SUBDIRS += src/gallium
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
mkfiles := $(patsubst %,$(MESA_TOP)/%/Android.mk,$(SUBDIRS))
 | 
			
		||||
include $(mkfiles)
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
@@ -1,7 +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)
 | 
			
		||||
							
								
								
									
										1303
									
								
								Make-config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1303
									
								
								Make-config
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										579
									
								
								Makefile.X11
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										579
									
								
								Makefile.X11
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,579 @@
 | 
			
		||||
# $Id: Makefile.X11,v 1.12.2.8 2000/03/23 00:14:28 brianp Exp $
 | 
			
		||||
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
# Version:  3.2
 | 
			
		||||
# 
 | 
			
		||||
# Copyright (C) 1999-2000  Brian Paul   All Rights Reserved.
 | 
			
		||||
# 
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
# 
 | 
			
		||||
# The above copyright notice and this permission notice shall be included
 | 
			
		||||
# in all copies or substantial portions of the Software.
 | 
			
		||||
# 
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
			
		||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
			
		||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
			
		||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Top-level makefile for Mesa
 | 
			
		||||
# To add a new configuration for your system add it to the list below
 | 
			
		||||
# then update the Make-config file.
 | 
			
		||||
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
default:
 | 
			
		||||
	@echo "Type one of the following:"
 | 
			
		||||
	@echo "  make aix                  for IBM RS/6000 with AIX"
 | 
			
		||||
	@echo "  make aix-sl               for IBM RS/6000, make shared libs"
 | 
			
		||||
	@echo "  make amiwin               for Amiga with SAS/C and AmiWin"
 | 
			
		||||
	@echo "  make amix                 for Amiga 3000 UX  SVR4 v2.1 systems"
 | 
			
		||||
	@echo "  make beos-r4              for BeOS R4"
 | 
			
		||||
	@echo "  make bsdos                for BSD/OS from BSDI using GCC"
 | 
			
		||||
	@echo "  make bsdos4               for BSD/OS 4.x, dynamic libraries"
 | 
			
		||||
	@echo "  make cygnus               for Win95/NT using Cygnus-Win32"
 | 
			
		||||
	@echo "  make cygnus-linux         for Win95/NT using Cygnus-Win32 under Linux"
 | 
			
		||||
	@echo "  make dgux                 for Data General"
 | 
			
		||||
	@echo "  make freebsd              for FreeBSD systems with GCC"
 | 
			
		||||
	@echo "  make freebsd-386          for FreeBSD systems with GCC, w/ Intel assembly"
 | 
			
		||||
	@echo "  make gcc                  for a generic system with GCC"
 | 
			
		||||
	@echo "  make hpux9                for HP systems with HPUX 9.x"
 | 
			
		||||
	@echo "  make hpux9-sl             for HP systems with HPUX 9.x, make shared libs"
 | 
			
		||||
	@echo "  make hpux9-gcc            for HP systems with HPUX 9.x using GCC"
 | 
			
		||||
	@echo "  make hpux9-gcc-sl         for HP systems with HPUX 9.x, GCC, make shared libs"
 | 
			
		||||
	@echo "  make hpux10               for HP systems with HPUX 10.x"
 | 
			
		||||
	@echo "  make hpux10-sl            for HP systems with HPUX 10.x, shared libs"
 | 
			
		||||
	@echo "  make hpux10-gcc           for HP systems with HPUX 10.x w/ GCC"
 | 
			
		||||
	@echo "  make hpux10-gcc-sl        for HP systems with HPUX 10.x w/ GCC, shared libs"
 | 
			
		||||
	@echo "  make irix4                for SGI systems with IRIX 4.x"
 | 
			
		||||
	@echo "  make irix5                for SGI systems with IRIX 5.x"
 | 
			
		||||
	@echo "  make irix5-gcc            for SGI systems with IRIX 5.x using GCC"
 | 
			
		||||
	@echo "  make irix5-dso            for SGI systems with IRIX 5.x, make DSOs"
 | 
			
		||||
	@echo "  make irix6-o32            for SGI systems with IRIX 6.x, make o32-bit libs"
 | 
			
		||||
	@echo "  make irix6-o32-dso        for SGI systems with IRIX 6.x, make o32-bit DSOs"
 | 
			
		||||
	@echo "  make irix6-n32            for SGI systems with IRIX 6.x, make n32-bit libs"
 | 
			
		||||
	@echo "  make irix6-n32-dso        for SGI systems with IRIX 6.x, make n32-bit DSOs"
 | 
			
		||||
	@echo "  make irix6-gcc-n32-sl     for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
 | 
			
		||||
	@echo "  make irix6-64             for SGI systems with IRIX 6.x, make 64-bit libs"
 | 
			
		||||
	@echo "  make irix6-64-dso         for SGI systems with IRIX 6.x, make 64-bit DSOs"
 | 
			
		||||
 | 
			
		||||
	@echo "  make linux                for Linux systems, make static .a libs"
 | 
			
		||||
	@echo "  make linux-elf            for Linux systems, make ELF shared libs"
 | 
			
		||||
	@echo "  make linux-386            for Linux w/ Intel assembly"
 | 
			
		||||
	@echo "  make linux-386-elf        for Linux w/ Intel assembly, make ELF shared libs"
 | 
			
		||||
	@echo "  make linux-ggi            for Linux systems with libggi"
 | 
			
		||||
	@echo "  make linux-386-ggi        for Linux systems with libggi w/ Intel assembly"
 | 
			
		||||
	@echo "  make linux-alpha          for Linux on Alpha systems"
 | 
			
		||||
	@echo "  make linux-alpha-elf      for Linux on Alpha systems, make ELF shared libs"
 | 
			
		||||
	@echo "  make linux-ppc            for Linux on PowerPC systems"
 | 
			
		||||
	@echo "  make linux-ppc-so         for Linux on PowerPC systems, make shared libs"
 | 
			
		||||
	@echo "  make linux-glide          for Linux w/ 3Dfx Glide driver"
 | 
			
		||||
	@echo "  make linux-386-glide      for Linux w/ 3Dfx Glide driver, Intel assembly"
 | 
			
		||||
	@echo "  make linux-386-opt-glide  for Linux with 3Dfx Voodoo1 for GLQuake"
 | 
			
		||||
	@echo "  make linux-386-opt-V2-glide  for Linux with 3Dfx Voodoo2 for GLQuake"
 | 
			
		||||
	@echo "  make linux-3dnow          for Linux on AMD w/ 3DNow!"
 | 
			
		||||
	@echo "  make linux-3dnow-glide    for Linux on AMD w/ 3DNow! for Glide"
 | 
			
		||||
	@echo "  make linux-386-pthread    for Linux w/ Intel assembly and linuxthreads"
 | 
			
		||||
	@echo "  make linux-386-pthread-shared  for Linux w/ Intel assembly and linuxthreads"
 | 
			
		||||
	@echo "  make linux-386-pthread-shared-glide  for Linux w/ Intel assembly, linuxthreads, and 3Dfx Glide driver"
 | 
			
		||||
	@echo "  make linux-sparc          for Linux on Sparc systems"
 | 
			
		||||
	@echo "  make linux-sparc5-elf     for Sparc5 systems, make ELF shared libs"
 | 
			
		||||
	@echo "  make linux-sparc-ultra    for UltraSparc systems, make ELF shared libs"
 | 
			
		||||
	@echo "  make lynxos               for LynxOS systems with GCC"
 | 
			
		||||
	@echo "  make macintosh            for Macintosh"
 | 
			
		||||
	@echo "  make machten-2.2          for Macs w/ MachTen 2.2 (68k w/ FPU)"
 | 
			
		||||
	@echo "  make machten-4.0          for Macs w/ MachTen 4.0.1 or newer with GNU make"
 | 
			
		||||
	@echo "  make mklinux              for Linux on Power Macintosh"
 | 
			
		||||
	@echo "  make netbsd               for NetBSD 1.0 systems with GCC"
 | 
			
		||||
	@echo "  make next                 for NeXT systems with NEXTSTEP 3.3"
 | 
			
		||||
	@echo "  make openbsd              for OpenBSD systems"
 | 
			
		||||
	@echo "  make openstep             for OpenStep/MacOSX Server systems"
 | 
			
		||||
	@echo "  make os2-x11              for OS/2 with XFree86"
 | 
			
		||||
	@echo "  make osf1                 for DEC Alpha systems with OSF/1"
 | 
			
		||||
	@echo "  make osf1-sl              for DEC Alpha systems with OSF/1, make shared libs"
 | 
			
		||||
	@echo "  make pgi-cygnus           for Cygnus with Portland Group, Inc. compiler"
 | 
			
		||||
	@echo "  make pgi-mingw32          for mingW32 with Portland Group, Inc. compiler"
 | 
			
		||||
	@echo "  make qnx                  for QNX V4 systems with Watcom compiler"
 | 
			
		||||
	@echo "  make sco                  for SCO Unix systems with ODT"
 | 
			
		||||
	@echo "  make sco5                 for SCO 5.0.5 OpenServer Unix"
 | 
			
		||||
	@echo "  make solaris-x86          for PCs with Solaris"
 | 
			
		||||
	@echo "  make solaris-x86-gcc      for PCs with Solaris using GCC"
 | 
			
		||||
	@echo "  make sunos4               for Suns with SunOS 4.x"
 | 
			
		||||
	@echo "  make sunos4-sl            for Suns with SunOS 4.x, make shared libs"
 | 
			
		||||
	@echo "  make sunos4-gcc           for Suns with SunOS 4.x and GCC"
 | 
			
		||||
	@echo "  make sunos4-gcc-sl        for Suns with SunOS 4.x, GCC, make shared libs"
 | 
			
		||||
	@echo "  make sunos5               for Suns with SunOS 5.x"
 | 
			
		||||
	@echo "  make sunos5-sl            for Suns with SunOS 5.x, make shared libs"
 | 
			
		||||
	@echo "  make sunos5-ultra         for Sun UltraSPARCs with SunOS 5.x"
 | 
			
		||||
	@echo "  make sunos5-ultra-sl      for Sun UltraSPARCs with SunOS 5.x, make shared libs"
 | 
			
		||||
	@echo "  make sunos5-thread        for Suns with SunOS 5.x, using Solaris threads"
 | 
			
		||||
	@echo "  make sunos5-pthread       for Suns with SunOS 5.[56] using POSIX threads"
 | 
			
		||||
	@echo "  make sunos5-gcc-thread    for Suns with SunOS 5.x and GCC, using Solaris threads"
 | 
			
		||||
	@echo "  make sunos5-gcc-pthread   for Suns with SunOS 5.[56] and GCC, using POSIX threads"
 | 
			
		||||
	@echo "  make sunos5-gcc           for Suns with SunOS 5.x and GCC"
 | 
			
		||||
	@echo "  make sunos5-gcc-sl        for Suns with SunOS 5.x, GCC, make shared libs"
 | 
			
		||||
	@echo "  make sunos5-x11r6-gcc-sl  for Suns with X11R6, GCC, make shared libs"
 | 
			
		||||
	@echo "  make sunos5-gcc-thread    for Suns with SunOS 5.x and GCC, using Solaris threads"
 | 
			
		||||
	@echo "  make sunos5-gcc-pthread   for Suns with SunOS 5.[56] and GCC, using POSIX threads"
 | 
			
		||||
	@echo "  make sunSolaris-CC        for Solaris using C++ compiler"
 | 
			
		||||
	@echo "  make ultrix-gcc           for DEC systems with Ultrix and GCC"
 | 
			
		||||
	@echo "  make unicos               for Cray C90 (and other?) systems"
 | 
			
		||||
	@echo "  make unixware             for PCs running UnixWare"
 | 
			
		||||
	@echo "  make unixware-shared      for PCs running UnixWare, shared libs"
 | 
			
		||||
	@echo "  make uwin                 for Windows NT with AT&T/Wipro UWIN"
 | 
			
		||||
	@echo "  make vistra               for Stardent Vistra systems"
 | 
			
		||||
	@echo "  make clean                remove .o files"
 | 
			
		||||
	@echo "  make realclean            remove .o, library and executable files"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \
 | 
			
		||||
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
 | 
			
		||||
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
 | 
			
		||||
irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \
 | 
			
		||||
linux linux-debug linux-prof linux-elf linux-elf-debug linux-glide-debug \
 | 
			
		||||
linux-glide linux-386-glide linux-386-opt-glide \
 | 
			
		||||
linux-386-opt-V2-glide \
 | 
			
		||||
linux-386 linux-386-elf \
 | 
			
		||||
linux-3dnow linux-3dnow-glide \
 | 
			
		||||
linux-alpha linux-alpha-elf \
 | 
			
		||||
linux-ppc linux-ppc-so \
 | 
			
		||||
linux-386-pthread linux-386-pthread-shared linux-386-pthread-shared-glide \
 | 
			
		||||
linux-sparc \
 | 
			
		||||
linux-sparc5-elf \
 | 
			
		||||
linux-sparc-ultra \
 | 
			
		||||
lynxos machten-2.2 machten-4.0 \
 | 
			
		||||
mklinux netbsd osf1 osf1-sl openbsd qnx sco sco5 \
 | 
			
		||||
solaris-x86 solaris-x86-gcc sunSolaris-CC \
 | 
			
		||||
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
 | 
			
		||||
sunos5 sunos5-sl sunos5-ultra sunos5-ultra-sl sunos5-gcc sunos5-gcc-sl \
 | 
			
		||||
sunos5-thread sunos5-pthread sunos5-gcc-thread sunos5-gcc-pthread \
 | 
			
		||||
sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	if [ -d src-glut ] ; then touch src-glut/depend ; fi
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
 | 
			
		||||
	-mkdir lib32
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	if [ -d src-glut ] ; then touch src-glut/depend ; fi
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
irix6-64 irix6-64-dso:
 | 
			
		||||
	-mkdir lib64
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	if [ -d src-glut ] ; then touch src-glut/depend ; fi
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
amiwin:
 | 
			
		||||
	bin/mklib.amiwin
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
beos-r4:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	-rm src/depend
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	-rm src-glu/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.BeOS-R4 $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.BeOS-R4 $@
 | 
			
		||||
	if [ -d BeOS ]          ; then cd BeOS          ; $(MAKE) ; fi
 | 
			
		||||
	if [ -d src-glut.beos ] ; then cd src-glut.beos ; $(MAKE) ; fi
 | 
			
		||||
	if [ -d src-glut.beos ] ; then cp src-glut.beos/obj*/libglut.so lib  ; fi
 | 
			
		||||
	if [ -d demos ]   ; then cd demos   ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
 | 
			
		||||
	if [ -d samples ] ; then cd samples ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
 | 
			
		||||
	if [ -d book ]    ; then cd book    ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
 | 
			
		||||
 | 
			
		||||
pgi-cygnus pgi-mingw32 \
 | 
			
		||||
cygnus cygnus-linux:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d xdemos ]  ; then cd xdemos  ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
 | 
			
		||||
macintosh:
 | 
			
		||||
	@echo "See the README file for Macintosh intallation information"
 | 
			
		||||
 | 
			
		||||
next:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
 | 
			
		||||
 | 
			
		||||
openstep:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
 | 
			
		||||
 | 
			
		||||
os2-x11:
 | 
			
		||||
	if not EXIST .\lib md lib
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	if exist src-glut touch src-glut/depend
 | 
			
		||||
	cd src     & make -f Makefile.X11 $@
 | 
			
		||||
	cd src-glu & make -f Makefile.X11 $@
 | 
			
		||||
	if exist src-glut  cd src-glut & make -f Makefile.X11 $@
 | 
			
		||||
	if exist demos     cd demos    & make -f Makefile.X11 $@
 | 
			
		||||
	if exist xdemos    cd xdemos   & make -f Makefile.X11 $@
 | 
			
		||||
	if exist samples   cd samples  & make -f Makefile.X11 $@
 | 
			
		||||
	if exist book      cd book     & make -f Makefile.X11 $@
 | 
			
		||||
 | 
			
		||||
linux-ggi linux-386-ggi:
 | 
			
		||||
	-mkdir lib
 | 
			
		||||
	touch src/depend
 | 
			
		||||
	touch src-glu/depend
 | 
			
		||||
	if [ -d src-glut ] ; then touch src-glut/depend ; fi
 | 
			
		||||
	if [ -d ggi ] ; then touch ggi/depend ; fi
 | 
			
		||||
	cd src ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
	cd src/GGI/default ; $(MAKE)
 | 
			
		||||
	cd src/GGI/display ; $(MAKE)
 | 
			
		||||
	cd src-glu ; $(MAKE) -f Makefile.X11 $@
 | 
			
		||||
#	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d ggi ]      ; then cd ggi      ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d ggi ]      ; then cd ggi/demos; $(MAKE)    ; fi
 | 
			
		||||
	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
 | 
			
		||||
 | 
			
		||||
# if you change GGI_DEST please change it in ggimesa.conf, too.
 | 
			
		||||
DESTDIR=/usr/local
 | 
			
		||||
GGI_DEST=lib/ggi/mesa
 | 
			
		||||
 | 
			
		||||
linux-ggi-install linux-386-ggi-install:
 | 
			
		||||
	install -d $(DESTDIR)/$(GGI_DEST)/default $(DESTDIR)/$(GGI_DEST)/display $(DESTDIR)/etc/ggi
 | 
			
		||||
	install -m 0755 src/GGI/default/*.so $(DESTDIR)/$(GGI_DEST)/default
 | 
			
		||||
	install -m 0755 src/GGI/display/*.so $(DESTDIR)/$(GGI_DEST)/display
 | 
			
		||||
	install -m 0644 src/GGI/ggimesa.conf $(DESTDIR)/etc/ggi
 | 
			
		||||
#	if [ -z "`grep ggimesa $(DESTDIR)/etc/ggi/libggi.conf`" ]; then \
 | 
			
		||||
#	echo ".include $(DESTDIR)/etc/ggi/ggimesa.conf" >> $(DESTDIR)/etc/ggi/libggi.conf ; \
 | 
			
		||||
#	fi
 | 
			
		||||
 | 
			
		||||
# Remove .o files, emacs backup files, etc.
 | 
			
		||||
clean:
 | 
			
		||||
	-rm -f ggi/*~ *.o
 | 
			
		||||
	-rm -f src/GGI/default/*~ *.so
 | 
			
		||||
	-rm -f src/GGI/display/*~ *.so
 | 
			
		||||
	-rm -f include/*~
 | 
			
		||||
	-rm -f include/GL/*~
 | 
			
		||||
	-rm -f src/*.o src/*~ src/*.a src/*/*.o src/*/*~
 | 
			
		||||
	-rm -f src-glu/*.o src-glu/*~ src-glu/*.a
 | 
			
		||||
	-rm -f src-glut/*.o
 | 
			
		||||
	-rm -f demos/*.o
 | 
			
		||||
	-rm -f book/*.o book/*~
 | 
			
		||||
	-rm -f xdemos/*.o xdemos/*~
 | 
			
		||||
	-rm -f samples/*.o samples/*~
 | 
			
		||||
	-rm -f ggi/*.o ggi/demos/*.o ggi/*.a
 | 
			
		||||
 | 
			
		||||
# Remove everything that can be remade
 | 
			
		||||
realclean: clean
 | 
			
		||||
	-rm -f lib/*
 | 
			
		||||
	cd demos       && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
	cd xdemos      && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
	cd book        && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
	cd samples     && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
	cd ggi/demos   && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
	cd src/GGI/default && $(MAKE) -f Makefile.X11 realclean || true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DIRECTORY = Mesa-3.2
 | 
			
		||||
LIB_NAME = MesaLib-3.2
 | 
			
		||||
DEMO_NAME = MesaDemos-3.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LIB_FILES =	\
 | 
			
		||||
	$(DIRECTORY)/Makefile*					\
 | 
			
		||||
	$(DIRECTORY)/Make-config				\
 | 
			
		||||
	$(DIRECTORY)/acconfig.h					\
 | 
			
		||||
	$(DIRECTORY)/acinclude.m4				\
 | 
			
		||||
	$(DIRECTORY)/aclocal.m4					\
 | 
			
		||||
	$(DIRECTORY)/conf.h.in					\
 | 
			
		||||
	$(DIRECTORY)/config.guess				\
 | 
			
		||||
	$(DIRECTORY)/config.sub					\
 | 
			
		||||
	$(DIRECTORY)/configure					\
 | 
			
		||||
	$(DIRECTORY)/configure.in				\
 | 
			
		||||
	$(DIRECTORY)/install-sh					\
 | 
			
		||||
	$(DIRECTORY)/ltconfig					\
 | 
			
		||||
	$(DIRECTORY)/ltmain.sh					\
 | 
			
		||||
	$(DIRECTORY)/missing					\
 | 
			
		||||
	$(DIRECTORY)/mkinstalldirs				\
 | 
			
		||||
	$(DIRECTORY)/stamp-h.in					\
 | 
			
		||||
	$(DIRECTORY)/configure					\
 | 
			
		||||
	$(DIRECTORY)/docs/CONFIG				\
 | 
			
		||||
	$(DIRECTORY)/docs/CONFORM				\
 | 
			
		||||
	$(DIRECTORY)/docs/COPYING				\
 | 
			
		||||
	$(DIRECTORY)/docs/COPYRIGHT				\
 | 
			
		||||
	$(DIRECTORY)/docs/DEVINFO				\
 | 
			
		||||
	$(DIRECTORY)/docs/IAFA-PACKAGE				\
 | 
			
		||||
	$(DIRECTORY)/docs/INSTALL				\
 | 
			
		||||
	$(DIRECTORY)/docs/INSTALL.GNU				\
 | 
			
		||||
	$(DIRECTORY)/docs/README				\
 | 
			
		||||
	$(DIRECTORY)/docs/README.*				\
 | 
			
		||||
	$(DIRECTORY)/docs/RELNOTES				\
 | 
			
		||||
	$(DIRECTORY)/docs/VERSIONS				\
 | 
			
		||||
	$(DIRECTORY)/docs/*.spec				\
 | 
			
		||||
	$(DIRECTORY)/bin/README					\
 | 
			
		||||
	$(DIRECTORY)/bin/mklib*					\
 | 
			
		||||
	$(DIRECTORY)/*.BAT					\
 | 
			
		||||
	$(DIRECTORY)/*.bat					\
 | 
			
		||||
	$(DIRECTORY)/descrip.mms				\
 | 
			
		||||
	$(DIRECTORY)/mms-config					\
 | 
			
		||||
	$(DIRECTORY)/xlib.opt					\
 | 
			
		||||
	$(DIRECTORY)/STARTUP.MK					\
 | 
			
		||||
	$(DIRECTORY)/mesawin32.mak				\
 | 
			
		||||
	$(DIRECTORY)/Names.win					\
 | 
			
		||||
	$(DIRECTORY)/win32-openstep.sh				\
 | 
			
		||||
	$(DIRECTORY)/Makefile.dja				\
 | 
			
		||||
	$(DIRECTORY)/common.dja					\
 | 
			
		||||
	$(DIRECTORY)/include/GL/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/amesa.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/dosmesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/foomesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/fxmesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/ggimesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/gl.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/gl_mangle.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glu.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glu_mangle.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glx.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glx_mangle.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/mesa_wgl.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/mglmesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/osmesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/svgamesa.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/wmesa.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/xmesa.h				\
 | 
			
		||||
	$(DIRECTORY)/include/GL/xmesa_x.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GL/xmesa_xf86.h			\
 | 
			
		||||
	$(DIRECTORY)/include/GLView.h				\
 | 
			
		||||
	$(DIRECTORY)/include/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/include/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/Makefile*				\
 | 
			
		||||
	$(DIRECTORY)/src/descrip.mms				\
 | 
			
		||||
	$(DIRECTORY)/src/mms_depend				\
 | 
			
		||||
	$(DIRECTORY)/src/mesa.conf				\
 | 
			
		||||
	$(DIRECTORY)/src/*.def					\
 | 
			
		||||
	$(DIRECTORY)/src/depend					\
 | 
			
		||||
	$(DIRECTORY)/src/*.[chS]				\
 | 
			
		||||
	$(DIRECTORY)/src/Allegro/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/BeOS/*.cpp				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.cpp				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.CPP				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.h				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.H				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.c				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*.C				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/MAKEFILE				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*bat				\
 | 
			
		||||
	$(DIRECTORY)/src/D3D/*DEF				\
 | 
			
		||||
	$(DIRECTORY)/src/DOS/DEPEND.DOS				\
 | 
			
		||||
	$(DIRECTORY)/src/DOS/*.c				\
 | 
			
		||||
	$(DIRECTORY)/src/FX/Makefile.am				\
 | 
			
		||||
	$(DIRECTORY)/src/FX/Makefile.in				\
 | 
			
		||||
	$(DIRECTORY)/src/FX/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/FX/*.def				\
 | 
			
		||||
	$(DIRECTORY)/src/FX/X86/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/FX/X86/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/src/FX/X86/*.[Shc]				\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/ggimesa.conf.in			\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/default/*.c			\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/default/Makefile.am		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/default/Makefile.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/default/genkgi.conf.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/display/*.c			\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/display/Makefile.am		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/display/Makefile.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/display/fbdev.conf.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/Makefile.am		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/Makefile.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/ggi/Makefile.am		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/ggi/Makefile.in		\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.am	\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.in	\
 | 
			
		||||
	$(DIRECTORY)/src/GGI/include/ggi/mesa/*.h		\
 | 
			
		||||
	$(DIRECTORY)/src/KNOWN_BUGS				\
 | 
			
		||||
	$(DIRECTORY)/src/MGL/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/MGL/*.txt				\
 | 
			
		||||
	$(DIRECTORY)/src/OSmesa/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/OSmesa/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/src/OSmesa/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/S3/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/S3/*.def				\
 | 
			
		||||
	$(DIRECTORY)/src/S3/*.mak				\
 | 
			
		||||
	$(DIRECTORY)/src/S3/*.rc				\
 | 
			
		||||
	$(DIRECTORY)/src/SVGA/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/SVGA/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/src/SVGA/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/Windows/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/Windows/*.def				\
 | 
			
		||||
	$(DIRECTORY)/src/X/Makefile.am				\
 | 
			
		||||
	$(DIRECTORY)/src/X/Makefile.in				\
 | 
			
		||||
	$(DIRECTORY)/src/X/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/X86/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/src/X86/Makefile.am			\
 | 
			
		||||
	$(DIRECTORY)/src/X86/Makefile.in			\
 | 
			
		||||
	$(DIRECTORY)/src/X86/*.m4				\
 | 
			
		||||
	$(DIRECTORY)/src/X86/*.S				\
 | 
			
		||||
	$(DIRECTORY)/src/*.dja					\
 | 
			
		||||
	$(DIRECTORY)/src-glu/README[12]				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/Makefile*				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/descrip.mms			\
 | 
			
		||||
	$(DIRECTORY)/src-glu/mms_depend				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/*.def				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/*.dja				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/depend				\
 | 
			
		||||
	$(DIRECTORY)/src-glu/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/widgets-mesa				\
 | 
			
		||||
	$(DIRECTORY)/widgets-sgi				\
 | 
			
		||||
	$(DIRECTORY)/util/README				\
 | 
			
		||||
	$(DIRECTORY)/util/Makefile.am				\
 | 
			
		||||
	$(DIRECTORY)/util/Makefile.in				\
 | 
			
		||||
	$(DIRECTORY)/util/*.[ch]				\
 | 
			
		||||
	$(DIRECTORY)/util/sampleMakefile			\
 | 
			
		||||
	$(DIRECTORY)/BeOS/Makefile				\
 | 
			
		||||
	$(DIRECTORY)/BeOS/*.cpp					\
 | 
			
		||||
	$(DIRECTORY)/WIN32/NMAKE.MAK				\
 | 
			
		||||
	$(DIRECTORY)/WIN32/NMAKE.MIF				\
 | 
			
		||||
	$(DIRECTORY)/WIN32/RES/*rc				\
 | 
			
		||||
	$(DIRECTORY)/WIN32/RES/*def				\
 | 
			
		||||
	$(DIRECTORY)/WIN32/RULES/lib.*				\
 | 
			
		||||
	$(DIRECTORY)/WIN32/RULES/progs.*			\
 | 
			
		||||
	$(DIRECTORY)/macos/README				\
 | 
			
		||||
	$(DIRECTORY)/macos/gli_api/*.h				\
 | 
			
		||||
	$(DIRECTORY)/macos/include-mac/*.h			\
 | 
			
		||||
	$(DIRECTORY)/macos/libraries/*.stub			\
 | 
			
		||||
	$(DIRECTORY)/macos/libraries/*Stub			\
 | 
			
		||||
	$(DIRECTORY)/macos/projects/*.mcp			\
 | 
			
		||||
	$(DIRECTORY)/macos/projects/*.exp			\
 | 
			
		||||
	$(DIRECTORY)/macos/projects/*.h				\
 | 
			
		||||
	$(DIRECTORY)/macos/resources/*.c			\
 | 
			
		||||
	$(DIRECTORY)/macos/resources/*.r			\
 | 
			
		||||
	$(DIRECTORY)/macos/resources/*.rsrc			\
 | 
			
		||||
	$(DIRECTORY)/macos/src-agl/*.exp			\
 | 
			
		||||
	$(DIRECTORY)/macos/src-agl/*.[ch]			\
 | 
			
		||||
	$(DIRECTORY)/macos/src-gli/*.[ch]			\
 | 
			
		||||
	$(DIRECTORY)/OpenStep					\
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DEMO_FILES =	\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glut.h		\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glutf90.h	\
 | 
			
		||||
	$(DIRECTORY)/include/GL/glut_h.dja	\
 | 
			
		||||
	$(DIRECTORY)/src-glut/Makefile*		\
 | 
			
		||||
	$(DIRECTORY)/src-glut/depend		\
 | 
			
		||||
	$(DIRECTORY)/src-glut/*def		\
 | 
			
		||||
	$(DIRECTORY)/src-glut/descrip.mms	\
 | 
			
		||||
	$(DIRECTORY)/src-glut/mms_depend	\
 | 
			
		||||
	$(DIRECTORY)/src-glut/*.[ch]		\
 | 
			
		||||
	$(DIRECTORY)/src-glut.dja/*		\
 | 
			
		||||
	$(DIRECTORY)/src-glut.beos/Makefile	\
 | 
			
		||||
	$(DIRECTORY)/src-glut.beos/*.cpp	\
 | 
			
		||||
	$(DIRECTORY)/src-glut.beos/*.h		\
 | 
			
		||||
	$(DIRECTORY)/images/*			\
 | 
			
		||||
	$(DIRECTORY)/demos/Makefile*		\
 | 
			
		||||
	$(DIRECTORY)/demos/descrip.mms		\
 | 
			
		||||
	$(DIRECTORY)/demos/*.[ch]		\
 | 
			
		||||
	$(DIRECTORY)/demos/*.dat		\
 | 
			
		||||
	$(DIRECTORY)/xdemos/Makefile*		\
 | 
			
		||||
	$(DIRECTORY)/xdemos/descrip.mms		\
 | 
			
		||||
	$(DIRECTORY)/xdemos/*.[cf]		\
 | 
			
		||||
	$(DIRECTORY)/book/Makefile*		\
 | 
			
		||||
	$(DIRECTORY)/book/README		\
 | 
			
		||||
	$(DIRECTORY)/book/*.[ch]		\
 | 
			
		||||
	$(DIRECTORY)/samples/Makefile*		\
 | 
			
		||||
	$(DIRECTORY)/samples/README		\
 | 
			
		||||
	$(DIRECTORY)/samples/*.c		\
 | 
			
		||||
	$(DIRECTORY)/samples/*.dja		\
 | 
			
		||||
	$(DIRECTORY)/3Dfx			\
 | 
			
		||||
	$(DIRECTORY)/mtdemos			\
 | 
			
		||||
	$(DIRECTORY)/ggi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
lib_tar:
 | 
			
		||||
	cd .. ; \
 | 
			
		||||
	tar --exclude CVS -c -v -f $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
			
		||||
	gzip $(LIB_NAME).tar ; \
 | 
			
		||||
	mv $(LIB_NAME).tar.gz $(DIRECTORY)
 | 
			
		||||
 | 
			
		||||
demo_tar:
 | 
			
		||||
	cd .. ; \
 | 
			
		||||
	tar --exclude CVS -c -v -f $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
			
		||||
	gzip $(DEMO_NAME).tar ; \
 | 
			
		||||
	mv $(DEMO_NAME).tar.gz $(DIRECTORY)
 | 
			
		||||
 | 
			
		||||
lib_zip:
 | 
			
		||||
	-rm $(LIB_NAME).zip
 | 
			
		||||
	cd .. ; \
 | 
			
		||||
	zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
			
		||||
	mv $(LIB_NAME).zip $(DIRECTORY)
 | 
			
		||||
 | 
			
		||||
demo_zip:
 | 
			
		||||
	-rm $(DEMO_NAME).zip
 | 
			
		||||
	cd .. ; \
 | 
			
		||||
	zip -r $(DEMO_NAME).zip $(DEMO_FILES) ; \
 | 
			
		||||
	mv $(DEMO_NAME).zip $(DIRECTORY)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SRC_FILES =	\
 | 
			
		||||
	RELNOTES		\
 | 
			
		||||
	src/Makefile*		\
 | 
			
		||||
	src/depend		\
 | 
			
		||||
	src/*.[chS]		\
 | 
			
		||||
	src/*/*.[ch]		\
 | 
			
		||||
	include/GL/*.h
 | 
			
		||||
 | 
			
		||||
srctar:
 | 
			
		||||
	tar -cvf src.tar $(SRC_FILES) ; \
 | 
			
		||||
	gzip src.tar
 | 
			
		||||
 | 
			
		||||
srctar.zip:
 | 
			
		||||
	-rm src.zip
 | 
			
		||||
	zip -r src.zip $(SRC_FILES) ; \
 | 
			
		||||
							
								
								
									
										106
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								Makefile.am
									
									
									
									
									
								
							@@ -1,106 +0,0 @@
 | 
			
		||||
# Copyright © 2012 Intel Corporation
 | 
			
		||||
#
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
#
 | 
			
		||||
# The above copyright notice and this permission notice (including the next
 | 
			
		||||
# paragraph) shall be included in all copies or substantial portions of the
 | 
			
		||||
# Software.
 | 
			
		||||
#
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 | 
			
		||||
# IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
SUBDIRS = src
 | 
			
		||||
 | 
			
		||||
ACLOCAL_AMFLAGS = -I m4
 | 
			
		||||
 | 
			
		||||
doxygen:
 | 
			
		||||
	cd doxygen && $(MAKE)
 | 
			
		||||
 | 
			
		||||
.PHONY: doxygen
 | 
			
		||||
 | 
			
		||||
# Rules for making release tarballs
 | 
			
		||||
 | 
			
		||||
PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
 | 
			
		||||
PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
 | 
			
		||||
 | 
			
		||||
EXTRA_FILES = \
 | 
			
		||||
	aclocal.m4					\
 | 
			
		||||
	configure					\
 | 
			
		||||
	bin/ar-lib					\
 | 
			
		||||
	bin/compile					\
 | 
			
		||||
	bin/config.sub					\
 | 
			
		||||
	bin/config.guess				\
 | 
			
		||||
	bin/depcomp					\
 | 
			
		||||
	bin/install-sh					\
 | 
			
		||||
	bin/ltmain.sh					\
 | 
			
		||||
	bin/missing					\
 | 
			
		||||
	bin/ylwrap					\
 | 
			
		||||
        bin/test-driver					\
 | 
			
		||||
	src/glsl/glsl_parser.cpp			\
 | 
			
		||||
	src/glsl/glsl_parser.h				\
 | 
			
		||||
	src/glsl/glsl_lexer.cpp				\
 | 
			
		||||
	src/glsl/glcpp/glcpp-lex.c			\
 | 
			
		||||
	src/glsl/glcpp/glcpp-parse.c			\
 | 
			
		||||
	src/glsl/glcpp/glcpp-parse.h			\
 | 
			
		||||
	src/mesa/program/lex.yy.c			\
 | 
			
		||||
	src/mesa/program/program_parse.tab.c		\
 | 
			
		||||
	src/mesa/program/program_parse.tab.h		\
 | 
			
		||||
	`git ls-files | grep "Makefile.am" | sed -e "s/Makefile.am/Makefile.in/"`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
IGNORE_FILES = \
 | 
			
		||||
	-x autogen.sh
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
parsers: configure
 | 
			
		||||
	$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/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
 | 
			
		||||
							
								
								
									
										155
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										155
									
								
								SConstruct
									
									
									
									
									
								
							@@ -1,155 +0,0 @@
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Top-level SConstruct
 | 
			
		||||
#
 | 
			
		||||
# For example, invoke scons as 
 | 
			
		||||
#
 | 
			
		||||
#   scons build=debug llvm=yes machine=x86
 | 
			
		||||
#
 | 
			
		||||
# to set configuration variables. Or you can write those options to a file
 | 
			
		||||
# named config.py:
 | 
			
		||||
#
 | 
			
		||||
#   # config.py
 | 
			
		||||
#   build='debug'
 | 
			
		||||
#   llvm=True
 | 
			
		||||
#   machine='x86'
 | 
			
		||||
# 
 | 
			
		||||
# Invoke
 | 
			
		||||
#
 | 
			
		||||
#   scons -h
 | 
			
		||||
#
 | 
			
		||||
# to get the full list of options. See scons manpage for more info.
 | 
			
		||||
#  
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import os.path
 | 
			
		||||
import sys
 | 
			
		||||
import SCons.Util
 | 
			
		||||
 | 
			
		||||
import common
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Configuration options
 | 
			
		||||
 | 
			
		||||
opts = Variables('config.py')
 | 
			
		||||
common.AddOptions(opts)
 | 
			
		||||
 | 
			
		||||
env = Environment(
 | 
			
		||||
	options = opts,
 | 
			
		||||
	tools = ['gallium'],
 | 
			
		||||
	toolpath = ['#scons'],	
 | 
			
		||||
	ENV = os.environ,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# XXX: This creates a many problems as it saves...
 | 
			
		||||
#opts.Save('config.py', env)
 | 
			
		||||
 | 
			
		||||
# Backwards compatability with old target configuration variable
 | 
			
		||||
try:
 | 
			
		||||
    targets = ARGUMENTS['targets']
 | 
			
		||||
except KeyError:
 | 
			
		||||
    pass
 | 
			
		||||
else:
 | 
			
		||||
    targets = targets.split(',')
 | 
			
		||||
    print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
 | 
			
		||||
    print
 | 
			
		||||
    print '  scons %s' % ' '.join(targets)
 | 
			
		||||
    print 
 | 
			
		||||
    COMMAND_LINE_TARGETS.append(targets)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Help(opts.GenerateHelpText(env))
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Environment setup
 | 
			
		||||
 | 
			
		||||
with open("VERSION") as f:
 | 
			
		||||
  mesa_version = f.read().strip()
 | 
			
		||||
env.Append(CPPDEFINES = [
 | 
			
		||||
    ('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
 | 
			
		||||
    ('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# Includes
 | 
			
		||||
env.Prepend(CPPPATH = [
 | 
			
		||||
	'#/include',
 | 
			
		||||
])
 | 
			
		||||
env.Append(CPPPATH = [
 | 
			
		||||
	'#/src/gallium/include',
 | 
			
		||||
	'#/src/gallium/auxiliary',
 | 
			
		||||
	'#/src/gallium/drivers',
 | 
			
		||||
	'#/src/gallium/winsys',
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# for debugging
 | 
			
		||||
#print env.Dump()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Invoke host SConscripts 
 | 
			
		||||
# 
 | 
			
		||||
# For things that are meant to be run on the native host build machine, instead
 | 
			
		||||
# of the target machine.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Create host environent
 | 
			
		||||
if env['crosscompile'] and not env['embedded']:
 | 
			
		||||
    host_env = Environment(
 | 
			
		||||
        options = opts,
 | 
			
		||||
        # no tool used
 | 
			
		||||
        tools = [],
 | 
			
		||||
        toolpath = ['#scons'],
 | 
			
		||||
        ENV = os.environ,
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # Override options
 | 
			
		||||
    host_env['platform'] = common.host_platform
 | 
			
		||||
    host_env['machine'] = common.host_machine
 | 
			
		||||
    host_env['toolchain'] = 'default'
 | 
			
		||||
    host_env['llvm'] = False
 | 
			
		||||
 | 
			
		||||
    host_env.Tool('gallium')
 | 
			
		||||
 | 
			
		||||
    host_env['hostonly'] = True
 | 
			
		||||
    assert host_env['crosscompile'] == False
 | 
			
		||||
 | 
			
		||||
    target_env = env
 | 
			
		||||
    env = host_env
 | 
			
		||||
    Export('env')
 | 
			
		||||
 | 
			
		||||
    SConscript(
 | 
			
		||||
        'src/SConscript',
 | 
			
		||||
        variant_dir = host_env['build_dir'],
 | 
			
		||||
        duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    env = target_env
 | 
			
		||||
 | 
			
		||||
Export('env')
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Invoke SConscripts
 | 
			
		||||
 | 
			
		||||
# TODO: Build several variants at the same time?
 | 
			
		||||
# http://www.scons.org/wiki/SimultaneousVariantBuilds
 | 
			
		||||
 | 
			
		||||
SConscript(
 | 
			
		||||
	'src/SConscript',
 | 
			
		||||
	variant_dir = env['build_dir'],
 | 
			
		||||
	duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
########################################################################
 | 
			
		||||
# List all aliases
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    from SCons.Node.Alias import default_ans
 | 
			
		||||
except ImportError:
 | 
			
		||||
    pass
 | 
			
		||||
else:
 | 
			
		||||
    aliases = default_ans.keys()
 | 
			
		||||
    aliases.sort()
 | 
			
		||||
    env.Help('\n')
 | 
			
		||||
    env.Help('Recognized targets:\n')
 | 
			
		||||
    for alias in aliases:
 | 
			
		||||
        env.Help('    %s\n' % alias)
 | 
			
		||||
							
								
								
									
										14
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -1,14 +0,0 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
 | 
			
		||||
srcdir=`dirname "$0"`
 | 
			
		||||
test -z "$srcdir" && srcdir=.
 | 
			
		||||
 | 
			
		||||
ORIGDIR=`pwd`
 | 
			
		||||
cd "$srcdir"
 | 
			
		||||
 | 
			
		||||
autoreconf -v --install || exit 1
 | 
			
		||||
cd $ORIGDIR || exit $?
 | 
			
		||||
 | 
			
		||||
if test -z "$NOCONFIGURE"; then
 | 
			
		||||
    "$srcdir"/configure "$@"
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										9
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
			
		||||
config.guess
 | 
			
		||||
config.sub
 | 
			
		||||
install-sh
 | 
			
		||||
/depcomp
 | 
			
		||||
/missing
 | 
			
		||||
ylwrap
 | 
			
		||||
compile
 | 
			
		||||
ar-lib
 | 
			
		||||
/test-driver
 | 
			
		||||
@@ -1,52 +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 url
 | 
			
		||||
trim_before='s/.*\(http\)/\1/'
 | 
			
		||||
 | 
			
		||||
# regex pattern: trim after url
 | 
			
		||||
trim_after='s/\(show_bug.cgi?id=[0-9]*\).*/\1/'
 | 
			
		||||
 | 
			
		||||
# regex pattern: always use https
 | 
			
		||||
use_https='s/http:/https:/'
 | 
			
		||||
 | 
			
		||||
# extract fdo urls from commit log
 | 
			
		||||
urls=$(git log $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before -e $trim_after -e $use_https | sort | uniq)
 | 
			
		||||
 | 
			
		||||
# 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>Bug [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 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
 | 
			
		||||
							
								
								
									
										153
									
								
								bin/mklib.aix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										153
									
								
								bin/mklib.aix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,153 @@
 | 
			
		||||
#!/bin/ksh
 | 
			
		||||
 | 
			
		||||
# Make an AIX shared library (tricky!!!)
 | 
			
		||||
# Based on a script from Athanasios G. Gaitatzes (gaitat@vnet.ibm.com)
 | 
			
		||||
# Improved by Greg Thompson <gregt@visix.com> -gt
 | 
			
		||||
 | 
			
		||||
#--identification------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# $Id: mklib.aix,v 1.2 1999/09/15 15:10:20 brianp Exp $
 | 
			
		||||
 | 
			
		||||
# $Log: mklib.aix,v $
 | 
			
		||||
# Revision 1.2  1999/09/15 15:10:20  brianp
 | 
			
		||||
# added third, tiny version number to arguments
 | 
			
		||||
#
 | 
			
		||||
# Revision 1.1  1999/08/19 13:52:56  brianp
 | 
			
		||||
# initial check-in (post-crash)
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#--common--------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
LIBRARY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MAJOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MINOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
TINY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
OBJECTS=$*
 | 
			
		||||
 | 
			
		||||
#--platform------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# BASENAME = LIBRARY without .a suffix
 | 
			
		||||
BASENAME=`echo ${LIBRARY} | sed "s/\.a//g"`
 | 
			
		||||
 | 
			
		||||
# Name of exports file
 | 
			
		||||
EXPFILE=${BASENAME}.exp
 | 
			
		||||
 | 
			
		||||
# Name of temporary shared lib file
 | 
			
		||||
OFILE=shr.o
 | 
			
		||||
####OFILE=${BASENAME}.o
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Remove any old files from previous make
 | 
			
		||||
rm -f ${LIBRARY} ${EXPFILE} ${OFILE}
 | 
			
		||||
 | 
			
		||||
# Pick a way to use nm -gt
 | 
			
		||||
NM=${NM-/bin/nm -eC}
 | 
			
		||||
 | 
			
		||||
# Determine which version of AIX this is
 | 
			
		||||
AIXVERSION=`uname -v`
 | 
			
		||||
 | 
			
		||||
# Pick a way to tell the linker there's no entrypoint -gt
 | 
			
		||||
case ${AIXVERSION}
 | 
			
		||||
{
 | 
			
		||||
	3*)
 | 
			
		||||
		ENTRY='-e _nostart'
 | 
			
		||||
		;;
 | 
			
		||||
	4*)
 | 
			
		||||
		ENTRY=-bnoentry
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		echo "Error in mklib.aix!"
 | 
			
		||||
		exit 1
 | 
			
		||||
		;;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Other libraries which we may be dependent on.  Since we make the libraries
 | 
			
		||||
# in the order libGL.a, libaGLU.a, libglut.a just depends on its predecessor.
 | 
			
		||||
# modified to make otherlibs in the form of -lfoo -gt
 | 
			
		||||
OTHERLIBS=`ls ../lib/*.a | sed "s/..\/lib\/lib/-l/g" | sed "s/\.a//g"`
 | 
			
		||||
 | 
			
		||||
##echo OTHERLIBS are ${OTHERLIBS}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Make exports (.exp) file header
 | 
			
		||||
echo "#! ${LIBRARY}" > ${EXPFILE}
 | 
			
		||||
 | 
			
		||||
# Append list of exported symbols to exports file -gt
 | 
			
		||||
case ${AIXVERSION}
 | 
			
		||||
{
 | 
			
		||||
    3*)
 | 
			
		||||
	${NM} ${OBJECTS} | awk -F'|' '{
 | 
			
		||||
	    if ($3 != "extern" || substr($7,1,1) == " ") continue
 | 
			
		||||
	    sub ("  *", "", $1); sub ("  *", "", $7)
 | 
			
		||||
	    if ( (($7 == ".text") || ($7 == ".data") || ($7 == ".bss"))  \
 | 
			
		||||
		    && ( substr($1,1,1) != ".")) {
 | 
			
		||||
		if (substr ($1, 1, 7) != "__sinit" &&
 | 
			
		||||
			substr ($1, 1, 7) != "__sterm") {
 | 
			
		||||
		    if (substr ($1, 1, 5) == "__tf1")
 | 
			
		||||
			print (substr ($1, 7))
 | 
			
		||||
		    else if (substr ($1, 1, 5) == "__tf9")
 | 
			
		||||
			print (substr ($1, 15))
 | 
			
		||||
		    else
 | 
			
		||||
			print $1
 | 
			
		||||
		}
 | 
			
		||||
	    }
 | 
			
		||||
	}' | sort -u >> ${EXPFILE}
 | 
			
		||||
	;;
 | 
			
		||||
 | 
			
		||||
    4*)
 | 
			
		||||
	${NM} ${OBJECTS} | awk '{
 | 
			
		||||
	    if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
 | 
			
		||||
		    && ( substr($1,1,1) != ".")) {
 | 
			
		||||
		if (substr ($1, 1, 7) != "__sinit" &&
 | 
			
		||||
			substr ($1, 1, 7) != "__sterm") {
 | 
			
		||||
		    if (substr ($1, 1, 5) == "__tf1")
 | 
			
		||||
			print (substr ($1, 7))
 | 
			
		||||
		    else if (substr ($1, 1, 5) == "__tf9")
 | 
			
		||||
			print (substr ($1, 15))
 | 
			
		||||
		    else
 | 
			
		||||
			print $1
 | 
			
		||||
		}
 | 
			
		||||
	    }
 | 
			
		||||
	}' | sort -u >> ${EXPFILE}
 | 
			
		||||
	;;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# This next line is a hack to allow full compatibility with IBM's OpenGL
 | 
			
		||||
# libraries.  IBM mistakenly exports glLoadIdentity from the libGLU.a
 | 
			
		||||
# library.  We have to do the same thing.  Problem reported by Yemi Adesanya
 | 
			
		||||
# (adesanya@afsmail.cern.ch) and Patrick Brown (pbrown@austin.ibm.com)
 | 
			
		||||
if [ "${BASENAME}" = libGLU ] ; then
 | 
			
		||||
    echo "glLoadIdentity" >> ${EXPFILE}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Make the shared lib file
 | 
			
		||||
cc -o ${OFILE} ${OBJECTS} -L../lib ${OTHERLIBS} -lX11 -lXext -lXmu -lXi -lm -lc -bE:${EXPFILE} -bM:SRE ${ENTRY}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Make the .a file
 | 
			
		||||
ar ruv ${LIBRARY} ${OFILE}
 | 
			
		||||
 | 
			
		||||
# Put exports file in Mesa lib directory
 | 
			
		||||
mv ${EXPFILE} ../lib
 | 
			
		||||
 | 
			
		||||
# Remove OFILE
 | 
			
		||||
rm -f ${OFILE}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#NOTES
 | 
			
		||||
# AIX 4.x /usr/bin/nm -B patch from ssclift@mach.me.queensu.ca (Simon Clift)
 | 
			
		||||
# Robustified symbol extraction for AIX 3 and 4
 | 
			
		||||
#   Greg Thompson <gregt@visix.com>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										38
									
								
								bin/mklib.ar-ruv
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								bin/mklib.ar-ruv
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
# Make a standard Unix .a library file with 'ar ruv'
 | 
			
		||||
 | 
			
		||||
#--identification------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# $Id: mklib.ar-ruv,v 1.2 1999/09/15 15:10:20 brianp Exp $
 | 
			
		||||
 | 
			
		||||
# $Log: mklib.ar-ruv,v $
 | 
			
		||||
# Revision 1.2  1999/09/15 15:10:20  brianp
 | 
			
		||||
# added third, tiny version number to arguments
 | 
			
		||||
#
 | 
			
		||||
# Revision 1.1  1999/08/19 13:52:57  brianp
 | 
			
		||||
# initial check-in (post-crash)
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#--common--------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
LIBRARY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MAJOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MINOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
TINY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
OBJECTS=$*
 | 
			
		||||
 | 
			
		||||
#--platform-------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#ar ruv $LIBRARY $OBJECTS
 | 
			
		||||
ar ru $LIBRARY $OBJECTS
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								bin/mklib.solaris
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								bin/mklib.solaris
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
# Make a Solaris shared library
 | 
			
		||||
# contributed by Arno Hahma (arno@nitro.pp.utu.fi)
 | 
			
		||||
 | 
			
		||||
#--identification------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# $Id: mklib.solaris,v 1.2 1999/09/15 15:10:20 brianp Exp $
 | 
			
		||||
 | 
			
		||||
# $Log: mklib.solaris,v $
 | 
			
		||||
# Revision 1.2  1999/09/15 15:10:20  brianp
 | 
			
		||||
# added third, tiny version number to arguments
 | 
			
		||||
#
 | 
			
		||||
# Revision 1.1  1999/08/19 13:53:06  brianp
 | 
			
		||||
# initial check-in (post-crash)
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#--common--------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
LIBRARY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MAJOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
MINOR=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
TINY=$1
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
OBJECTS=$*
 | 
			
		||||
 | 
			
		||||
#--platform-------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
LIBRARY=`basename $LIBRARY .a`
 | 
			
		||||
 | 
			
		||||
VERSION=$MAJOR.$MINOR
 | 
			
		||||
 | 
			
		||||
echo "Building shared object $LIBRARY.so.$VERSION and the archive library $LIBRARY.a"
 | 
			
		||||
rm -f ${LIBRARY}.a ${LIBRARY}.so.${VERSION}
 | 
			
		||||
ar ruv ${LIBRARY}.a ${OBJECTS}
 | 
			
		||||
 | 
			
		||||
ld -G -o ${LIBRARY}.so.${VERSION} ${OBJECTS}
 | 
			
		||||
 | 
			
		||||
cp ${LIBRARY}.a ${LIBRARY}.so.${VERSION} ../lib
 | 
			
		||||
cd ../lib
 | 
			
		||||
ln -s ${LIBRARY}.so.${VERSION} ${LIBRARY}.so
 | 
			
		||||
 | 
			
		||||
@@ -1,251 +0,0 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
#
 | 
			
		||||
# Copyright 2012 VMware Inc
 | 
			
		||||
# Copyright 2008-2009 Jose Fonseca
 | 
			
		||||
#
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
# of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
# in the Software without restriction, including without limitation the rights
 | 
			
		||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
# copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
# furnished to do so, subject to the following conditions:
 | 
			
		||||
#
 | 
			
		||||
# The above copyright notice and this permission notice shall be included in
 | 
			
		||||
# all copies or substantial portions of the Software.
 | 
			
		||||
#
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
			
		||||
# THE SOFTWARE.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
"""Perf annotate for JIT code.
 | 
			
		||||
 | 
			
		||||
Linux `perf annotate` does not work with JIT code.  This script takes the data
 | 
			
		||||
produced by `perf script` command, plus the diassemblies outputed by gallivm
 | 
			
		||||
into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`.
 | 
			
		||||
 | 
			
		||||
See docs/llvmpipe.html for usage instructions.
 | 
			
		||||
 | 
			
		||||
The `perf script` output parser was derived from the gprof2dot.py script.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import os.path
 | 
			
		||||
import re
 | 
			
		||||
import optparse
 | 
			
		||||
import subprocess
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Parser:
 | 
			
		||||
    """Parser interface."""
 | 
			
		||||
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def parse(self):
 | 
			
		||||
        raise NotImplementedError
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class LineParser(Parser):
 | 
			
		||||
    """Base class for parsers that read line-based formats."""
 | 
			
		||||
 | 
			
		||||
    def __init__(self, file):
 | 
			
		||||
        Parser.__init__(self)
 | 
			
		||||
        self._file = file
 | 
			
		||||
        self.__line = None
 | 
			
		||||
        self.__eof = False
 | 
			
		||||
        self.line_no = 0
 | 
			
		||||
 | 
			
		||||
    def readline(self):
 | 
			
		||||
        line = self._file.readline()
 | 
			
		||||
        if not line:
 | 
			
		||||
            self.__line = ''
 | 
			
		||||
            self.__eof = True
 | 
			
		||||
        else:
 | 
			
		||||
            self.line_no += 1
 | 
			
		||||
        self.__line = line.rstrip('\r\n')
 | 
			
		||||
 | 
			
		||||
    def lookahead(self):
 | 
			
		||||
        assert self.__line is not None
 | 
			
		||||
        return self.__line
 | 
			
		||||
 | 
			
		||||
    def consume(self):
 | 
			
		||||
        assert self.__line is not None
 | 
			
		||||
        line = self.__line
 | 
			
		||||
        self.readline()
 | 
			
		||||
        return line
 | 
			
		||||
 | 
			
		||||
    def eof(self):
 | 
			
		||||
        assert self.__line is not None
 | 
			
		||||
        return self.__eof
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mapFile = None
 | 
			
		||||
 | 
			
		||||
def lookupMap(filename, matchSymbol):
 | 
			
		||||
    global mapFile
 | 
			
		||||
    mapFile = filename
 | 
			
		||||
    stream = open(filename, 'rt')
 | 
			
		||||
    for line in stream:
 | 
			
		||||
        start, length, symbol = line.split()
 | 
			
		||||
 | 
			
		||||
        start = int(start, 16)
 | 
			
		||||
        length = int(length,16)
 | 
			
		||||
 | 
			
		||||
        if symbol == matchSymbol:
 | 
			
		||||
            return start
 | 
			
		||||
 | 
			
		||||
    return None
 | 
			
		||||
 | 
			
		||||
def lookupAsm(filename, desiredFunction):
 | 
			
		||||
    stream = open(filename + '.asm', 'rt')
 | 
			
		||||
    while stream.readline() != desiredFunction + ':\n':
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    asm = []
 | 
			
		||||
    line = stream.readline().strip()
 | 
			
		||||
    while line:
 | 
			
		||||
        addr, instr = line.split(':', 1)
 | 
			
		||||
        addr = int(addr)
 | 
			
		||||
        asm.append((addr, instr))
 | 
			
		||||
        line = stream.readline().strip()
 | 
			
		||||
 | 
			
		||||
    return asm
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
samples = {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PerfParser(LineParser):
 | 
			
		||||
    """Parser for linux perf callgraph output.
 | 
			
		||||
 | 
			
		||||
    It expects output generated with
 | 
			
		||||
 | 
			
		||||
        perf record -g
 | 
			
		||||
        perf script
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    def __init__(self, infile, symbol):
 | 
			
		||||
        LineParser.__init__(self, infile)
 | 
			
		||||
	self.symbol = symbol
 | 
			
		||||
 | 
			
		||||
    def readline(self):
 | 
			
		||||
        # Override LineParser.readline to ignore comment lines
 | 
			
		||||
        while True:
 | 
			
		||||
            LineParser.readline(self)
 | 
			
		||||
            if self.eof() or not self.lookahead().startswith('#'):
 | 
			
		||||
                break
 | 
			
		||||
 | 
			
		||||
    def parse(self):
 | 
			
		||||
        # read lookahead
 | 
			
		||||
        self.readline()
 | 
			
		||||
 | 
			
		||||
        while not self.eof():
 | 
			
		||||
            self.parse_event()
 | 
			
		||||
 | 
			
		||||
        asm = lookupAsm(mapFile, self.symbol)
 | 
			
		||||
 | 
			
		||||
        addresses = samples.keys()
 | 
			
		||||
        addresses.sort()
 | 
			
		||||
        total_samples = 0
 | 
			
		||||
 | 
			
		||||
	sys.stdout.write('%s:\n' % self.symbol)
 | 
			
		||||
        for address, instr in asm:
 | 
			
		||||
            try:
 | 
			
		||||
                sample = samples.pop(address)
 | 
			
		||||
            except KeyError:
 | 
			
		||||
                sys.stdout.write(6*' ')
 | 
			
		||||
            else:
 | 
			
		||||
                sys.stdout.write('%6u' % (sample))
 | 
			
		||||
                total_samples += sample
 | 
			
		||||
            sys.stdout.write('%6u: %s\n' % (address, instr))
 | 
			
		||||
        print 'total:', total_samples
 | 
			
		||||
        assert len(samples) == 0
 | 
			
		||||
 | 
			
		||||
        sys.exit(0)
 | 
			
		||||
 | 
			
		||||
    def parse_event(self):
 | 
			
		||||
        if self.eof():
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        line = self.consume()
 | 
			
		||||
        assert line
 | 
			
		||||
 | 
			
		||||
        callchain = self.parse_callchain()
 | 
			
		||||
        if not callchain:
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
    def parse_callchain(self):
 | 
			
		||||
        callchain = []
 | 
			
		||||
        while self.lookahead():
 | 
			
		||||
            function = self.parse_call(len(callchain) == 0)
 | 
			
		||||
            if function is None:
 | 
			
		||||
                break
 | 
			
		||||
            callchain.append(function)
 | 
			
		||||
        if self.lookahead() == '':
 | 
			
		||||
            self.consume()
 | 
			
		||||
        return callchain
 | 
			
		||||
 | 
			
		||||
    call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$')
 | 
			
		||||
 | 
			
		||||
    def parse_call(self, first):
 | 
			
		||||
        line = self.consume()
 | 
			
		||||
        mo = self.call_re.match(line)
 | 
			
		||||
        assert mo
 | 
			
		||||
        if not mo:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
        if not first:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
        function_name = mo.group('symbol')
 | 
			
		||||
        if not function_name:
 | 
			
		||||
            function_name = mo.group('address')
 | 
			
		||||
 | 
			
		||||
        module = mo.group('module')
 | 
			
		||||
 | 
			
		||||
        function_id = function_name + ':' + module
 | 
			
		||||
 | 
			
		||||
        address = mo.group('address')
 | 
			
		||||
        address = int(address, 16)
 | 
			
		||||
 | 
			
		||||
        if function_name != self.symbol:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
        start_address = lookupMap(module, function_name)
 | 
			
		||||
        address -= start_address
 | 
			
		||||
 | 
			
		||||
        #print function_name, module, address
 | 
			
		||||
 | 
			
		||||
        samples[address] = samples.get(address, 0) + 1
 | 
			
		||||
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    """Main program."""
 | 
			
		||||
 | 
			
		||||
    optparser = optparse.OptionParser(
 | 
			
		||||
        usage="\n\t%prog [options] symbol_name")
 | 
			
		||||
    (options, args) = optparser.parse_args(sys.argv[1:])
 | 
			
		||||
    if len(args) != 1:
 | 
			
		||||
        optparser.error('wrong number of arguments')
 | 
			
		||||
 | 
			
		||||
    symbol = args[0]
 | 
			
		||||
 | 
			
		||||
    p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 | 
			
		||||
    parser = PerfParser(p.stdout, symbol)
 | 
			
		||||
    parser.parse()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    main()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# vim: set sw=4 et:
 | 
			
		||||
@@ -1,29 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# This script is used to generate the list of changes that
 | 
			
		||||
# appears in the release notes files, with HTML formatting.
 | 
			
		||||
#
 | 
			
		||||
# Usage examples:
 | 
			
		||||
#
 | 
			
		||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
 | 
			
		||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 > changes
 | 
			
		||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
typeset -i in_log=0
 | 
			
		||||
 | 
			
		||||
git shortlog $* | while read l
 | 
			
		||||
do
 | 
			
		||||
    if [ $in_log -eq 0 ]; then
 | 
			
		||||
	echo '<p>'$l'</p>'
 | 
			
		||||
	echo '<ul>'
 | 
			
		||||
	in_log=1
 | 
			
		||||
    elif echo "$l" | egrep -q '^$' ; then
 | 
			
		||||
	echo '</ul>'
 | 
			
		||||
	echo
 | 
			
		||||
	in_log=0
 | 
			
		||||
    else
 | 
			
		||||
        mesg=$(echo $l | sed 's/ (cherry picked from commit [0-9a-f]\+)//;s/\&/&/g;s/</\</g;s/>/\>/g')
 | 
			
		||||
	echo '  <li>'${mesg}'</li>'
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										104
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								common.py
									
									
									
									
									
								
							@@ -1,104 +0,0 @@
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Common SCons code
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import os.path
 | 
			
		||||
import re
 | 
			
		||||
import subprocess
 | 
			
		||||
import sys
 | 
			
		||||
import platform as _platform
 | 
			
		||||
 | 
			
		||||
import SCons.Script.SConscript
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Defaults
 | 
			
		||||
 | 
			
		||||
host_platform = _platform.system().lower()
 | 
			
		||||
if host_platform.startswith('cygwin'):
 | 
			
		||||
    host_platform = 'cygwin'
 | 
			
		||||
 | 
			
		||||
# Search sys.argv[] for a "platform=foo" argument since we don't have
 | 
			
		||||
# an 'env' variable at this point.
 | 
			
		||||
if 'platform' in SCons.Script.ARGUMENTS:
 | 
			
		||||
    target_platform = SCons.Script.ARGUMENTS['platform']
 | 
			
		||||
else:
 | 
			
		||||
    target_platform = host_platform
 | 
			
		||||
 | 
			
		||||
_machine_map = {
 | 
			
		||||
	'x86': 'x86',
 | 
			
		||||
	'i386': 'x86',
 | 
			
		||||
	'i486': 'x86',
 | 
			
		||||
	'i586': 'x86',
 | 
			
		||||
	'i686': 'x86',
 | 
			
		||||
	'BePC': 'x86',
 | 
			
		||||
	'Intel': 'x86',
 | 
			
		||||
	'ppc' : 'ppc',
 | 
			
		||||
	'BeBox': 'ppc',
 | 
			
		||||
	'BeMac': 'ppc',
 | 
			
		||||
	'AMD64': 'x86_64',
 | 
			
		||||
	'x86_64': 'x86_64',
 | 
			
		||||
	'sparc': 'sparc',
 | 
			
		||||
	'sun4u': 'sparc',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# find host_machine value
 | 
			
		||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
			
		||||
	host_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
			
		||||
else:
 | 
			
		||||
	host_machine = _platform.machine()
 | 
			
		||||
host_machine = _machine_map.get(host_machine, 'generic')
 | 
			
		||||
 | 
			
		||||
default_machine = host_machine
 | 
			
		||||
default_toolchain = 'default'
 | 
			
		||||
 | 
			
		||||
if target_platform == 'windows' and host_platform != 'windows':
 | 
			
		||||
    default_machine = 'x86'
 | 
			
		||||
    default_toolchain = 'crossmingw'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# find default_llvm value
 | 
			
		||||
if 'LLVM' in os.environ:
 | 
			
		||||
    default_llvm = 'yes'
 | 
			
		||||
else:
 | 
			
		||||
    default_llvm = 'no'
 | 
			
		||||
    try:
 | 
			
		||||
        if target_platform != 'windows' and \
 | 
			
		||||
           subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0:
 | 
			
		||||
            default_llvm = 'yes'
 | 
			
		||||
    except:
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#######################################################################
 | 
			
		||||
# Common options
 | 
			
		||||
 | 
			
		||||
def AddOptions(opts):
 | 
			
		||||
	try:
 | 
			
		||||
		from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
			
		||||
	except ImportError:
 | 
			
		||||
		from SCons.Options.BoolOption import BoolOption
 | 
			
		||||
	try:
 | 
			
		||||
		from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
			
		||||
	except ImportError:
 | 
			
		||||
		from SCons.Options.EnumOption import EnumOption
 | 
			
		||||
	opts.Add(EnumOption('build', 'build type', 'debug',
 | 
			
		||||
	                  allowed_values=('debug', 'checked', 'profile', 'release')))
 | 
			
		||||
	opts.Add(BoolOption('verbose', 'verbose output', 'no'))
 | 
			
		||||
	opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
 | 
			
		||||
											 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
			
		||||
	opts.Add(EnumOption('platform', 'target platform', host_platform,
 | 
			
		||||
											 allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', 'linux', 'sunos', 'windows')))
 | 
			
		||||
	opts.Add(BoolOption('embedded', 'embedded build', 'no'))
 | 
			
		||||
	opts.Add(BoolOption('analyze', 'enable static code analysis where available', 'no'))
 | 
			
		||||
	opts.Add('toolchain', 'compiler toolchain', default_toolchain)
 | 
			
		||||
	opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
 | 
			
		||||
	opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
 | 
			
		||||
	opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', 'no'))
 | 
			
		||||
	opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
 | 
			
		||||
	opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
 | 
			
		||||
	opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
 | 
			
		||||
	opts.Add(BoolOption('texture_float', 'enable floating-point textures and renderbuffers', 'no'))
 | 
			
		||||
	if host_platform == 'windows':
 | 
			
		||||
		opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
 | 
			
		||||
							
								
								
									
										2390
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										2390
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,4 +0,0 @@
 | 
			
		||||
Known issues in the ARB_color_buffer_float implementation:
 | 
			
		||||
- Rendering to multiple render targets, some fixed-point, some floating-point, with FIXED_ONLY fragment clamping and polygon smooth enabled may write incorrect values to the fixed point buffers (depends on spec interpretation)
 | 
			
		||||
- For fragment programs with ARB_fog_* options, colors are clamped before fog application regardless of the fragment clamping setting (this depends on spec interpretation)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										219
									
								
								docs/GL3.txt
									
									
									
									
									
								
							
							
						
						
									
										219
									
								
								docs/GL3.txt
									
									
									
									
									
								
							@@ -1,219 +0,0 @@
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OpenGL Core and Compatibility context support
 | 
			
		||||
 | 
			
		||||
OpenGL 3.1 and later versions are only supported with the Core profile.
 | 
			
		||||
There are no plans to support GL_ARB_compatibility. The last supported OpenGL
 | 
			
		||||
version with all deprecated features is 3.0. Some of the later GL features
 | 
			
		||||
are exposed in the 3.0 context as extensions.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Feature                                               Status
 | 
			
		||||
----------------------------------------------------- ------------------------
 | 
			
		||||
 | 
			
		||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
 | 
			
		||||
 | 
			
		||||
  glBindFragDataLocation, glGetFragDataLocation         DONE
 | 
			
		||||
  Conditional rendering (GL_NV_conditional_render)      DONE (r300, swrast)
 | 
			
		||||
  Map buffer subranges (GL_ARB_map_buffer_range)        DONE (r300, swrast)
 | 
			
		||||
  Clamping controls (GL_ARB_color_buffer_float)         DONE (r300)
 | 
			
		||||
  Float textures, renderbuffers (GL_ARB_texture_float)  DONE (r300)
 | 
			
		||||
  GL_EXT_packed_float                                   DONE ()
 | 
			
		||||
  GL_EXT_texture_shared_exponent                        DONE (swrast)
 | 
			
		||||
  Float depth buffers (GL_ARB_depth_buffer_float)       DONE ()
 | 
			
		||||
  Framebuffer objects (GL_ARB_framebuffer_object)       DONE (r300, swrast)
 | 
			
		||||
  GL_ARB_half_float_pixel                               DONE (all drivers)
 | 
			
		||||
  GL_ARB_half_float_vertex                              DONE (r300, swrast)
 | 
			
		||||
  GL_EXT_texture_integer                                DONE ()
 | 
			
		||||
  GL_EXT_texture_array                                  DONE ()
 | 
			
		||||
  Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (swrast)
 | 
			
		||||
  GL_EXT_texture_compression_rgtc                       DONE (r300, swrast)
 | 
			
		||||
  GL_ARB_texture_rg                                     DONE (r300, swrast)
 | 
			
		||||
  Transform feedback (GL_EXT_transform_feedback)        DONE ()
 | 
			
		||||
  Vertex array objects (GL_ARB_vertex_array_object)     DONE (all drivers)
 | 
			
		||||
  sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE ()
 | 
			
		||||
  glClearBuffer commands                                DONE
 | 
			
		||||
  glGetStringi command                                  DONE
 | 
			
		||||
  glTexParameterI, glGetTexParameterI commands          DONE
 | 
			
		||||
  glVertexAttribI commands                              DONE
 | 
			
		||||
  Depth format cube textures                            DONE ()
 | 
			
		||||
  GLX_ARB_create_context (GLX 1.4 is required)          DONE
 | 
			
		||||
  Multisample anti-aliasing                             DONE (r300)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
 | 
			
		||||
 | 
			
		||||
  Forward compatible context support/deprecations       DONE ()
 | 
			
		||||
  Instanced drawing (GL_ARB_draw_instanced)             DONE (swrast)
 | 
			
		||||
  Buffer copying (GL_ARB_copy_buffer)                   DONE (r300, swrast)
 | 
			
		||||
  Primitive restart (GL_NV_primitive_restart)           DONE (r300)
 | 
			
		||||
  16 vertex texture image units                         DONE ()
 | 
			
		||||
  Texture buffer objs (GL_ARB_texture_buffer_object)    DONE for OpenGL 3.1 contexts ()
 | 
			
		||||
  Rectangular textures (GL_ARB_texture_rectangle)       DONE (r300, swrast)
 | 
			
		||||
  Uniform buffer objs (GL_ARB_uniform_buffer_object)    DONE (swrast)
 | 
			
		||||
  Signed normalized textures (GL_EXT_texture_snorm)     DONE (r300)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi
 | 
			
		||||
 | 
			
		||||
  Core/compatibility profiles                           DONE
 | 
			
		||||
  Geometry shaders                                      DONE ()
 | 
			
		||||
  BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (r300, swrast)
 | 
			
		||||
  Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (r300, swrast)
 | 
			
		||||
  Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, swrast)
 | 
			
		||||
  Provoking vertex (GL_ARB_provoking_vertex)            DONE (r300, swrast)
 | 
			
		||||
  Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE ()
 | 
			
		||||
  Multisample textures (GL_ARB_texture_multisample)     DONE ()
 | 
			
		||||
  Frag depth clamp (GL_ARB_depth_clamp)                 DONE (swrast)
 | 
			
		||||
  Fence objects (GL_ARB_sync)                           DONE (r300, swrast)
 | 
			
		||||
  GLX_ARB_create_context_profile                        DONE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
 | 
			
		||||
 | 
			
		||||
  GL_ARB_blend_func_extended                            DONE (softpipe)
 | 
			
		||||
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
 | 
			
		||||
  GL_ARB_occlusion_query2                               DONE (r300, swrast)
 | 
			
		||||
  GL_ARB_sampler_objects                                DONE (all drivers)
 | 
			
		||||
  GL_ARB_shader_bit_encoding                            DONE ()
 | 
			
		||||
  GL_ARB_texture_rgb10_a2ui                             DONE ()
 | 
			
		||||
  GL_ARB_texture_swizzle                                DONE (r300, swrast)
 | 
			
		||||
  GL_ARB_timer_query                                    DONE ()
 | 
			
		||||
  GL_ARB_instanced_arrays                               DONE (r300)
 | 
			
		||||
  GL_ARB_vertex_type_2_10_10_10_rev                     DONE ()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 4.0, GLSL 4.00:
 | 
			
		||||
 | 
			
		||||
  GL_ARB_draw_buffers_blend                            DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
 | 
			
		||||
  GL_ARB_draw_indirect                                 DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
 | 
			
		||||
  GL_ARB_gpu_shader5                                   DONE (i965, nvc0)
 | 
			
		||||
  - 'precise' qualifier                                DONE
 | 
			
		||||
  - Dynamically uniform sampler array indices          DONE ()
 | 
			
		||||
  - Dynamically uniform UBO array indices              DONE ()
 | 
			
		||||
  - Implicit signed -> unsigned conversions            DONE
 | 
			
		||||
  - Fused multiply-add                                 DONE ()
 | 
			
		||||
  - Packing/bitfield/conversion functions              DONE (r600)
 | 
			
		||||
  - Enhanced textureGather                             DONE (r600, radeonsi)
 | 
			
		||||
  - Geometry shader instancing                         DONE ()
 | 
			
		||||
  - Geometry shader multiple streams                   DONE ()
 | 
			
		||||
  - Enhanced per-sample shading                        DONE (r600)
 | 
			
		||||
  - Interpolation functions                            DONE ()
 | 
			
		||||
  - New overload resolution rules                      DONE
 | 
			
		||||
  GL_ARB_gpu_shader_fp64                               started (Dave)
 | 
			
		||||
  GL_ARB_sample_shading                                DONE (i965, nv50, nvc0, radeonsi)
 | 
			
		||||
  GL_ARB_shader_subroutine                             not started
 | 
			
		||||
  GL_ARB_tessellation_shader                           started (Fabian)
 | 
			
		||||
  GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, softpipe)
 | 
			
		||||
  GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
 | 
			
		||||
  GL_ARB_texture_gather                                DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_texture_query_lod                             DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_transform_feedback2                           DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_transform_feedback3                           DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 4.1, GLSL 4.10:
 | 
			
		||||
 | 
			
		||||
  GL_ARB_ES2_compatibility                             DONE (i965, nv50, nvc0, r300, r600, radeonsi)
 | 
			
		||||
  GL_ARB_get_program_binary                            DONE (0 binary formats)
 | 
			
		||||
  GL_ARB_separate_shader_objects                       DONE (all drivers)
 | 
			
		||||
  GL_ARB_shader_precision                              started (Micah)
 | 
			
		||||
  GL_ARB_vertex_attrib_64bit                           started (Dave)
 | 
			
		||||
  GL_ARB_viewport_array                                DONE (i965, nv50, nvc0, r600)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 4.2, GLSL 4.20:
 | 
			
		||||
 | 
			
		||||
  GL_ARB_texture_compression_bptc                      DONE (i965, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_compressed_texture_pixel_storage              DONE (all drivers)
 | 
			
		||||
  GL_ARB_shader_atomic_counters                        DONE (i965)
 | 
			
		||||
  GL_ARB_texture_storage                               DONE (all drivers)
 | 
			
		||||
  GL_ARB_transform_feedback_instanced                  DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_base_instance                                 DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_shader_image_load_store                       in progress (curro)
 | 
			
		||||
  GL_ARB_conservative_depth                            DONE (all drivers that support GLSL 1.30)
 | 
			
		||||
  GL_ARB_shading_language_420pack                      DONE (all drivers that support GLSL 1.30)
 | 
			
		||||
  GL_ARB_internalformat_query                          DONE (i965, nv50, nvc0, r300, r600, radeonsi)
 | 
			
		||||
  GL_ARB_map_buffer_alignment                          DONE (all drivers)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 4.3, GLSL 4.30:
 | 
			
		||||
 | 
			
		||||
  GL_ARB_arrays_of_arrays                              started (Timothy)
 | 
			
		||||
  GL_ARB_ES3_compatibility                             DONE (all drivers that support GLSL 3.30)
 | 
			
		||||
  GL_ARB_clear_buffer_object                           DONE (all drivers)
 | 
			
		||||
  GL_ARB_compute_shader                                started (currently stalled)
 | 
			
		||||
  GL_ARB_copy_image                                    DONE (i965)
 | 
			
		||||
  GL_KHR_debug                                         DONE (all drivers)
 | 
			
		||||
  GL_ARB_explicit_uniform_location                     DONE (all drivers that support GLSL)
 | 
			
		||||
  GL_ARB_fragment_layer_viewport                       DONE (nv50, nvc0, r600)
 | 
			
		||||
  GL_ARB_framebuffer_no_attachments                    not started
 | 
			
		||||
  GL_ARB_internalformat_query2                         not started
 | 
			
		||||
  GL_ARB_invalidate_subdata                            DONE (all drivers)
 | 
			
		||||
  GL_ARB_multi_draw_indirect                           DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
 | 
			
		||||
  GL_ARB_program_interface_query                       not started
 | 
			
		||||
  GL_ARB_robust_buffer_access_behavior                 not started
 | 
			
		||||
  GL_ARB_shader_image_size                             not started
 | 
			
		||||
  GL_ARB_shader_storage_buffer_object                  not started
 | 
			
		||||
  GL_ARB_stencil_texturing                             DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_texture_buffer_range                          DONE (nv50, nvc0, i965, r600, radeonsi)
 | 
			
		||||
  GL_ARB_texture_query_levels                          DONE (all drivers that support GLSL 1.30)
 | 
			
		||||
  GL_ARB_texture_storage_multisample                   DONE (all drivers that support GL_ARB_texture_multisample)
 | 
			
		||||
  GL_ARB_texture_view                                  DONE (i965)
 | 
			
		||||
  GL_ARB_vertex_attrib_binding                         DONE (all drivers)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL 4.4, GLSL 4.40:
 | 
			
		||||
 | 
			
		||||
  GL_MAX_VERTEX_ATTRIB_STRIDE                          not started
 | 
			
		||||
  GL_ARB_buffer_storage                                DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi)
 | 
			
		||||
  GL_ARB_clear_texture                                 DONE (i965)
 | 
			
		||||
  GL_ARB_enhanced_layouts                              not started
 | 
			
		||||
  GL_ARB_multi_bind                                    DONE (all drivers)
 | 
			
		||||
  GL_ARB_query_buffer_object                           not started
 | 
			
		||||
  GL_ARB_texture_mirror_clamp_to_edge                  DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
 | 
			
		||||
  GL_ARB_texture_stencil8                              not started
 | 
			
		||||
  GL_ARB_vertex_type_10f_11f_11f_rev                   DONE (i965, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
 | 
			
		||||
GL 4.5, GLSL 4.50:
 | 
			
		||||
 | 
			
		||||
  GL_ARB_ES3_1_compatibility                           not started
 | 
			
		||||
  GL_ARB_clip_control                                  not started
 | 
			
		||||
  GL_ARB_conditional_render_inverted                   DONE (i965, nvc0, softpipe, llvmpipe)
 | 
			
		||||
  GL_ARB_cull_distance                                 not started
 | 
			
		||||
  GL_ARB_derivative_control                            DONE (i965, nv50, nvc0, r600)
 | 
			
		||||
  GL_ARB_direct_state_access                           not started
 | 
			
		||||
  GL_ARB_get_texture_sub_image                         started (Brian Paul)
 | 
			
		||||
  GL_ARB_shader_texture_image_samples                  not started
 | 
			
		||||
  GL_ARB_texture_barrier                               DONE (nv50, nvc0, r300, r600, radeonsi)
 | 
			
		||||
  GL_KHR_context_flush_control                         not started
 | 
			
		||||
  GL_KHR_robust_buffer_access_behavior                 not started
 | 
			
		||||
  GL_KHR_robustness                                    90% done (the ARB variant)
 | 
			
		||||
 | 
			
		||||
These are the extensions cherry-picked to make GLES 3.1
 | 
			
		||||
GLES3.1, GLSL ES 3.1
 | 
			
		||||
  GL_ARB_arrays_of_arrays                              started (Timothy)
 | 
			
		||||
  GL_ARB_compute_shader                                started (currently stalled)
 | 
			
		||||
  GL_ARB_explicit_uniform_location                     DONE (all drivers that support GLSL)
 | 
			
		||||
  GL_ARB_framebuffer_no_attachments                    not started
 | 
			
		||||
  GL_ARB_program_interface_query                       not started
 | 
			
		||||
  GL_ARB_shader_atomic_counters                        DONE (i965)
 | 
			
		||||
  GL_ARB_shader_image_load_store                       in progress (curro)
 | 
			
		||||
  GL_ARB_shader_storage_buffer_object                  not started
 | 
			
		||||
  GL_ARB_separate_shader_objects                       DONE (all drivers)
 | 
			
		||||
  GL_ARB_stencil_texturing                             DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
 | 
			
		||||
  GL_ARB_vertex_attrib_binding                         DONE (all drivers)
 | 
			
		||||
  GS5 Enhanced textureGather                           DONE (i965, nvc0, r600, radeonsi)
 | 
			
		||||
  GS5 Packing/bitfield/conversion functions            DONE (i965, nvc0, r600)
 | 
			
		||||
  GL_EXT_shader_integer_mix                            DONE (all drivers that support GLSL)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
More info about these features and the work involved can be found at
 | 
			
		||||
http://dri.freedesktop.org/wiki/MissingFunctionality
 | 
			
		||||
							
								
								
									
										182
									
								
								docs/INSTALL.GNU
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								docs/INSTALL.GNU
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
			
		||||
Basic Installation
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   These are generic installation instructions.
 | 
			
		||||
 | 
			
		||||
   The `configure' shell script attempts to guess correct values for
 | 
			
		||||
various system-dependent variables used during compilation.  It uses
 | 
			
		||||
those values to create a `Makefile' in each directory of the package.
 | 
			
		||||
It may also create one or more `.h' files containing system-dependent
 | 
			
		||||
definitions.  Finally, it creates a shell script `config.status' that
 | 
			
		||||
you can run in the future to recreate the current configuration, a file
 | 
			
		||||
`config.cache' that saves the results of its tests to speed up
 | 
			
		||||
reconfiguring, and a file `config.log' containing compiler output
 | 
			
		||||
(useful mainly for debugging `configure').
 | 
			
		||||
 | 
			
		||||
   If you need to do unusual things to compile the package, please try
 | 
			
		||||
to figure out how `configure' could check whether to do them, and mail
 | 
			
		||||
diffs or instructions to the address given in the `README' so they can
 | 
			
		||||
be considered for the next release.  If at some point `config.cache'
 | 
			
		||||
contains results you don't want to keep, you may remove or edit it.
 | 
			
		||||
 | 
			
		||||
   The file `configure.in' is used to create `configure' by a program
 | 
			
		||||
called `autoconf'.  You only need `configure.in' if you want to change
 | 
			
		||||
it or regenerate `configure' using a newer version of `autoconf'.
 | 
			
		||||
 | 
			
		||||
The simplest way to compile this package is:
 | 
			
		||||
 | 
			
		||||
  1. `cd' to the directory containing the package's source code and type
 | 
			
		||||
     `./configure' to configure the package for your system.  If you're
 | 
			
		||||
     using `csh' on an old version of System V, you might need to type
 | 
			
		||||
     `sh ./configure' instead to prevent `csh' from trying to execute
 | 
			
		||||
     `configure' itself.
 | 
			
		||||
 | 
			
		||||
     Running `configure' takes awhile.  While running, it prints some
 | 
			
		||||
     messages telling which features it is checking for.
 | 
			
		||||
 | 
			
		||||
  2. Type `make' to compile the package.
 | 
			
		||||
 | 
			
		||||
  3. Optionally, type `make check' to run any self-tests that come with
 | 
			
		||||
     the package.
 | 
			
		||||
 | 
			
		||||
  4. Type `make install' to install the programs and any data files and
 | 
			
		||||
     documentation.
 | 
			
		||||
 | 
			
		||||
  5. You can remove the program binaries and object files from the
 | 
			
		||||
     source code directory by typing `make clean'.  To also remove the
 | 
			
		||||
     files that `configure' created (so you can compile the package for
 | 
			
		||||
     a different kind of computer), type `make distclean'.  There is
 | 
			
		||||
     also a `make maintainer-clean' target, but that is intended mainly
 | 
			
		||||
     for the package's developers.  If you use it, you may have to get
 | 
			
		||||
     all sorts of other programs in order to regenerate files that came
 | 
			
		||||
     with the distribution.
 | 
			
		||||
 | 
			
		||||
Compilers and Options
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
   Some systems require unusual options for compilation or linking that
 | 
			
		||||
the `configure' script does not know about.  You can give `configure'
 | 
			
		||||
initial values for variables by setting them in the environment.  Using
 | 
			
		||||
a Bourne-compatible shell, you can do that on the command line like
 | 
			
		||||
this:
 | 
			
		||||
     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
 | 
			
		||||
 | 
			
		||||
Or on systems that have the `env' program, you can do it like this:
 | 
			
		||||
     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
 | 
			
		||||
 | 
			
		||||
Compiling For Multiple Architectures
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
   You can compile the package for more than one kind of computer at the
 | 
			
		||||
same time, by placing the object files for each architecture in their
 | 
			
		||||
own directory.  To do this, you must use a version of `make' that
 | 
			
		||||
supports the `VPATH' variable, such as GNU `make'.  `cd' to the
 | 
			
		||||
directory where you want the object files and executables to go and run
 | 
			
		||||
the `configure' script.  `configure' automatically checks for the
 | 
			
		||||
source code in the directory that `configure' is in and in `..'.
 | 
			
		||||
 | 
			
		||||
   If you have to use a `make' that does not supports the `VPATH'
 | 
			
		||||
variable, you have to compile the package for one architecture at a time
 | 
			
		||||
in the source code directory.  After you have installed the package for
 | 
			
		||||
one architecture, use `make distclean' before reconfiguring for another
 | 
			
		||||
architecture.
 | 
			
		||||
 | 
			
		||||
Installation Names
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   By default, `make install' will install the package's files in
 | 
			
		||||
`/usr/local/bin', `/usr/local/man', etc.  You can specify an
 | 
			
		||||
installation prefix other than `/usr/local' by giving `configure' the
 | 
			
		||||
option `--prefix=PATH'.
 | 
			
		||||
 | 
			
		||||
   You can specify separate installation prefixes for
 | 
			
		||||
architecture-specific files and architecture-independent files.  If you
 | 
			
		||||
give `configure' the option `--exec-prefix=PATH', the package will use
 | 
			
		||||
PATH as the prefix for installing programs and libraries.
 | 
			
		||||
Documentation and other data files will still use the regular prefix.
 | 
			
		||||
 | 
			
		||||
   In addition, if you use an unusual directory layout you can give
 | 
			
		||||
options like `--bindir=PATH' to specify different values for particular
 | 
			
		||||
kinds of files.  Run `configure --help' for a list of the directories
 | 
			
		||||
you can set and what kinds of files go in them.
 | 
			
		||||
 | 
			
		||||
   If the package supports it, you can cause programs to be installed
 | 
			
		||||
with an extra prefix or suffix on their names by giving `configure' the
 | 
			
		||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 | 
			
		||||
 | 
			
		||||
Optional Features
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
   Some packages pay attention to `--enable-FEATURE' options to
 | 
			
		||||
`configure', where FEATURE indicates an optional part of the package.
 | 
			
		||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
 | 
			
		||||
is something like `gnu-as' or `x' (for the X Window System).  The
 | 
			
		||||
`README' should mention any `--enable-' and `--with-' options that the
 | 
			
		||||
package recognizes.
 | 
			
		||||
 | 
			
		||||
   For packages that use the X Window System, `configure' can usually
 | 
			
		||||
find the X include and library files automatically, but if it doesn't,
 | 
			
		||||
you can use the `configure' options `--x-includes=DIR' and
 | 
			
		||||
`--x-libraries=DIR' to specify their locations.
 | 
			
		||||
 | 
			
		||||
Specifying the System Type
 | 
			
		||||
==========================
 | 
			
		||||
 | 
			
		||||
   There may be some features `configure' can not figure out
 | 
			
		||||
automatically, but needs to determine by the type of host the package
 | 
			
		||||
will run on.  Usually `configure' can figure that out, but if it prints
 | 
			
		||||
a message saying it can not guess the host type, give it the
 | 
			
		||||
`--host=TYPE' option.  TYPE can either be a short name for the system
 | 
			
		||||
type, such as `sun4', or a canonical name with three fields:
 | 
			
		||||
     CPU-COMPANY-SYSTEM
 | 
			
		||||
 | 
			
		||||
See the file `config.sub' for the possible values of each field.  If
 | 
			
		||||
`config.sub' isn't included in this package, then this package doesn't
 | 
			
		||||
need to know the host type.
 | 
			
		||||
 | 
			
		||||
   If you are building compiler tools for cross-compiling, you can also
 | 
			
		||||
use the `--target=TYPE' option to select the type of system they will
 | 
			
		||||
produce code for and the `--build=TYPE' option to select the type of
 | 
			
		||||
system on which you are compiling the package.
 | 
			
		||||
 | 
			
		||||
Sharing Defaults
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
   If you want to set default values for `configure' scripts to share,
 | 
			
		||||
you can create a site shell script called `config.site' that gives
 | 
			
		||||
default values for variables like `CC', `cache_file', and `prefix'.
 | 
			
		||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
 | 
			
		||||
`PREFIX/etc/config.site' if it exists.  Or, you can set the
 | 
			
		||||
`CONFIG_SITE' environment variable to the location of the site script.
 | 
			
		||||
A warning: not all `configure' scripts look for a site script.
 | 
			
		||||
 | 
			
		||||
Operation Controls
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   `configure' recognizes the following options to control how it
 | 
			
		||||
operates.
 | 
			
		||||
 | 
			
		||||
`--cache-file=FILE'
 | 
			
		||||
     Use and save the results of the tests in FILE instead of
 | 
			
		||||
     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
 | 
			
		||||
     debugging `configure'.
 | 
			
		||||
 | 
			
		||||
`--help'
 | 
			
		||||
     Print a summary of the options to `configure', and exit.
 | 
			
		||||
 | 
			
		||||
`--quiet'
 | 
			
		||||
`--silent'
 | 
			
		||||
`-q'
 | 
			
		||||
     Do not print messages saying which checks are being made.  To
 | 
			
		||||
     suppress all normal output, redirect it to `/dev/null' (any error
 | 
			
		||||
     messages will still be shown).
 | 
			
		||||
 | 
			
		||||
`--srcdir=DIR'
 | 
			
		||||
     Look for the package's source code in directory DIR.  Usually
 | 
			
		||||
     `configure' can determine that directory automatically.
 | 
			
		||||
 | 
			
		||||
`--version'
 | 
			
		||||
     Print the version of Autoconf used to generate the `configure'
 | 
			
		||||
     script, and exit.
 | 
			
		||||
 | 
			
		||||
`configure' also accepts some other, not widely useful, options.
 | 
			
		||||
@@ -8,18 +8,19 @@ Name Strings
 | 
			
		||||
 | 
			
		||||
Contact
 | 
			
		||||
 | 
			
		||||
    Brian Paul (brian.paul 'at' tungstengraphics.com)
 | 
			
		||||
    Brian Paul, brianp 'at' mesa3d.org
 | 
			
		||||
 | 
			
		||||
Status
 | 
			
		||||
 | 
			
		||||
    Obsolete.
 | 
			
		||||
    Shipping (since Mesa version 2.2)
 | 
			
		||||
 | 
			
		||||
Version
 | 
			
		||||
 | 
			
		||||
    $Id: MESA_resize_buffers.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $
 | 
			
		||||
 | 
			
		||||
Number
 | 
			
		||||
 | 
			
		||||
    196
 | 
			
		||||
    XXX none assigned
 | 
			
		||||
 | 
			
		||||
Dependencies
 | 
			
		||||
 | 
			
		||||
@@ -35,7 +36,7 @@ Overview
 | 
			
		||||
 | 
			
		||||
    Mesa's glViewport command queries the current window size and updates
 | 
			
		||||
    its internal data structors accordingly.  This normally works fine
 | 
			
		||||
    since most applications call glViewport in response to window size
 | 
			
		||||
    since most applications call glViewport in responce to window size
 | 
			
		||||
    changes.
 | 
			
		||||
 | 
			
		||||
    In some situations, however, the application may not call glViewport
 | 
			
		||||
@@ -65,7 +66,7 @@ Additions to the AGL/GLX/WGL Specifications
 | 
			
		||||
 | 
			
		||||
Errors
 | 
			
		||||
 | 
			
		||||
    INVALID_OPERATION is generated if glResizeBuffersMESA is called between
 | 
			
		||||
    INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
 | 
			
		||||
    Begin and End.
 | 
			
		||||
 | 
			
		||||
New State
 | 
			
		||||
							
								
								
									
										114
									
								
								docs/MESA_window_pos.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								docs/MESA_window_pos.spec
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
Name
 | 
			
		||||
 | 
			
		||||
    MESA_window_pos
 | 
			
		||||
 | 
			
		||||
Name Strings
 | 
			
		||||
 | 
			
		||||
    GL_MESA_window_pos
 | 
			
		||||
 | 
			
		||||
Contact
 | 
			
		||||
 | 
			
		||||
    Brian Paul, brianp 'at' mesa3d.org
 | 
			
		||||
 | 
			
		||||
Status
 | 
			
		||||
 | 
			
		||||
    Shipping (since Mesa version 1.2.8)
 | 
			
		||||
 | 
			
		||||
Version
 | 
			
		||||
 | 
			
		||||
    $Id: MESA_window_pos.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $
 | 
			
		||||
 | 
			
		||||
Number
 | 
			
		||||
 | 
			
		||||
    XXX non assigned
 | 
			
		||||
 | 
			
		||||
Dependencies
 | 
			
		||||
 | 
			
		||||
    OpenGL 1.0 is required.
 | 
			
		||||
    The extension is written against the OpenGL 1.2 Specification
 | 
			
		||||
 | 
			
		||||
Overview
 | 
			
		||||
 | 
			
		||||
    In order to set the current raster position to a specific window
 | 
			
		||||
    coordinate with the RasterPos command, the modelview matrix, projection
 | 
			
		||||
    matrix and viewport must be set very carefully.  Furthermore, if the
 | 
			
		||||
    desired window coordinate is outside of the window's bounds one must
 | 
			
		||||
    rely a subtle side-effect of the Bitmap command in order to circumvent
 | 
			
		||||
    frustum clipping.
 | 
			
		||||
 | 
			
		||||
    This extension provides a set of functions to directly set the
 | 
			
		||||
    current raster position, bypassing the modelview matrix, the
 | 
			
		||||
    projection matrix and the viewport to window mapping.  Furthermore,
 | 
			
		||||
    clip testing is not performed.
 | 
			
		||||
 | 
			
		||||
    This greatly simplifies the process of setting the current raster
 | 
			
		||||
    position to a specific window coordinate prior to calling DrawPixels,
 | 
			
		||||
    CopyPixels or Bitmap.
 | 
			
		||||
 | 
			
		||||
New Procedures and Functions
 | 
			
		||||
 | 
			
		||||
    void WindowPos2dMESA(double x, double y)
 | 
			
		||||
    void WindowPos2fMESA(float x, float y)
 | 
			
		||||
    void WindowPos2iMESA(int x, int y)
 | 
			
		||||
    void WindowPos2sMESA(short x, short y)
 | 
			
		||||
 | 
			
		||||
New Tokens
 | 
			
		||||
 | 
			
		||||
    none
 | 
			
		||||
 | 
			
		||||
Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
 | 
			
		||||
 | 
			
		||||
  - (2.12, p. 41) Insert after third paragraph:
 | 
			
		||||
 | 
			
		||||
      Alternately, the current raster position may be set by one of the
 | 
			
		||||
      WindowPosMESA commands:
 | 
			
		||||
 | 
			
		||||
         void WindowPos{234}{sidf}MESA( T coords );
 | 
			
		||||
         void Window Pos{234}{sidf}vMESA( T coords );
 | 
			
		||||
 | 
			
		||||
      WindosPos4MESA takes four values indicating x, y, z, and w.
 | 
			
		||||
      WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
 | 
			
		||||
      x, y, and z with w implicitly set to 1 (or only x and y with z
 | 
			
		||||
      implicititly set to 0 and w implicitly set to 1).
 | 
			
		||||
 | 
			
		||||
      WindowPosMESA operates like RasterPos except that the current modelview
 | 
			
		||||
      matrix, projection matrix and viewport parameters are ignored and the
 | 
			
		||||
      clip test operation always passes.  The current raster position values
 | 
			
		||||
      are directly set to the parameters passed to WindowPosMESA.  The current
 | 
			
		||||
      color, color index and texture coordinate update the current raster
 | 
			
		||||
      position's associated data.
 | 
			
		||||
 | 
			
		||||
      The current raster distance ??? XXX ???
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Additions to the AGL/GLX/WGL Specifications
 | 
			
		||||
 | 
			
		||||
    None
 | 
			
		||||
 | 
			
		||||
GLX Protocol
 | 
			
		||||
 | 
			
		||||
    Not specified at this time.  However, a protocol message very similar
 | 
			
		||||
    to that of RasterPos is expected.
 | 
			
		||||
 | 
			
		||||
Errors
 | 
			
		||||
 | 
			
		||||
    INVALID_OPERATION is generated if WindowPosMESA is called betweeen
 | 
			
		||||
    Begin and End.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New State
 | 
			
		||||
 | 
			
		||||
    None.
 | 
			
		||||
 | 
			
		||||
New Implementation Dependent State
 | 
			
		||||
 | 
			
		||||
    None.
 | 
			
		||||
 | 
			
		||||
Revision History
 | 
			
		||||
 | 
			
		||||
  * Revision 1.0 - Initial specification
 | 
			
		||||
							
								
								
									
										594
									
								
								docs/README.3DFX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										594
									
								
								docs/README.3DFX
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,594 @@
 | 
			
		||||
 | 
			
		||||
                     3Dfx Glide device driver for Mesa 3.2
 | 
			
		||||
				(see below for FAQ)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
What do you need ?
 | 
			
		||||
------------------
 | 
			
		||||
 | 
			
		||||
	- A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board
 | 
			
		||||
	  (Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.).
 | 
			
		||||
	  The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
 | 
			
		||||
	  under Linux (more information in the "Useful Glide Environment
 | 
			
		||||
	  Variables");
 | 
			
		||||
 | 
			
		||||
	- Mesa 3.1;
 | 
			
		||||
 | 
			
		||||
	- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
 | 
			
		||||
	  The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
 | 
			
		||||
	  compatible with the Glide 2.x so it doesn't work with the current
 | 
			
		||||
	  version of the driver;
 | 
			
		||||
 | 
			
		||||
	- A compiler supported by the Glide library (Micro$oft VC++ (tested),
 | 
			
		||||
	  Watcom (tested), GCC for Linux (tested), etc.);
 | 
			
		||||
 | 
			
		||||
	- A lot of patience, this is an alpha release.
 | 
			
		||||
 | 
			
		||||
	- It's nice to have two monitors - one for your normal graphics
 | 
			
		||||
	  card and one for your 3Dfx card. If something goes wrong with
 | 
			
		||||
	  an application using the 3Dfx hardware you can still see your
 | 
			
		||||
	  normal screen in order to recover.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Tested on:
 | 
			
		||||
----------
 | 
			
		||||
	Windows 95 - David Bucciarelli
 | 
			
		||||
	Windows NT - Henri Fousse
 | 
			
		||||
	MS-DOS
 | 
			
		||||
	Linux - Daryll Strauss, Brian Paul, David Bucciarelli
 | 
			
		||||
	FreeBSD
 | 
			
		||||
	BeOS - Duncan Wilcox
 | 
			
		||||
	MacOS - Fazekas Miklos
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
What is able to do ?
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
	- It is able accelerate points, lines and polygon with flat
 | 
			
		||||
	  shading, gouraud shading, Z-buffer, texture mapping, blending, fog and
 | 
			
		||||
	  antialiasing (when possible). There is also the support for rendering
 | 
			
		||||
	  in a window with a slow trick for the Voodoo Graphics (available only
 | 
			
		||||
	  for Linux) and at full speed with the Voodoo Rush chipset.
 | 
			
		||||
	  Under Linux is also possible to switch on-the-fly between the fullscreen
 | 
			
		||||
	  and in-window rendering hack.
 | 
			
		||||
	  There is also the support for using more than one Voodoo Graphics in the
 | 
			
		||||
	  some application/PC (you can create one context for each board and use
 | 
			
		||||
	  multiple video outputs for driving monitors, videoprojectors or HMDs).
 | 
			
		||||
	  The driver is able to fallback to pure software rendering when afeature
 | 
			
		||||
	  isn't supported by the Voodoo hardware (however software rendering is
 | 
			
		||||
	  very slow compared to hardware supported rendering)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
How to compile:
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
Linux:
 | 
			
		||||
------
 | 
			
		||||
	Here are the basic steps for using the 3Dfx hardware with Mesa
 | 
			
		||||
	on Linux:
 | 
			
		||||
 | 
			
		||||
	- You'll need the Glide library and headers.  Mesa expects:
 | 
			
		||||
		/usr/local/glide/include/*.h        // all the Glide headers
 | 
			
		||||
		/usr/local/glide/lib/libglide2x.so
 | 
			
		||||
 | 
			
		||||
	  If your Glide libraries and headers are in a different directory
 | 
			
		||||
	  you'll have to modify the Mesa-config and mklib.glide files.
 | 
			
		||||
 | 
			
		||||
	- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives;
 | 
			
		||||
 | 
			
		||||
	- If you're going to use a newer Mesa/Glide driver than v0.27 then
 | 
			
		||||
          unpack the new driver archive over the Mesa directory.
 | 
			
		||||
 | 
			
		||||
	- In the Mesa-3.1 directory type "make linux-glide"
 | 
			
		||||
 | 
			
		||||
	- Compilation _should_ finish without errors;
 | 
			
		||||
 | 
			
		||||
	- Set your LD_LIBRARY_PATH environment variable so that the
 | 
			
		||||
	  libglide2x.so and Mesa library files can be found.  For example:
 | 
			
		||||
	    setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib"
 | 
			
		||||
 | 
			
		||||
	- You'll have to run Glide-based programs as root or set the suid
 | 
			
		||||
	  bit on executables;
 | 
			
		||||
 | 
			
		||||
	- Try a demo:
 | 
			
		||||
	    cd gdemos
 | 
			
		||||
	    su
 | 
			
		||||
	    setenv MESA_GLX_FX f
 | 
			
		||||
	    ./gears     (hit ESC to exit)
 | 
			
		||||
 | 
			
		||||
	- You can find the demos especially designed for the Voodoo driver in
 | 
			
		||||
	  in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile
 | 
			
		||||
	  everything).
 | 
			
		||||
 | 
			
		||||
MacOS:
 | 
			
		||||
------
 | 
			
		||||
	Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html
 | 
			
		||||
      
 | 
			
		||||
MS Windows:
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
	For the MSVC++:
 | 
			
		||||
	- The glide2x.lib have to be in the default MSVC++ lib directory;
 | 
			
		||||
 | 
			
		||||
	- The Glide headers have to be in the default MSVC++ include directory;
 | 
			
		||||
 | 
			
		||||
	- You must have the vcvars32.bat script in your PATH;
 | 
			
		||||
 | 
			
		||||
	- Go to the directory Mesa-3.1 and run the mesafx.bat;
 | 
			
		||||
 | 
			
		||||
	- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
 | 
			
		||||
	  Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
 | 
			
		||||
          Voodoo demos);
 | 
			
		||||
 | 
			
		||||
	- At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
 | 
			
		||||
 | 
			
		||||
	- Try some demo (fire.exe, teapot.exe, etc.) in order to check if
 | 
			
		||||
	  everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between
 | 
			
		||||
	  the Voodoo screen and the windows desktop);
 | 
			
		||||
 | 
			
		||||
	- Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the
 | 
			
		||||
          some directory were you run your Mesa based applications.
 | 
			
		||||
 | 
			
		||||
	- I think that you can easy change the Makefile.fx files in order
 | 
			
		||||
	  to work with other kind of compilers;
 | 
			
		||||
 | 
			
		||||
	- To discover how open the 3Dfx screen, read the sources under
 | 
			
		||||
	  the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or
 | 
			
		||||
          the Diego Picciani's wgl emulator.
 | 
			
		||||
 | 
			
		||||
	NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the
 | 
			
		||||
	SP3, you could have some problem (you can disable optimization in order
 | 
			
		||||
	solve these kind of problems).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Doing more with Mesa & Linux Glide:
 | 
			
		||||
-----------------------------------
 | 
			
		||||
 | 
			
		||||
	The MESA_GLX_FX environment variable can be used to coax most
 | 
			
		||||
	GLX-based programs into using Glide (and the __GLUT library
 | 
			
		||||
	is GLX-based__).
 | 
			
		||||
 | 
			
		||||
        Full-screen 3Dfx rendering:
 | 
			
		||||
        ---------------------------
 | 
			
		||||
 | 
			
		||||
	1. Set the MESA_GLX_FX variable to "fullscreen":
 | 
			
		||||
 | 
			
		||||
		ksh:
 | 
			
		||||
			export MESA_GLX_FX = "fullscreen"
 | 
			
		||||
		csh:
 | 
			
		||||
			setenv MESA_GLX_FX fullscreen
 | 
			
		||||
 | 
			
		||||
	2. As root, run a GLX-based program (any GLUT demo on Linux).
 | 
			
		||||
	
 | 
			
		||||
	3. Be careful:  once the 3Dfx screen appears you won't be able
 | 
			
		||||
	to see the GLUT windows on your X display.  This can make using
 | 
			
		||||
	the mouse tricky!  One solution is to hook up your 3Dfx card to
 | 
			
		||||
	a second monitor.  If you can do this then set these env vars
 | 
			
		||||
	first:
 | 
			
		||||
 | 
			
		||||
		setenv SST_VGA_PASS 1
 | 
			
		||||
		setenv SST_NOSHUTDOWN
 | 
			
		||||
	
 | 
			
		||||
	or for the Voodoo2:
 | 
			
		||||
 | 
			
		||||
		setenv SSTV2_VGA_PASS 1
 | 
			
		||||
		setenv SSTV2_NOSHUTDOWN
 | 
			
		||||
 | 
			
		||||
        Rendering into an X window with the help of the Voodoo hardware:
 | 
			
		||||
        ----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	1. Start your X server in 16 bpp mode (XFree86:  startx -- -bpp 16)
 | 
			
		||||
	   in order to have the best performance and the best visual
 | 
			
		||||
	   quality. However you can use any visual depth supported by X.
 | 
			
		||||
 | 
			
		||||
	2. Set the following environment variables:
 | 
			
		||||
		export MESA_GLX_FX="window"	// to enable window rendering
 | 
			
		||||
		export SST_VGA_PASS=1	// to stop video signal switching
 | 
			
		||||
		export SST_NOSHUTDOWN=1	// to stop video signal switching
 | 
			
		||||
	    OR
 | 
			
		||||
		setenv MESA_GLX_FX window
 | 
			
		||||
		setenv SST_VGA_PASS 1
 | 
			
		||||
		setenv SST_NOSHUTDOWN 1
 | 
			
		||||
 | 
			
		||||
	(the Voodoo2 requires to use "SSTV2_" instead "SST_").
 | 
			
		||||
 | 
			
		||||
	3. As root, try running a GLX-based program
 | 
			
		||||
 | 
			
		||||
	How does it work?  We use the 3Dfx hardware to do rendering then
 | 
			
		||||
	copy the image from the 3Dfx frame buffer into an X window when
 | 
			
		||||
	the SwapBuffers() function is called.  The problem with this
 | 
			
		||||
	idea is it's slow.  The image must be copied from the 3Dfx frame
 | 
			
		||||
	buffer to main memory then copied into the X window (and when the X
 | 
			
		||||
	visual depth doesn't match the Voodoo framebufffer bit per pixel, it
 | 
			
		||||
	is required also a pixel format translation).
 | 
			
		||||
 | 
			
		||||
        On the fly switching between in window rendering and full screen rendering
 | 
			
		||||
	--------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	The Mesa 2.6 has introduced the capability of switching
 | 
			
		||||
	on-the-fly between the fullscreen/fullspeed rendering and the in-window
 | 
			
		||||
	hack and vice versa. The on-the-fly switching requires a direct support
 | 
			
		||||
	by the application but it is really easy to add. You have to start
 | 
			
		||||
	your X server in 16 bpp mode and to add the following lines to your
 | 
			
		||||
	application:
 | 
			
		||||
 | 
			
		||||
		#if defined(FX) && define(XMESA)
 | 
			
		||||
		#include <GL/xmesa.h>
 | 
			
		||||
 | 
			
		||||
		static int fullscreen=1;
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		...
 | 
			
		||||
 | 
			
		||||
		/* In the GLUT keyboard event callback */
 | 
			
		||||
 | 
			
		||||
		#if defined(FX) && !define(WIN32)
 | 
			
		||||
		  case ' ':
 | 
			
		||||
		    fullscreen=(!fullscreen);
 | 
			
		||||
		    XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
 | 
			
		||||
		    break;
 | 
			
		||||
		#endif
 | 
			
		||||
		...
 | 
			
		||||
 | 
			
		||||
       	See the 3Dfx/demos/tunnel.c program
 | 
			
		||||
       	for an example.  You have to set the -DXMESA flag in the Makefile's COPTS
 | 
			
		||||
       	to enable it.
 | 
			
		||||
 | 
			
		||||
  	Rendering into an X window with the X11 software driver:
 | 
			
		||||
        --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	Set the MESA_GLX_FX variable to "disable" your GLX-based program will use
 | 
			
		||||
	the X11 software driver (the 3Dfx hardware isn't used at all).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Useful Glide Environment Variables:
 | 
			
		||||
-----------------------------------
 | 
			
		||||
 | 
			
		||||
	- To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable.
 | 
			
		||||
 | 
			
		||||
	- To disable video signal switching:
 | 
			
		||||
		setenv SST_VGA_PASS 1
 | 
			
		||||
		setenv SST_NOSHUTDOWN
 | 
			
		||||
	  or for the Voodoo2:
 | 
			
		||||
		setenv SSTV2_VGA_PASS 1
 | 
			
		||||
		setenv SSTV2_NOSHUTDOWN
 | 
			
		||||
 | 
			
		||||
        - To set the default screen refresh rate:
 | 
			
		||||
                setenv SST_SCREENREFRESH=75
 | 
			
		||||
 | 
			
		||||
          the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120.
 | 
			
		||||
 | 
			
		||||
	- To force the Mesa library to swap buffers as fast as possible,
 | 
			
		||||
	  without any vertical blanking synchronization (useful for benchmarks):
 | 
			
		||||
		setenv FX_GLIDE_SWAPINTERVAL 0
 | 
			
		||||
                setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0
 | 
			
		||||
 | 
			
		||||
	- You can slight improve the performances of your Voodoo1 board with
 | 
			
		||||
	  the following env. var.:
 | 
			
		||||
		setenv SST_FASTMEM 1
 | 
			
		||||
		setenv SST_PCIRD 1
 | 
			
		||||
		setenv SST_GRXCLK 57
 | 
			
		||||
 | 
			
		||||
	  (don't use this setting with the Quantum3D 100SB or with any other
 | 
			
		||||
	  SLI configuration: it will hang everything !).
 | 
			
		||||
	  The following setting can be used with the Voodoo2:
 | 
			
		||||
		setenv SSTV2_FASTMEM_RAS_READS=1
 | 
			
		||||
		setenv SSTV2_FASTPCIRD=1
 | 
			
		||||
		setenv SSTV2_GRXCLK=95
 | 
			
		||||
 | 
			
		||||
	- The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
 | 
			
		||||
	  in order to work under Linux:
 | 
			
		||||
 | 
			
		||||
		export SSTV2_FT_CLKDEL=5
 | 
			
		||||
		export SSTV2_TF0_CLKDEL=7
 | 
			
		||||
		export SSTV2_TF1_CLKDEL=7
 | 
			
		||||
		export SSTV2_TF2_CLKDEL=7
 | 
			
		||||
		export SSTV2_SLIM_VIN_CLKDEL=3
 | 
			
		||||
		export SSTV2_SLIM_VOUT_CLKDEL=2
 | 
			
		||||
		export SSTV2_SLIS_VIN_CLKDEL=3
 | 
			
		||||
		export SSTV2_SLIS_VOUT_CLKDEL=2
 | 
			
		||||
 | 
			
		||||
	  (Thanks to Phil Ross for this trick).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
The Mesa/Voodoo Environment Variables:
 | 
			
		||||
--------------------------------------
 | 
			
		||||
 | 
			
		||||
	- Only for Windows/Voodoo Rush users, if you define the
 | 
			
		||||
	  env. var. MESA_WGL_FX:
 | 
			
		||||
		export MESA_WGL_FX=fullscreen
 | 
			
		||||
	  you will get fullscreen rendering;
 | 
			
		||||
 | 
			
		||||
	- Only for Windows/Voodoo Rush users, if you define the
 | 
			
		||||
	  env. var. MESA_WGL_FX:
 | 
			
		||||
		export MESA_WGL_FX=window
 | 
			
		||||
	  you will get window rendering (default value);
 | 
			
		||||
 | 
			
		||||
	- Only for Linux users, you can find more informations about
 | 
			
		||||
	  the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide"
 | 
			
		||||
	  section;
 | 
			
		||||
 | 
			
		||||
	- If you define the env. var. MESA_FX_SWAP_PENDING:
 | 
			
		||||
		export MESA_FX_SWAP_PENDING=4
 | 
			
		||||
	  you will able to set the maximum number of swapbuffers
 | 
			
		||||
	  commands in the Voodoo FIFO after a swapbuffer (default value: 2);
 | 
			
		||||
 | 
			
		||||
        - If you define the env. var. MESA_FX_INFO:
 | 
			
		||||
		export MESA_FX_INFO=1
 | 
			
		||||
          you will get some useful statistic.
 | 
			
		||||
 | 
			
		||||
        - If you define the env. var. MESA_FX_NO_SIGNALS:
 | 
			
		||||
		export MESA_FX_NO_SIGNALS=1
 | 
			
		||||
          Mesa/FX will not install atexit() or signal() handlers.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Know BUGS and Problems:
 | 
			
		||||
-----------------------
 | 
			
		||||
 | 
			
		||||
	- fog doesn't work in the right way when using the glDepthRange() function;
 | 
			
		||||
 | 
			
		||||
	- Maximum texture size: 256x256 (this is an hardware limit);
 | 
			
		||||
 | 
			
		||||
	- Texture border aren't yet supported;
 | 
			
		||||
 | 
			
		||||
	- A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit);
 | 
			
		||||
 | 
			
		||||
        - Use the glBindTexture extension (standard in OpenGL 1.1) for texture
 | 
			
		||||
	  mapping (the old way: glTexImage inside a display list, download
 | 
			
		||||
	  the texture map each time that you call the display list !!!);
 | 
			
		||||
 | 
			
		||||
	- Stencil buffer and Accumulation buffer are emulated in software (they are not
 | 
			
		||||
	  directly supported by the Hardware);
 | 
			
		||||
 | 
			
		||||
	- Color index mode not implemented (this is an hardware limit);
 | 
			
		||||
 | 
			
		||||
	- Thre is an know bug in the Linux Glide library so the in-window-rendering hack
 | 
			
		||||
	  and any other operations that requires to read the Voodoo frame buffer
 | 
			
		||||
	  (like the accumulation buffer support) doesn't work on Voodoo SLI cards.
 | 
			
		||||
 | 
			
		||||
	- The driver switch to pure software (_slow_) rendering when:
 | 
			
		||||
 | 
			
		||||
		- Stencil enabled;
 | 
			
		||||
		- Using the Accumulation buffer;
 | 
			
		||||
		- Blend enabled and blend equation != GL_FUNC_ADD_EXT;
 | 
			
		||||
		- Color logic operation enabled and color logic operation != GL_COPY;
 | 
			
		||||
		- Using GL_SEPARATE_SPECULAR_COLOR;
 | 
			
		||||
		- The four values of glColorMask() aren't the some;
 | 
			
		||||
		- Texture 1D or 3D enabled;
 | 
			
		||||
		- Texture function is GL_BLEND;
 | 
			
		||||
		- Using the Multitexture extension with Voodoo cards with only one TMU;
 | 
			
		||||
		- Using the Multitexture extension with Voodoo cards with more than
 | 
			
		||||
		   one TMU, and texture function isn't GL_MODULATE;
 | 
			
		||||
		- Point size is != 1.0 or point params vector != (1.0,0.0,0.0);
 | 
			
		||||
		- Line width != 1.0 or using stipple lines.
 | 
			
		||||
		- Using polygon offset or stipple polygons;
 | 
			
		||||
 | 
			
		||||
	NOTE: this is list is not yet complete.
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
Hints and Special Features:
 | 
			
		||||
---------------------------
 | 
			
		||||
 | 
			
		||||
	- Under Linux and with a Voodoo Graphics board, you can use
 | 
			
		||||
	  XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to
 | 
			
		||||
	  switch on the fly between fullscreen rendering and the in-window-rendering
 | 
			
		||||
	  hack.
 | 
			
		||||
 | 
			
		||||
	- The driver is able to use all the texture memory available: 2/4MB on
 | 
			
		||||
	  Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards.
 | 
			
		||||
 | 
			
		||||
	- Trilinear filtering is fully supported on Voodoo boards with two TMUs
 | 
			
		||||
	  (high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is
 | 
			
		||||
	  available the driver fallback to bilinear filter also if you ask
 | 
			
		||||
	  for trilinear filtering.
 | 
			
		||||
 | 
			
		||||
        - The Voodoo driver support multiple Voodoo Graphics boards in the
 | 
			
		||||
          some PC. Using this feature, you can write applications that use
 | 
			
		||||
          multiple monitors, videoprojectors or HMDs for the output. See
 | 
			
		||||
	  Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one
 | 
			
		||||
          context for each board.
 | 
			
		||||
 | 
			
		||||
	- The v0.19 introduces a new powerful texture memory manager: the
 | 
			
		||||
	  texture memory is used as a cache of the set of all defined texture
 | 
			
		||||
	  maps. You can now define several MBs of texture maps also with a 2MB
 | 
			
		||||
	  of texture memory (the texture memory manager will do automatically
 | 
			
		||||
	  all the swap out/swap in
 | 
			
		||||
	  texture memory work). The new texture memory manager has also
 | 
			
		||||
	  solved a lot of other bugs/no specs compliance/problems
 | 
			
		||||
	  related to the texture memory usage.
 | 
			
		||||
 | 
			
		||||
	- Use triangles and quads strip: they are a LOT faster than sparse
 | 
			
		||||
	  triangles and quads.
 | 
			
		||||
 | 
			
		||||
	- The Voodoo driver supports the GL_EXT_paletted_texture. it works
 | 
			
		||||
	  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
 | 
			
		||||
	  is ignored because this is a limitation of the the current Glide
 | 
			
		||||
	  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
 | 
			
		||||
	  a demo of this extension.
 | 
			
		||||
 | 
			
		||||
	- The Voodoo driver directly supports 3Dfx Global Palette extension.
 | 
			
		||||
	  It was written for GLQuake and I think that it isn't a good idea
 | 
			
		||||
	  to use this extension for any other purpose (it is a trick). See
 | 
			
		||||
	  Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension.
 | 
			
		||||
 | 
			
		||||
	- The Voodoo driver chooses the screen resolution according to the
 | 
			
		||||
	  requested window size. If you open a 640x480 window, you will get
 | 
			
		||||
	  a 640x480 screen resolution, if you open a 800x600 window, you
 | 
			
		||||
	  will get a 800x600 screen resolution, etc.
 | 
			
		||||
	  Most GLUT demos support the '-geometry' option, so you can choose
 | 
			
		||||
	  the screen resolution: 'tunnel -geometry 800x600'.
 | 
			
		||||
	  Clearly, you Voodoo board must have enough framebuffer RAM (otherwise
 | 
			
		||||
	  the window creation will fail).
 | 
			
		||||
 | 
			
		||||
	- The glGetString(GL_RENDERER) returns more information
 | 
			
		||||
          about the hardware configuration: "Mesa Glide <version>
 | 
			
		||||
          <Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/
 | 
			
		||||
          <num> TM/<num> TMU/<NOSLI|SLI>"
 | 
			
		||||
          where: <num> CARD is the card used for the current context,
 | 
			
		||||
          <num> FB is the number of MB for the framebuffer,
 | 
			
		||||
          <num> TM is the number of MB for the texture memory,
 | 
			
		||||
          <num> TMU is the number of TMU. You can try to run
 | 
			
		||||
          Mesa/demos/glinfo in order to have an example of the output.
 | 
			
		||||
 | 
			
		||||
Did you find a lot BUGs and problems ? Good, send me an email.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FAQ:
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO
 | 
			
		||||
available at http://www.gamers.org/dEngine/xf3D (it includes also
 | 
			
		||||
a lot of informations not strictly related to Linux, so it can be
 | 
			
		||||
useful also if you don't use Linux)
 | 
			
		||||
 | 
			
		||||
1. What is 3Dfx?
 | 
			
		||||
 | 
			
		||||
3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics
 | 
			
		||||
chipset (and others) used in popular PC cards such as the Diamond Monster 3D
 | 
			
		||||
and the Orchid Righteous 3D (more informations at http://www.3dfx.com).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2. What is Glide?
 | 
			
		||||
 | 
			
		||||
Glide is a "thin" programming interface for the 3Dfx hardware.  It was
 | 
			
		||||
originally written for Windows/Intel but has been ported to Linux/Intel
 | 
			
		||||
by Daryll Strauss.
 | 
			
		||||
 | 
			
		||||
3Dfx, Inc. should be applauded for allowing the Linux version of Glide
 | 
			
		||||
to be written.
 | 
			
		||||
 | 
			
		||||
You can directly program with the Glide library if you wish.  You can
 | 
			
		||||
obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com
 | 
			
		||||
There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3. What is fxmesa?
 | 
			
		||||
 | 
			
		||||
"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library.
 | 
			
		||||
It was written by David Bucciarelli and others.  It works on both Linux
 | 
			
		||||
and Windows.  Basically, it allows you to write and run OpenGL-style programs
 | 
			
		||||
on the 3Dfx hardware.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4. What is GLQuake?
 | 
			
		||||
 | 
			
		||||
Quake is a very popular game from id software, Inc.  See www.idsoftware.com
 | 
			
		||||
GLQuake is a version of Quake written for OpenGL.  There is now a Linux
 | 
			
		||||
version of GLQuake with works with the Mesa/3Dfx/Glide combo.
 | 
			
		||||
 | 
			
		||||
Here's what you need to run GLQuake on Linux:
 | 
			
		||||
   PC with 100MHz Pentium or better
 | 
			
		||||
   a 3Dfx-based card
 | 
			
		||||
   Mesa 3.1 libraries:  libMesaGL.so  libMesaGLU.so
 | 
			
		||||
   Glide 2.4 libraries:  libglide2x.so  libtexus.so
 | 
			
		||||
   GLQuake for Linux.
 | 
			
		||||
 | 
			
		||||
Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll,
 | 
			
		||||
you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory
 | 
			
		||||
in order to test 'MesaQuake'.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5. What is GLUT?
 | 
			
		||||
 | 
			
		||||
GLUT is Mark Kilgard's OpenGL Utility Toolkit.  It provides an API for
 | 
			
		||||
writing portable OpenGL programs with support for multiple windows, pop-
 | 
			
		||||
up menus, event handling, etc.
 | 
			
		||||
 | 
			
		||||
Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd).
 | 
			
		||||
 | 
			
		||||
Every OpenGL programmer should check out GLUT.
 | 
			
		||||
 | 
			
		||||
GLUT on Linux uses GLX.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6. What is GLX?
 | 
			
		||||
 | 
			
		||||
GLX is the OpenGL extension to the X Window System.  I defines both a
 | 
			
		||||
programming API (glX*() functions) and a network protocol.  Mesa implements
 | 
			
		||||
an emulation of GLX on Linux.  A real GLX implementation would requires
 | 
			
		||||
hooks into the X server.  The 3Dfx hardware can be used with GLX-based
 | 
			
		||||
programs via the MESA_GLX_FX environment variable.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
7. Is the Voodoo driver able to use the 4Mb texture memory of
 | 
			
		||||
the Pure3D boards ?
 | 
			
		||||
 | 
			
		||||
Yes, the Voodoo driver v0.20 includes the support for Voodoo
 | 
			
		||||
Graphics boards with more than 2Mb of texture memory.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
8. Do the Voodoo driver support the Voodoo Rush under Windows ?
 | 
			
		||||
 | 
			
		||||
Yes, Diego Picciani has developed the support for the Voodoo
 | 
			
		||||
Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul
 | 
			
		||||
has a Monster3D, so the new versions of the Mesa/Voodoo sometime are
 | 
			
		||||
not tested with the Voodoo Rush.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
9. Do the Voodoo driver support the Voodoo Rush under Linux ?
 | 
			
		||||
 | 
			
		||||
No because the Linux Glide doesn't (yet) support the Voodoo Rush.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
10. Can I sell my Mesa/Voodoo based software and include
 | 
			
		||||
a binary copy of the Mesa in order to make the software
 | 
			
		||||
working out of the box ?
 | 
			
		||||
 | 
			
		||||
Yes.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
11. Which is the best make target for compiling the Mesa for
 | 
			
		||||
Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ?
 | 
			
		||||
 | 
			
		||||
'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide'
 | 
			
		||||
for Voodoo2 boards because it doesn't include the '-fPIC'
 | 
			
		||||
option (4-5% faster).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide'
 | 
			
		||||
for my applications/programs/demos ?
 | 
			
		||||
 | 
			
		||||
Yes, there is only one constrain: you can't run two Mesa applications
 | 
			
		||||
at the some time. This isn't a big issue with the today Voodoo Graphics.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Thanks to:
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Henri Fousse       (he has written several parts of the v0.15 and the old GLUT
 | 
			
		||||
	            emulator for Win);
 | 
			
		||||
 | 
			
		||||
Diego Picciani     (he has developed all the Voodoo Rush support and the wgl
 | 
			
		||||
	            emulator);
 | 
			
		||||
 | 
			
		||||
Daryll Strauss     (for the Linux Glide and the first Linux support);
 | 
			
		||||
 | 
			
		||||
Brian Paul         (of course);
 | 
			
		||||
 | 
			
		||||
Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports)
 | 
			
		||||
 | 
			
		||||
Bernd Kreimeier    (for the Linux 3Dfx HOWTO and for pushing companies to offer
 | 
			
		||||
                    a better Linux support)
 | 
			
		||||
 | 
			
		||||
3Dfx and Quantum3D (for actively supporting Linux)
 | 
			
		||||
 | 
			
		||||
The most update places where find Mesa VooDoo driver related informations are
 | 
			
		||||
the Mesa mailing list and my driver WEB page
 | 
			
		||||
(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
David Bucciarelli (davibu@tin.it)
 | 
			
		||||
 | 
			
		||||
Humanware s.r.l. 
 | 
			
		||||
Via XXIV Maggio 62
 | 
			
		||||
Pisa, Italy
 | 
			
		||||
Tel./Fax +39-50-554108
 | 
			
		||||
email: info.hmw@plus.it
 | 
			
		||||
www: www-hmw.caribel.pisa.it
 | 
			
		||||
							
								
								
									
										181
									
								
								docs/README.AMIWIN
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								docs/README.AMIWIN
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,181 @@
 | 
			
		||||
AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION
 | 
			
		||||
========================================================
 | 
			
		||||
Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu) 
 | 
			
		||||
Original Author (Brian Paul (brianp@ssec.wisc.edu)
 | 
			
		||||
 | 
			
		||||
Dec.1 , 1995: Port of release Mesa 1.2.5
 | 
			
		||||
 - Modifications made to minimize changes to Mesa distribution.
 | 
			
		||||
 | 
			
		||||
Nov.25, 1995: Port of release Mesa 1.2.4
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
HISTORY
 | 
			
		||||
=======
 | 
			
		||||
As a 3D graphics progammer, I was increasingly frustrated to see OpenGL 
 | 
			
		||||
appearing on so many platforms EXCEPT the Amiga. Up to now, the task
 | 
			
		||||
of porting OpenGL directly from native Amiga drawing routines seemed like
 | 
			
		||||
a daunting task. However, two important events made this port possible.
 | 
			
		||||
 | 
			
		||||
First of all, Brian Paul wrote Mesa, the OpenGL software emulator that 
 | 
			
		||||
can be found on many platforms - except the Amiga and Atari (who cares 
 | 
			
		||||
about the latter!). This was pretty ironic considering that Mesa was 
 | 
			
		||||
originally prototyped on an Amiga! The second great event was when 
 | 
			
		||||
Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely 
 | 
			
		||||
register for this great piece of software) and released a development kit
 | 
			
		||||
so one could compile X programs with SAS/C.
 | 
			
		||||
 | 
			
		||||
Since Mesa had X routines as its primitive drawing operations, this made
 | 
			
		||||
a marriage of Mesa and Amiwin feasible. I copied over the sources from
 | 
			
		||||
an ftp site, played with the code, wrote some Smakefiles, and voila, 
 | 
			
		||||
I had OpenGL programs displaying on my Amiga.
 | 
			
		||||
 | 
			
		||||
Although the speed is nothing to be impressed about, this port can be
 | 
			
		||||
potentially useful to those who want to quickly test their code in
 | 
			
		||||
wireframe or perhaps learn more about programming with the OpenGL API.
 | 
			
		||||
 | 
			
		||||
I hope Amiga developers will continue to write excellent software for
 | 
			
		||||
their machine, especially more X clients for Amiwin. If you have any 
 | 
			
		||||
solutions so some of my problems in the porting notes, please send me
 | 
			
		||||
some email!
 | 
			
		||||
 | 
			
		||||
See you around,
 | 
			
		||||
Vic.
 | 
			
		||||
 | 
			
		||||
HOW TO CREATE THE LIBRARIES AND SAMPLE CODE
 | 
			
		||||
===========================================
 | 
			
		||||
 | 
			
		||||
Just run the shell script mklib.amiwin in the mesa directory. This will
 | 
			
		||||
make all the libraries and copy them into the mesa/lib directory. If you
 | 
			
		||||
don't want to compile everything, just go to the desired directory and
 | 
			
		||||
type smake in that directory.
 | 
			
		||||
 | 
			
		||||
Change any of the variables in the smakefiles as necessary. You will REQUIRE
 | 
			
		||||
the Amiwin development kit to compile these libraries since you need X11.LIB
 | 
			
		||||
and the shareable X libraries. Some examples require the AmiTCP4.0
 | 
			
		||||
net.lib static link library and related header files for unix related
 | 
			
		||||
header files and functions like sleep().
 | 
			
		||||
 | 
			
		||||
HOW TO USE THE MESA LIBRARIES
 | 
			
		||||
=============================
 | 
			
		||||
 | 
			
		||||
Study the Smakefiles in the demos, samples and book directories for the
 | 
			
		||||
proper SAS/C options and linkable libraries to use. Basically aux calls
 | 
			
		||||
require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB,
 | 
			
		||||
tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit
 | 
			
		||||
available in the lib directory with the other Mesa libraries. However, 
 | 
			
		||||
it seems to cause crashes on some of the sample code. Someone else may want
 | 
			
		||||
to attempt a more stable port.
 | 
			
		||||
 | 
			
		||||
PORTING NOTES TO AMIWIN
 | 
			
		||||
=======================
 | 
			
		||||
 | 
			
		||||
My strategy of porting was to leave as much of the code untouched as
 | 
			
		||||
possible. I surrounded any amiga specific changes with 
 | 
			
		||||
#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor
 | 
			
		||||
symbols. The code  was ported on an Amiga 2000, with Fusion 40 accelerator
 | 
			
		||||
and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with
 | 
			
		||||
the AmiWin 2.16 X development kit.
 | 
			
		||||
 | 
			
		||||
All compilations were done for a 68040 CPU with 68882 math coprocessor for
 | 
			
		||||
maximum  speed. Please edit the smakefile for other compilers.
 | 
			
		||||
I wrote smakefiles for the directories I ported. I omitted the Windows
 | 
			
		||||
and Widgets directories. The former is for MS Windows and the latter 
 | 
			
		||||
requires Motif, which is not easily available for the Amiga.
 | 
			
		||||
 | 
			
		||||
Here are the changes I did per directory:
 | 
			
		||||
 | 
			
		||||
* mesa
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added a mklib.amiwin shell script that will make all the libraries and
 | 
			
		||||
    sample code for Mesa
 | 
			
		||||
  - created this readme file: readme.AMIGA
 | 
			
		||||
 | 
			
		||||
* mesa/include
 | 
			
		||||
Dec. 1, 1995 v 1.2.5
 | 
			
		||||
  - added the following to GL/xmesa.h 
 | 
			
		||||
     #ifdef AMIWIN
 | 
			
		||||
     #include <pragmas/xlib_pragmas.h>
 | 
			
		||||
     extern struct Library *XLibBase;
 | 
			
		||||
     #endif
 | 
			
		||||
NET CHANGE: xmesa.h
 | 
			
		||||
 | 
			
		||||
* mesa/src 
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added the necessary pragma calls for X functions to the following:
 | 
			
		||||
    xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c 
 | 
			
		||||
    This prevents undefined symbols errors during the linking phase for 
 | 
			
		||||
    X library calls
 | 
			
		||||
  - created smakefile
 | 
			
		||||
Dec.  1, 1995 v 1.2.5
 | 
			
		||||
  - removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, 
 | 
			
		||||
    glx.c since they are now defined in include/GL/xmesa.h
 | 
			
		||||
NET CHANGE: smakefile
 | 
			
		||||
   
 | 
			
		||||
* mesa/src-tk
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added the necessary pragma calls for X functions to the following:
 | 
			
		||||
    private.h
 | 
			
		||||
  - created smakefile
 | 
			
		||||
Dec.  1, 1995 v 1.2.5
 | 
			
		||||
  - removed AMIWIN includes from private.h since it is now defined in
 | 
			
		||||
    include/GL/xmesa.h
 | 
			
		||||
NET CHANGE: smakefile
 | 
			
		||||
 | 
			
		||||
* mesa/src-glu
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - created smakefile
 | 
			
		||||
NET CHANGE: smakefile
 | 
			
		||||
 | 
			
		||||
* mesa/src-aux
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added the necessary pragma calls for X functions to the following:
 | 
			
		||||
    glaux.c
 | 
			
		||||
  - created smakefile
 | 
			
		||||
NET CHANGE: glaux.c, smakefile
 | 
			
		||||
 | 
			
		||||
* mesa/demos
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added the necessary pragma calls for X functions to the following:
 | 
			
		||||
    xdemo.c, glxdemo.c, offset.c
 | 
			
		||||
  - created smakefile
 | 
			
		||||
  - put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since 
 | 
			
		||||
    they are not part of AmigaDOS.
 | 
			
		||||
Dec.  1, 1995 v 1.2.5
 | 
			
		||||
  - removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since
 | 
			
		||||
    already defined in include/GL/xmesa.h
 | 
			
		||||
  - modified Smakefile to include header and includes from the AmiTCP4.0
 | 
			
		||||
    net.lib linkable library to provide unix-compatible sys/time.h and
 | 
			
		||||
    the sleep() function
 | 
			
		||||
    - removed AMIWIN defines in xdemo.c since sleep() now defined
 | 
			
		||||
NET CHANGE: smakefile
 | 
			
		||||
 | 
			
		||||
* mesa/samples
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
  - added the necessary pragma calls for X functions to the following:
 | 
			
		||||
    oglinfo.c
 | 
			
		||||
  - created smakefile
 | 
			
		||||
  - put #ifndef AMIWIN ... #endif around sleep() in blendxor.c
 | 
			
		||||
  - removed olympic from smakefile targets since <sys/time.h> not defined
 | 
			
		||||
Dec.  1, 1995 v 1.2.5
 | 
			
		||||
  - removed AMIWIN defines from oglinfo.c, since already defined in 
 | 
			
		||||
    include/GL/xmesa.h
 | 
			
		||||
  - modified Smakefile to include header and includes from the AmiTCP4.0
 | 
			
		||||
    net.lib linkable library to provide unix-compatible sys/time.h and
 | 
			
		||||
    the sleep() function
 | 
			
		||||
    - removed AMIWIN defines in blendxor.c for sleep()
 | 
			
		||||
    - added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom()
 | 
			
		||||
      functions are not defined in any libraries
 | 
			
		||||
    - added olympic back into the Smakefile targets
 | 
			
		||||
NET CHANGE: smakefile, olympic.c
 | 
			
		||||
 | 
			
		||||
* mesa/book
 | 
			
		||||
Nov. 25, 1995 v 1.2.4
 | 
			
		||||
- created smakefile
 | 
			
		||||
- removed accpersp and dof from smakefile targets since the SAS/C compile seems to
 | 
			
		||||
  confuse the near,far variables with near/far memory models.
 | 
			
		||||
NET CHANGE: smakefile
 | 
			
		||||
 | 
			
		||||
* mesa/windows
 | 
			
		||||
Dec.  1, 1995 v 1.2.5
 | 
			
		||||
- Removed directory to save space since this is only needed for Windows based 
 | 
			
		||||
  machines.
 | 
			
		||||
							
								
								
									
										102
									
								
								docs/README.BEOS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								docs/README.BEOS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
 | 
			
		||||
                         Mesa / BeOS Information
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Introduction
 | 
			
		||||
 | 
			
		||||
Mesa 3.1 features a new driver for the BeOS.  The new driver implements
 | 
			
		||||
a clone of the BGLView class.  This class, derived from BView, allows
 | 
			
		||||
OpenGL rendering into a BeOS window.
 | 
			
		||||
 | 
			
		||||
Any application which uses the BGLView should be able to use Mesa
 | 
			
		||||
instead of Be's OpenGL without changing any code.
 | 
			
		||||
 | 
			
		||||
Since Be's OpenGL implementation (as of R4) is basically just the
 | 
			
		||||
SGI sample implementation, it's pretty slow.  You'll see that Mesa
 | 
			
		||||
is considerably faster.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Source Code
 | 
			
		||||
 | 
			
		||||
The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp
 | 
			
		||||
It's not 100% finished at this time but many GLUT-based demos are
 | 
			
		||||
working.  No optimizations have been made at this time.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Compiling
 | 
			
		||||
 | 
			
		||||
In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4".
 | 
			
		||||
When it finishes the libMesaGL.so and libMesaGLU.so libraries for
 | 
			
		||||
BeOS will be in the Mesa-3.x/lib/ directory.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Example Programs
 | 
			
		||||
 | 
			
		||||
Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo
 | 
			
		||||
programs.  They should have been compiled along with the Mesa
 | 
			
		||||
library.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GLUT
 | 
			
		||||
 | 
			
		||||
A version of GLUT 2.5 for BeOS can be found in src-glut.beos/.
 | 
			
		||||
The original distribution can be obtained from
 | 
			
		||||
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
 | 
			
		||||
 | 
			
		||||
This is a special version of GLUT adapted for the BeOS.  I don't
 | 
			
		||||
believe Mark Kilgard's normal GLUT distribution includes BeOS
 | 
			
		||||
support.
 | 
			
		||||
 | 
			
		||||
It seems that you have to recompile GLUT with libMesaGL.so instead
 | 
			
		||||
of libGL.so in order for everything to work.  I'm not sure why.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Special Features
 | 
			
		||||
 | 
			
		||||
Mesa's implementation of the BGLView class has an extra member
 | 
			
		||||
function:  CopySubBufferMESA().  It basically works like SwapBuffers()
 | 
			
		||||
but it only copies a sub region from the back buffer to the front
 | 
			
		||||
buffer.  This is a useful optimization for some applications.
 | 
			
		||||
If you use this method in your code be sure that you check at runtime
 | 
			
		||||
that you're actually using Mesa (with glGetString) so you don't
 | 
			
		||||
cause a fatal error when running with Be's OpenGL.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Work Left To Do
 | 
			
		||||
 | 
			
		||||
Color index mode is not implemented yet.
 | 
			
		||||
 | 
			
		||||
Reading pixels from the front buffer not implemented yet.
 | 
			
		||||
 | 
			
		||||
There is also a BGLScreen class in BeOS for full-screen OpenGL
 | 
			
		||||
rendering.  This should also be implemented for Mesa.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Old BeOS Driver
 | 
			
		||||
 | 
			
		||||
Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen
 | 
			
		||||
rendering interface, not BGLView.  If you're interested in the older
 | 
			
		||||
driver you should get Mesa 2.6.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BeOS and Glide
 | 
			
		||||
 | 
			
		||||
Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0
 | 
			
		||||
if interested.  Ideally, the 3Dfx/Glide support should be updated to
 | 
			
		||||
work with the new Mesa 3.1 BGLView implementation.
 | 
			
		||||
 | 
			
		||||
The Glide library hasn't been updated for BeOS R4, to my knowledge, as
 | 
			
		||||
of February, 1999.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
$Id: README.BEOS,v 1.5.6.1 1999/11/27 01:39:50 brianp Exp $
 | 
			
		||||
							
								
								
									
										124
									
								
								docs/README.D3D
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								docs/README.D3D
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
 | 
			
		||||
                     DirectX 6 Driver for Mesa 3.0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
This software is distributed under the terms of the GNU Library
 | 
			
		||||
General Public License, see the LICENSE file for details.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
What do you need ?
 | 
			
		||||
------------------
 | 
			
		||||
 | 
			
		||||
	- A PC with a DirectX 6 video driver installed.
 | 
			
		||||
 | 
			
		||||
	- Mesa 3.0
 | 
			
		||||
 | 
			
		||||
	- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
 | 
			
		||||
	  The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not
 | 
			
		||||
	  compatible with the Glide 2.x so it doesn't work with the current
 | 
			
		||||
	  version of the driver;
 | 
			
		||||
 | 
			
		||||
	- Visual C++ 5.0 is only compiler test but others should be ok with
 | 
			
		||||
       changes to the makefiles (CFLAGS/LFLAGS).
 | 
			
		||||
 | 
			
		||||
	- DirectX 6 SDK (was a MS download but not sure if still available).
 | 
			
		||||
 | 
			
		||||
	- SoftIce or another debugger that will get DPF's is nice.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Tested on:
 | 
			
		||||
----------
 | 
			
		||||
	Windows 95
 | 
			
		||||
  	Windows 98
 | 
			
		||||
	Windows NT 5.0 (beta 2)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
What is able to do ?
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
	- the driver will try and use DirectX to rasterize the OpenGL primitives
 | 
			
		||||
	that are sent to the driver.  The driver will fall back to SW  if the rendering 
 | 
			
		||||
	context is too big.  The fallback to SW still uses DirectDraw.  If the driver
 | 
			
		||||
	fails to support and operation (accum, stencil, etc) then it will try and get
 | 
			
		||||
	Mesa to render it in SW.  DirectX 6 features that are unsupported by the 
 | 
			
		||||
	installed DirectX 6 driver will be mapped to some other best fit feature.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
How to compile:
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
	These instructions assume you have Visual C++ installed.
 | 
			
		||||
 | 
			
		||||
	  You might need to increase you enviroment space.  You can do this by 
 | 
			
		||||
	adding the following statement to you config.sys.
 | 
			
		||||
 | 
			
		||||
	shell=C:\COMMAND.COM C:\ /p /e:8198
 | 
			
		||||
 | 
			
		||||
	  Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
 | 
			
		||||
 	'bin' directoy.
 | 
			
		||||
 | 
			
		||||
	c:\DevStudio\VC\bin\vcvars32.bat
 | 
			
		||||
 | 
			
		||||
	  Modify the D3D makefile to point at your SDK install.  Example has the SDK
 | 
			
		||||
	installed on my 'f' drive in the root.
 | 
			
		||||
 | 
			
		||||
	file: \Mesa-3.0\src\makefile.d3d
 | 
			
		||||
 | 
			
		||||
	SDKROOT=f:\mssdk
 | 
			
		||||
 | 
			
		||||
	  Now you can simply make the project.  If you look in the makefile you can see
 | 
			
		||||
	I have some different targets like 'install'.  
 | 
			
		||||
 | 
			
		||||
	nmake /f makefile.d3d
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FAQ:
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
	1) I don't think the driver is using my DirectX driver.
 | 
			
		||||
 | 
			
		||||
 	  This maybe true as the current version will only select the Primary D3D driver
 | 
			
		||||
	installed.  If you 3D card is the secondary (3dfx) then your out of luck for this
 | 
			
		||||
	release.
 | 
			
		||||
 | 
			
		||||
	2) The driver seems like its not HW accelerated.
 | 
			
		||||
 | 
			
		||||
	  If you have a video card with limited memory then you might want to try and 
 | 
			
		||||
	change your destop resolution to a low setting (640x480x16) so that the 3D part
 | 
			
		||||
	of the card has more resources.  Remeber the driver can't make the card better...
 | 
			
		||||
 | 
			
		||||
	3) Nothing works.
 | 
			
		||||
 | 
			
		||||
	  Make sure you have a DirectX '6' driver installed.  Check you driver docs for this
 | 
			
		||||
	info or use the SDK info utilities.
 | 
			
		||||
	  The final 'dll' is named opengl32.dll and is either in the same directory as the 
 | 
			
		||||
	OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
 | 
			
		||||
	  Check your destop resolution.  Most DirectX 6 drivers will only support 16bit and
 | 
			
		||||
	32bit color depth.  To find out for sure you can check the DirectX Info Viewer in
 | 
			
		||||
	the SDK.
 | 
			
		||||
	  
 | 
			
		||||
 | 
			
		||||
	4) Rendering doesn't look right.
 | 
			
		||||
 | 
			
		||||
	  Sometimes this is because the card doesn't support a feature that that is required.
 | 
			
		||||
	This is usually due to unsupported alpha functions (test/blend) or texture mapping.
 | 
			
		||||
	Some cards suffer from too small of an alpha channel.  The driver does its best to
 | 
			
		||||
	fallback on unsupported features.  This is not to say the driver may not have a bug(s).
 | 
			
		||||
 | 
			
		||||
	5) Textures look bad.
 | 
			
		||||
 | 
			
		||||
	  No mipmapping in this release.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Thanks to:
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Brian Paul
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Leigh McRae (leigh@altsoftware.com)
 | 
			
		||||
February 9, 1999
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								docs/README.GGI
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								docs/README.GGI
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
GGIMesa for LibGGI 2.x
 | 
			
		||||
 | 
			
		||||
Requirements:
 | 
			
		||||
-------------
 | 
			
		||||
LibGGI 2.0 or greater
 | 
			
		||||
 | 
			
		||||
Installation:
 | 
			
		||||
-------------
 | 
			
		||||
To install GGIMesa, follow the instructions in INSTALL.GNU.  If you 
 | 
			
		||||
wish to install GGIGLUT as well, first install GGIMesa and then run
 | 
			
		||||
 | 
			
		||||
make
 | 
			
		||||
make install (must be root)
 | 
			
		||||
 | 
			
		||||
in ggi/ggiglut.
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG 
 | 
			
		||||
to 255 to see lots of debugging output.
 | 
			
		||||
 | 
			
		||||
* GGIGLUT contains support for all of the GLUT 3.6 API except for the
 | 
			
		||||
high-level primitive drawing functions, but many of the functions (in
 | 
			
		||||
particular the menu drawing functions) are just stubs.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										64
									
								
								docs/README.LYNXOS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								docs/README.LYNXOS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
 | 
			
		||||
Mesa 3.0 for LynxOS builds in the following way:
 | 
			
		||||
 | 
			
		||||
make lynxos
 | 
			
		||||
 | 
			
		||||
This will build all the libraries and demo applications. You should have 
 | 
			
		||||
around 400 megabytes free for everything since everything is done with 
 | 
			
		||||
static
 | 
			
		||||
libraries.
 | 
			
		||||
 | 
			
		||||
Before using this make file however, you should perform the following 
 | 
			
		||||
actions:
 | 
			
		||||
0) cd to the Mesa-3.0 directory
 | 
			
		||||
1) Copy the GL directory under the include directory to /usr/include.
 | 
			
		||||
2) Copy the files in the lib directory to /lib.
 | 
			
		||||
3) Make links so that the Mesa libraries look like ordinary OpenGL 
 | 
			
		||||
libraries
 | 
			
		||||
in /lib. This is important for compatibility with other OpenGL apps. This
 | 
			
		||||
is done as follows:
 | 
			
		||||
 | 
			
		||||
cd /lib
 | 
			
		||||
ln -s libMesaGL.a libGL.a
 | 
			
		||||
ln -s libMesaGLU.a libGLU.a
 | 
			
		||||
 | 
			
		||||
Mesa 3.0 includes the GLUT (GL Utility Toolkit) by default.
 | 
			
		||||
The demo applications are done using this toolkit.
 | 
			
		||||
 | 
			
		||||
Mesa makefiles for building their apps could be used as well, but the
 | 
			
		||||
following one is much more concise. Note that the order of the X libraries
 | 
			
		||||
is important to the linker so that all symbols get resolved correctly.
 | 
			
		||||
Changing the order may result in having to list a library twice to make
 | 
			
		||||
sure all linkages are made correctly.
 | 
			
		||||
 | 
			
		||||
----cut here for Makefile -----
 | 
			
		||||
 | 
			
		||||
FILES = your_app.x
 | 
			
		||||
 | 
			
		||||
SPECIAL_INCLUDES = -I/usr/include/GL
 | 
			
		||||
 | 
			
		||||
SPECIAL_CFLAGS = -g  -ansi -pedantic -funroll-loops -ffast-math -DSHM
 | 
			
		||||
 | 
			
		||||
SPECIAL_LIBS = -lglut -lGLU -lGL -lm -L/usr/X11/lib -lXext -lXmu -lXi \
 | 
			
		||||
-lX11 -lbsd -g
 | 
			
		||||
 | 
			
		||||
STANDARD_OFILES = $(FILES:.x=.o)
 | 
			
		||||
 | 
			
		||||
%.o: %.c
 | 
			
		||||
	gcc -c $(SPECIAL_CFLAGS) $(SPECIAL_INCLUDES) $< -o $@
 | 
			
		||||
 | 
			
		||||
all: $(STANDARD_OFILES)
 | 
			
		||||
	gcc -o your_app $(STANDARD_OFILES) $(SPECIAL_LIBS)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----cut here for Makefile-----
 | 
			
		||||
 | 
			
		||||
I have tested Mesa under LynxOS 3.0 and 3.01. It should build fine under 
 | 
			
		||||
other
 | 
			
		||||
versions as well. Note, however, that LynxOS versions prior to 3.0 are not
 | 
			
		||||
binary compatible, so you will have to rebuild from source.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Vik Sohal
 | 
			
		||||
vik@lynx.com
 | 
			
		||||
January 13, 1999
 | 
			
		||||
							
								
								
									
										53
									
								
								docs/README.MINGW32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/README.MINGW32
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
August 30, 1998 -- Paul Garceau
 | 
			
		||||
Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
 | 
			
		||||
 | 
			
		||||
DISCLAIMER:  I make this port of the Mesa 3-D Graphics Library as a service
 | 
			
		||||
to the general public.  I can, in no way support or make any guarantee that the
 | 
			
		||||
build will work for your system.
 | 
			
		||||
 | 
			
		||||
	The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
 | 
			
		||||
 | 
			
		||||
	Feel free to modify or change things as you see fit, just remember that
 | 
			
		||||
I can't support any modifications you might want to make to the files which I
 | 
			
		||||
have included OR the lgpl protected Mesa 3-D Graphics Library.
 | 
			
		||||
 | 
			
		||||
	I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
 | 
			
		||||
 | 
			
		||||
		(ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
 | 
			
		||||
 | 
			
		||||
	This build has been tested under WinNT4/SP6.  Win9x and WinNT5 remain untested by me.  I have not tested any of the demos included with Mesa3d.
 | 
			
		||||
 | 
			
		||||
	I recommend using the GCC-2.95.2/Mingw32.
 | 
			
		||||
 | 
			
		||||
	ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
 | 
			
		||||
 | 
			
		||||
	Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
 | 
			
		||||
and Colin Peters for making it possible for the Mingw32 toolchain to exist.  Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
 | 
			
		||||
 | 
			
		||||
Installing GCC-2.95.2/Mingw32 Build:
 | 
			
		||||
 | 
			
		||||
	a) Open the file archive (either tar.gz or .zip extensions)
 | 
			
		||||
 | 
			
		||||
	b) Decide the directory you want to move the archived files to.
 | 
			
		||||
 | 
			
		||||
	d) Extract the files from the archive.
 | 
			
		||||
	
 | 
			
		||||
	e) Edit the mingw32.bat file to accomodate your choice of directory structure.
 | 
			
		||||
 | 
			
		||||
		%mesaroot%:	This is your root directory (Mesa-3.2)
 | 
			
		||||
		%mesasrc%:	This is the Mesa-3.2 src directory (Mesa-3.2\src)
 | 
			
		||||
		%mesalib%:	This is where the build will put libGL.a and libGLU.a
 | 
			
		||||
 | 
			
		||||
Running the Build:
 | 
			
		||||
 | 
			
		||||
	Open your Command Prompt or MS-DOS prompt.
 | 
			
		||||
	Go to your Mesa-3.2 'root' directory
 | 
			
		||||
	At the command line type: mingw32
 | 
			
		||||
 | 
			
		||||
	That's all there is to it.
 | 
			
		||||
 | 
			
		||||
	Enjoy!
 | 
			
		||||
 | 
			
		||||
	Peace,
 | 
			
		||||
 | 
			
		||||
		Paul G. (pgarceau@teleport.com)
 | 
			
		||||
							
								
								
									
										100
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
 | 
			
		||||
			Mesa 3.0 MITS Information
 | 
			
		||||
 | 
			
		||||
[The MITS code hasn't been update for Mesa 3.1 and may no longer work]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
This document is a preliminary introduction to help you get
 | 
			
		||||
started. For more detaile information consult the web page.
 | 
			
		||||
 | 
			
		||||
http://10-dencies.zkm.de/~mesa/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Version 0.1 (Yes it's very alpha code so be warned!)
 | 
			
		||||
Contributors: 
 | 
			
		||||
  Emil Briggs    	(briggs@bucky.physics.ncsu.edu)
 | 
			
		||||
  David Bucciarelli 	(tech.hmw@plus.it)
 | 
			
		||||
  Andreas Schiffler 	(schiffler@zkm.de)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1. Requirements:
 | 
			
		||||
     Mesa 3.0.
 | 
			
		||||
     An SMP capable machine running Linux 2.x
 | 
			
		||||
     libpthread installed on your machine.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2. What does MITS stand for?
 | 
			
		||||
     MITS stands for Mesa Internal Threading System. By adding
 | 
			
		||||
     internal threading to Mesa it should be possible to improve
 | 
			
		||||
     performance of OpenGL applications on SMP machines.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3. Do applications have to be recoded to take advantage of MITS?
 | 
			
		||||
     No. The threading is internal to Mesa and transparent to
 | 
			
		||||
     applications.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4. Will all applications benefit from the current implementation of MITS?
 | 
			
		||||
     No. This implementation splits the processing of the vertex buffer
 | 
			
		||||
     over two threads. There is a certain amount of overhead involved
 | 
			
		||||
     with the thread synchronization and if there is not enough work
 | 
			
		||||
     to be done the extra overhead outweighs any speedup from using
 | 
			
		||||
     dual processors. You will not for example see any speedup when
 | 
			
		||||
     running Quake because it uses GL_POLYGON and there is only one
 | 
			
		||||
     polygon for each vertex buffer processed. Test results on a
 | 
			
		||||
     dual 200 Mhz. Pentium Pro system show that one needs around
 | 
			
		||||
     100-200 vertices in the vertex buffer before any there is any
 | 
			
		||||
     appreciable benefit from the threading.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5. Are there any parameters that I can tune to try to improve performance.
 | 
			
		||||
     Yes. You can try to vary the size of the vertex buffer which is
 | 
			
		||||
     define in VB_MAX located in the file src/vb.h from your top level
 | 
			
		||||
     Mesa distribution. The number needs to be a multiple of 12 and
 | 
			
		||||
     the optimum value will probably depend on the capabilities of
 | 
			
		||||
     your machine and the particular application you are running.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6. Are there any ways I can modify the application to improve its
 | 
			
		||||
   performance with the MITS?
 | 
			
		||||
     Yes. Try to use as many vertices between each Begin/End pair
 | 
			
		||||
     as possbile. This will reduce the thread synchronization
 | 
			
		||||
     overhead.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
7. What sort of speedups can I expect?
 | 
			
		||||
     On some benchmarks performance gains of up to 30% have been
 | 
			
		||||
     observerd. Others may see no gain at all and in a few rare
 | 
			
		||||
     cases even some degradation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
8. What still needs to be done?
 | 
			
		||||
     Lots of testing and benchmarking.
 | 
			
		||||
     A portable implementation that works within the Mesa thread API.
 | 
			
		||||
     Threading of additional areas of Mesa to improve performance
 | 
			
		||||
     even more.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Installation:
 | 
			
		||||
 | 
			
		||||
   1. This assumes that you already have a working Mesa 3.0 installation
 | 
			
		||||
      from source.
 | 
			
		||||
   2. Place the tarball MITS.tar.gz in your top level Mesa directory.
 | 
			
		||||
   3. Unzip it and untar it. It will replace the following files in
 | 
			
		||||
      your Mesa source tree so back them up if you want to save them.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	 README.MITS
 | 
			
		||||
         Make-config
 | 
			
		||||
	 Makefile
 | 
			
		||||
	 mklib.glide
 | 
			
		||||
         src/vbxform.c
 | 
			
		||||
	 src/vb.h
 | 
			
		||||
 | 
			
		||||
   4. Rebuild Mesa using the command
 | 
			
		||||
 | 
			
		||||
          make linux-386-glide-mits
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								docs/README.NeXT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docs/README.NeXT
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
The NeXT support has now been incorporated into the OpenStep support.
 | 
			
		||||
You can build NeXT libraries simply by typing "make next", though before
 | 
			
		||||
linking they will need to be ranlib'd by hand. For more information see
 | 
			
		||||
the README.OpenStep file, together with the README files in OpenStep/Old_Demos.
 | 
			
		||||
 | 
			
		||||
-Pete French. (pete@ohm.york.ac.uk) 28/5/1998
 | 
			
		||||
							
								
								
									
										96
									
								
								docs/README.OS2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								docs/README.OS2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
            README for port of Mesa 3.x to XFree86 on OS/2 (X/2)
 | 
			
		||||
                          (as of 19990514)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                           Contents:
 | 
			
		||||
 | 
			
		||||
                           1) Binary release
 | 
			
		||||
                           2) Building from sources
 | 
			
		||||
                           3) History
 | 
			
		||||
                           4) Todo
 | 
			
		||||
                           5) Mesa Home Page
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1) Binary release
 | 
			
		||||
 | 
			
		||||
   Though the Mesa sources should build in a quite reasonable time even on
 | 
			
		||||
   a 585 class machine a binary relase is available (check topic 4) for an URL)
 | 
			
		||||
   This package includes:
 | 
			
		||||
 | 
			
		||||
     - lib/MesaGL.dll,  MesaGL.a
 | 
			
		||||
     - lib/MesaGLU.dll, MesaGLU.a
 | 
			
		||||
     - lib/glut.dll,    glut.a
 | 
			
		||||
     - include/GL/*.h
 | 
			
		||||
 | 
			
		||||
    Installing this in your XFree86 tree will enable you to build and
 | 
			
		||||
    run all applications compatible with Mesa (and the current DLL
 | 
			
		||||
    interface, of course ;-)
 | 
			
		||||
    As usual the OMF-style libraries can be created using emxomf.
 | 
			
		||||
    (e.g. "emxomf foo.a"  creates the foo.lib omf-style library).
 | 
			
		||||
    The static libraries are rarely used and you have to rebuild
 | 
			
		||||
    Mesa to get them. They're a supported target, so you get
 | 
			
		||||
    them in a straightforward way (see below).
 | 
			
		||||
 | 
			
		||||
    The testing of these libraries was limited to the supplied
 | 
			
		||||
    demos/examples and a quite small number of third-party apps.
 | 
			
		||||
    No warranty ... as usual ...  ;-)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2)  Instructions to build Mesa 3.x for XFree86/OS2 from sources:
 | 
			
		||||
 | 
			
		||||
    Except the official Mesa source distribution you need:
 | 
			
		||||
      - a recent version of XFree86 (3.3.x or above) including
 | 
			
		||||
        the programming libraries
 | 
			
		||||
      - EMX 0.9c (0.9d might work, never checked)
 | 
			
		||||
      - GNU make
 | 
			
		||||
      - REXX (!)
 | 
			
		||||
 | 
			
		||||
    The creation of the DLLs as well as of the static libraries
 | 
			
		||||
    (if you want to have them) is handled in "mklib-emx.cmd",
 | 
			
		||||
    a small REXX script. Perhaps not the best idea, but this
 | 
			
		||||
    way it fits best in the scheme used to build libraries
 | 
			
		||||
    on all platforms in Mesa 3.x.
 | 
			
		||||
 | 
			
		||||
    To actually build the libraries and demos, check mklib-emx.cmd
 | 
			
		||||
    and modify it as desired. Then type
 | 
			
		||||
      make os2-x11
 | 
			
		||||
    and wait for completion ;-)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3)  History
 | 
			
		||||
 | 
			
		||||
    Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x
 | 
			
		||||
    to XFree86 OS/2. This port might still be available from 
 | 
			
		||||
       http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html
 | 
			
		||||
 | 
			
		||||
    The current port picked up things during the beta test for 3.0. 
 | 
			
		||||
    No major changes in the source were done. The build mechanism under OS/2
 | 
			
		||||
    has been made very similar to other platforms (if you treat mklib-emx.cmd
 | 
			
		||||
    as a "black box").
 | 
			
		||||
    Advantage is that X/2 is now a valid target and all files are
 | 
			
		||||
    integrated in the official source distribution.
 | 
			
		||||
    Disadvantage is that this port (i.e. the DLLs' interface itself) is
 | 
			
		||||
    definitly NOT COMPATIBLE to those of version 2.x. 
 | 
			
		||||
    It's uncertain whether this would be at all possible but since there
 | 
			
		||||
    a _very_ few those apps it's not worth to find out anyway.
 | 
			
		||||
    Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution,
 | 
			
		||||
    and accordingly from the OS/2 port.
 | 
			
		||||
 | 
			
		||||
4) Todo
 | 
			
		||||
 | 
			
		||||
    By now binary compatiblity is ensured by using the function names
 | 
			
		||||
    as entry points instead of ordinals. This might cost performance and
 | 
			
		||||
    is subject to change in future. In addition the supplied X86 assembler
 | 
			
		||||
    source is not used yet.
 | 
			
		||||
 | 
			
		||||
5)  Mesa Home Page
 | 
			
		||||
 | 
			
		||||
    You can get the source code and more information about Mesa from
 | 
			
		||||
       http://www.mesa3d.org/
 | 
			
		||||
 | 
			
		||||
    The OS/2 ports should be available from
 | 
			
		||||
       http://r350.ee.ntu.edu.tw/~hcchu/os2/ports 
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
Alexander Mai
 | 
			
		||||
st002279@hrzpub.tu-darmstadt.de
 | 
			
		||||
							
								
								
									
										35
									
								
								docs/README.OpenStep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								docs/README.OpenStep
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
This is a port of the GL and GLU libraries to NeXT/Apple object
 | 
			
		||||
orientated systems. As these systems have their own window handling
 | 
			
		||||
systems we simply use the offscreen rendering capability of Mesa
 | 
			
		||||
to generate bitmaps which may then be displayed by the application
 | 
			
		||||
with a View as required. Example pieces of code may be found in the
 | 
			
		||||
OpenStep directory.
 | 
			
		||||
 | 
			
		||||
Sadly there are now a proliferation of different system that we need to
 | 
			
		||||
support compilation for: The original NextStep system, The OpenStep
 | 
			
		||||
system, the Rhapsody/Mac OS X system and also the windows implementations
 | 
			
		||||
of the latter two systems. This version of the code has been compiled and
 | 
			
		||||
tested under the following architectures:
 | 
			
		||||
 | 
			
		||||
	NextStep 3.3 
 | 
			
		||||
	OpenStep 4.2
 | 
			
		||||
	Rhapsody DR2
 | 
			
		||||
	WebObjects for NT 3.5
 | 
			
		||||
	WebObjects for NT 4.0
 | 
			
		||||
 | 
			
		||||
All tests were done with Intel processors. Feedback on other systems would,
 | 
			
		||||
however, be appreciated !
 | 
			
		||||
 | 
			
		||||
On UNIX systems simply type "make openstep". Under Windows systems
 | 
			
		||||
with WebObjects run the "win32-openstep.sh" script from within the Bourne
 | 
			
		||||
shell provided with the development environment. In both cases this will
 | 
			
		||||
build the libraries and place them into the "lib" directory. Some examples
 | 
			
		||||
may be found in the OpenStep directory showing how to use the code in an
 | 
			
		||||
actual application (MesaView) as well as some command line demos.
 | 
			
		||||
 | 
			
		||||
The CC variable may be specified on the command line for doing such things
 | 
			
		||||
as building FFAT libraries or using alternative compilers to the standard 'cc'
 | 
			
		||||
e.g.  make CC='cc -arch m68k -arch i386' openstep" will build the libraries
 | 
			
		||||
with both intel and motorola architectures.
 | 
			
		||||
 | 
			
		||||
-Pete French. (pete@ohm.york.ac.uk) 7/6/1999
 | 
			
		||||
							
								
								
									
										208
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										208
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,208 @@
 | 
			
		||||
 | 
			
		||||
             Info on using Mesa 3.0 with Linux Quake I and Quake II
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Disclaimer
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
I am _not_ a Quake expert by any means.  I pretty much only run it to
 | 
			
		||||
test Mesa.  There have been a lot of questions about Linux Quake and
 | 
			
		||||
Mesa so I'm trying to provide some useful info here.  If this file
 | 
			
		||||
doesn't help you then you should look elsewhere for help.  The Mesa
 | 
			
		||||
mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup
 | 
			
		||||
might be good.
 | 
			
		||||
 | 
			
		||||
Again, all the information I have is in this file.  Please don't email
 | 
			
		||||
me with questions.
 | 
			
		||||
 | 
			
		||||
If you have information to contribute to this file please send it to
 | 
			
		||||
me at brianp@elastic.avid.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Linux Quake
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
You can get Linux Quake from http://www.idsoftware.com/
 | 
			
		||||
 | 
			
		||||
Quake I and II for Linux were tested with, and include, Mesa 2.6.  You
 | 
			
		||||
shouldn't have too many problems if you simply follow the instructions
 | 
			
		||||
in the Quake distribution.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
RedHat 5.0 Linux problems
 | 
			
		||||
-------------------------
 | 
			
		||||
 | 
			
		||||
RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas
 | 
			
		||||
previous RedHat and other Linux distributions use "libc5" for its
 | 
			
		||||
runtime C library.
 | 
			
		||||
 | 
			
		||||
Linux Quake I and II were compiled for libc5.  If you compile Mesa
 | 
			
		||||
on a RedHat 5.x system the resulting libMesaGL.so file will not work
 | 
			
		||||
with Linux Quake because of the different C runtime libraries.
 | 
			
		||||
The symptom of this is a segmentation fault soon after starting Quake.
 | 
			
		||||
 | 
			
		||||
If you want to use a newer version of Mesa (like 3.x) with Quake on
 | 
			
		||||
RedHat 5.x then read on.
 | 
			
		||||
 | 
			
		||||
The solution to the C library problem is to force Mesa to use libc5.
 | 
			
		||||
libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems.
 | 
			
		||||
 | 
			
		||||
Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following
 | 
			
		||||
info:
 | 
			
		||||
 | 
			
		||||
>   I only know what works on a RedHat 5.0 distribution. RH5 includes
 | 
			
		||||
> a full set of libraries for both libc5 and glibc. The loader ld.so
 | 
			
		||||
> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs
 | 
			
		||||
> linked against libc5 while it uses the glibc libraries in /lib and
 | 
			
		||||
> /usr/lib for programs linked against glibc.
 | 
			
		||||
> 
 | 
			
		||||
> Anyway I changed line 41 of mklib.glide to
 | 
			
		||||
>     GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib"
 | 
			
		||||
> 
 | 
			
		||||
> And I started quake2 up with a script like this
 | 
			
		||||
> #!/bin/csh
 | 
			
		||||
> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib
 | 
			
		||||
> setenv MESA_GLX_FX f
 | 
			
		||||
> ./quake2 +set vid_ref gl
 | 
			
		||||
> kbd_mode -a
 | 
			
		||||
> reset
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
I've already patched the mklib.glide file.  You'll have to start Quake
 | 
			
		||||
with the script shown above though.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**********************
 | 
			
		||||
 | 
			
		||||
Daryll Strauss writes:
 | 
			
		||||
 | 
			
		||||
Here's my thoughts on the problem. On a RH 5.x system, you can NOT build
 | 
			
		||||
a libc5 executable or library. Red Hat just doesn't include the right
 | 
			
		||||
stuff to do it.
 | 
			
		||||
 | 
			
		||||
Since Quake is a libc5 based application, you are in trouble. You need
 | 
			
		||||
libc5 libraries.
 | 
			
		||||
 | 
			
		||||
What can you do about it? Well there's a package called gcc5 that does
 | 
			
		||||
MOST of the right stuff to compile with libc5. (It brings back older
 | 
			
		||||
header files, makes appropriate symbolic links for libraries, and sets
 | 
			
		||||
up the compiler to use the correct directories) You can find gcc5 here: 
 | 
			
		||||
ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm
 | 
			
		||||
 | 
			
		||||
No, this isn't quite enough. There are still a few tricks to getting
 | 
			
		||||
Mesa to compile as a libc5 application. First you have to make sure that
 | 
			
		||||
every compile uses gcc5 instead of gcc. Second, in some cases the link
 | 
			
		||||
line actually lists -L/usr/lib which breaks gcc5 (because it forces you
 | 
			
		||||
to use the glibc version of things)
 | 
			
		||||
 | 
			
		||||
If you get all the stuff correctly compiled with gcc5 it should work.
 | 
			
		||||
I've run Mesa 3.0B6  and its demos in a window with my Rush on a Red Hat
 | 
			
		||||
5.1 system. It is a big hassle, but it can be done. I've only made Quake
 | 
			
		||||
segfault, but I think that's from my libRush using the wrong libc. 
 | 
			
		||||
 | 
			
		||||
Yes, mixing libc5 and glibc is a major pain. I've been working to get
 | 
			
		||||
all my libraries compiling correctly with this setup. Someone should
 | 
			
		||||
make an RPM out of it and feed changes back to Brian once they get it
 | 
			
		||||
all working. If no one else has done so by the time I get the rest of my
 | 
			
		||||
stuff straightened out, I'll try to do it myself.
 | 
			
		||||
 | 
			
		||||
							- |Daryll
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*********************
 | 
			
		||||
 | 
			
		||||
David Bucciarelli (tech.hmw@plus.it) writes:
 | 
			
		||||
 | 
			
		||||
I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is
 | 
			
		||||
working fine for me.  I had only to make a small change to the
 | 
			
		||||
Mesa-3.0/mklib.glide file, from:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    GLIDELIBS="-L/usr/local/glide/lib -lglide2x
 | 
			
		||||
-L/usr/i486-linux-libc5/lib -lm"
 | 
			
		||||
 | 
			
		||||
to:
 | 
			
		||||
 | 
			
		||||
    GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x"
 | 
			
		||||
 | 
			
		||||
and to make two symbolic links:
 | 
			
		||||
 | 
			
		||||
[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2
 | 
			
		||||
[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2
 | 
			
		||||
 | 
			
		||||
I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it
 | 
			
		||||
includes also the Glide for the libc5). I'm not using the /dev/3Dfx and
 | 
			
		||||
running QuakeII as root with the following env. var:
 | 
			
		||||
 | 
			
		||||
export
 | 
			
		||||
LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib
 | 
			
		||||
 | 
			
		||||
I think that all problems are related to the glibc, Quake will never
 | 
			
		||||
work if you get the following output:
 | 
			
		||||
 | 
			
		||||
[david@localhost Mesa]$ ldd lib/libMesaGL.so
 | 
			
		||||
        libglide2x.so => /usr/lib/libglide2x.so (0x400f8000)
 | 
			
		||||
        libm.so.6 => /lib/libm.so.6 (0x40244000)
 | 
			
		||||
        libc.so.6 => /lib/libc.so.6 (0x4025d000)
 | 
			
		||||
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
 | 
			
		||||
 | 
			
		||||
You must get the following outputs:
 | 
			
		||||
 | 
			
		||||
[david@localhost Mesa]# ldd lib/libMesaGL.so
 | 
			
		||||
        libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
 | 
			
		||||
(0x400f3000)
 | 
			
		||||
 | 
			
		||||
[root@localhost quake2]# ldd quake2
 | 
			
		||||
        libdl.so.1 => /lib/libdl.so.1 (0x40005000)
 | 
			
		||||
        libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000)
 | 
			
		||||
        libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000)
 | 
			
		||||
 | 
			
		||||
[root@localhost quake2]# ldd ref_gl.so
 | 
			
		||||
        libMesaGL.so.2 =>
 | 
			
		||||
/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000)
 | 
			
		||||
        libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
 | 
			
		||||
(0x401d9000)
 | 
			
		||||
        libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6
 | 
			
		||||
(0x40324000)
 | 
			
		||||
        libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6
 | 
			
		||||
(0x403b7000)
 | 
			
		||||
        libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1
 | 
			
		||||
(0x403c1000)
 | 
			
		||||
        libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000)
 | 
			
		||||
        libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
***********************
 | 
			
		||||
 | 
			
		||||
Steve Davies (steve@one47.demon.co.uk) writes:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Try using:
 | 
			
		||||
 | 
			
		||||
    export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
 | 
			
		||||
    ./quake2 +set vid_ref gl
 | 
			
		||||
 | 
			
		||||
to start the game... Works for me, but assumes that you have the
 | 
			
		||||
compatability libc5 RPMs installed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
***************************
 | 
			
		||||
 | 
			
		||||
WWW resources - you may find additional Linux Quake help at these URLs:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
http://quake.medina.net/howto
 | 
			
		||||
 | 
			
		||||
http://webpages.mr.net/bobz
 | 
			
		||||
 | 
			
		||||
http://www.linuxgames.com/quake2/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
$Id: README.QUAKE,v 1.3 1998/08/23 15:26:26 brianp Exp $
 | 
			
		||||
							
								
								
									
										66
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
 | 
			
		||||
NOTE: this information is obsolete for Mesa 3.1.  Due to the big
 | 
			
		||||
changes in the Mesa code, the threads support is out of date.
 | 
			
		||||
Someone will have to review/update it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Mesa Threads README
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Mesa 2.6 is the starting point for an effort to make Mesa 
 | 
			
		||||
safe in multithreaded applications.  The files src/mthreads.c and
 | 
			
		||||
src/mthreads.h provide a platform independent threads API which Mesa
 | 
			
		||||
uses internally to provide thread-safe operation.  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).
 | 
			
		||||
 | 
			
		||||
Here's the current list of targets which enable multithreaded handling
 | 
			
		||||
in Mesa:
 | 
			
		||||
 | 
			
		||||
  linux-386-pthread    for Linux w/ Intel assembly and linuxthreads
 | 
			
		||||
  sunos5-thread        for Suns with SunOS 5.x, using Solaris threads
 | 
			
		||||
  sunos5-pthread       for Suns with SunOS 5.[56] using POSIX threads
 | 
			
		||||
  sunos5-gcc-thread    for Suns with SunOS 5.x and GCC, using Solaris threads
 | 
			
		||||
  sunos5-gcc-pthread   for Suns with SunOS 5.[56] and GCC, using POSIX threads
 | 
			
		||||
 | 
			
		||||
In order to use Mesa with a multithreaded application, Mesa must be compiled
 | 
			
		||||
using one of the thread-enabled configurations.  In cases where a platform
 | 
			
		||||
supports multiple APIs which are acceptable to Mesa, Mesa must be built
 | 
			
		||||
with the same threads API as the application in order for things to work
 | 
			
		||||
properly.  For example, Solaris >= 2.5 support both POSIX threads and
 | 
			
		||||
Sun's own threads API.  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.
 | 
			
		||||
 | 
			
		||||
Since this effort is still very much a work in progress, not all 
 | 
			
		||||
aspects of Mesa are thread safe.  As of this release (Mesa 2.6) only the
 | 
			
		||||
osmesa drivers have been made MT-safe.  As work continues, other drivers
 | 
			
		||||
such as the X11 drivers will also incorporate MT-safe features.
 | 
			
		||||
 | 
			
		||||
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 develop MT-safe Mesa, please send email
 | 
			
		||||
to j.stone@acm.org and poliwoda@volumegraphics.com who are the two most
 | 
			
		||||
directly involved in this effort currently.  Similarly, if you have problems
 | 
			
		||||
using the MT-safe builds of Mesa, please send us comments/bugs etc.
 | 
			
		||||
 | 
			
		||||
Future versions of Mesa will include more extensive documentation related
 | 
			
		||||
to multithreading.  This is the first release of our work, so please bear
 | 
			
		||||
with us.
 | 
			
		||||
 | 
			
		||||
Regards,
 | 
			
		||||
  John Stone           -- j.stone@acm.org  johns@cs.umr.edu
 | 
			
		||||
  Christoph Poliwoda   -- poliwoda@volumegraphics.com
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -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, MPEG-2, MPEG-4,
 | 
			
		||||
AVC, and VC-1.
 | 
			
		||||
 | 
			
		||||
For MPEG-2 Encoding Products ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
 | 
			
		||||
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD FOR ENCODING VIDEO
 | 
			
		||||
INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY PROHIBITED WITHOUT A LICENSE
 | 
			
		||||
UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSES IS
 | 
			
		||||
AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers Green Circle, Suite 400E,
 | 
			
		||||
Greenwood Village, Colorado 80111 U.S.A.
 | 
			
		||||
 | 
			
		||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
 | 
			
		||||
KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 | 
			
		||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 | 
			
		||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
 | 
			
		||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
 | 
			
		||||
COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
 | 
			
		||||
ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied
 | 
			
		||||
warranties, so the above exclusion may not apply to You.
 | 
			
		||||
 | 
			
		||||
LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT,
 | 
			
		||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
 | 
			
		||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
 | 
			
		||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You
 | 
			
		||||
for all damages, losses, and causes of action (whether in contract, tort
 | 
			
		||||
(including negligence) or otherwise) exceed the amount of $100 USD.  You agree
 | 
			
		||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
 | 
			
		||||
directors, officers, employees, affiliates or agents from and against any and
 | 
			
		||||
all loss, damage, liability and other expenses (including reasonable
 | 
			
		||||
attorneys' fees), resulting from Your use of the Software or violation of the
 | 
			
		||||
terms and conditions of this Agreement.
 | 
			
		||||
 | 
			
		||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
 | 
			
		||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
 | 
			
		||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
 | 
			
		||||
its successor.  Use of the Software by the Government constitutes
 | 
			
		||||
acknowledgement of AMD's proprietary rights in them.
 | 
			
		||||
 | 
			
		||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
 | 
			
		||||
stated in the Software License Agreement.
 | 
			
		||||
@@ -1,43 +0,0 @@
 | 
			
		||||
The software may implement third party technologies (e.g. third party
 | 
			
		||||
libraries) that are not licensed to you by AMD and for which you may need
 | 
			
		||||
to obtain licenses from other parties.  Unless explicitly stated otherwise,
 | 
			
		||||
these third party technologies are not licensed hereunder.  Such third
 | 
			
		||||
party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4,
 | 
			
		||||
AVC, and VC-1.  
 | 
			
		||||
 | 
			
		||||
For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
 | 
			
		||||
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY
 | 
			
		||||
PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT
 | 
			
		||||
PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers
 | 
			
		||||
Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A.
 | 
			
		||||
 | 
			
		||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
 | 
			
		||||
KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
 | 
			
		||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 | 
			
		||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
 | 
			
		||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
 | 
			
		||||
COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
 | 
			
		||||
ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied
 | 
			
		||||
warranties, so the above exclusion may not apply to You.
 | 
			
		||||
 | 
			
		||||
LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT,
 | 
			
		||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
 | 
			
		||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
 | 
			
		||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You
 | 
			
		||||
for all damages, losses, and causes of action (whether in contract, tort
 | 
			
		||||
(including negligence) or otherwise) exceed the amount of $100 USD.  You agree
 | 
			
		||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
 | 
			
		||||
directors, officers, employees, affiliates or agents from and against any and
 | 
			
		||||
all loss, damage, liability and other expenses (including reasonable
 | 
			
		||||
attorneys' fees), resulting from Your use of the Software or violation of the
 | 
			
		||||
terms and conditions of this Agreement.
 | 
			
		||||
 | 
			
		||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
 | 
			
		||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
 | 
			
		||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
 | 
			
		||||
its successor.  Use of the Software by the Government constitutes
 | 
			
		||||
acknowledgement of AMD's proprietary rights in them.
 | 
			
		||||
 | 
			
		||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
 | 
			
		||||
stated in the Software License Agreement.
 | 
			
		||||
							
								
								
									
										28
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
 | 
			
		||||
VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but
 | 
			
		||||
probably also works for other versions.
 | 
			
		||||
 | 
			
		||||
At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB,
 | 
			
		||||
LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the
 | 
			
		||||
directory [.DEMOS] can be build.
 | 
			
		||||
However, feel free to create the missing "decrip.mms-files" in the other
 | 
			
		||||
directories.
 | 
			
		||||
 | 
			
		||||
 The make files were tested
 | 
			
		||||
using the DIGITAL make utility called MMS.  There is also a public domain
 | 
			
		||||
clone available (MMK) and I  think, but it is not tested, that this
 | 
			
		||||
utility will give (hardly) any problem.
 | 
			
		||||
 | 
			
		||||
To make everything just type MMS (or MMK) in the main directory of
 | 
			
		||||
mesagl.  For MMS the deafult makefile is called descrip.mms, and
 | 
			
		||||
that is what I have called it.  I included alse some config files,
 | 
			
		||||
all having mms somewhere in the name which all the makefiles need
 | 
			
		||||
(just as your unix makefiles).
 | 
			
		||||
 | 
			
		||||
On Alpha platforms at default a sharable images for the libraries are created.
 | 
			
		||||
To get a static library make it by typing MMS/MACRO=(NOSHARE=1).
 | 
			
		||||
On VAX platforms only static libraries can be build.
 | 
			
		||||
 | 
			
		||||
@@ -1,68 +1,623 @@
 | 
			
		||||
File: docs/README.WIN32
 | 
			
		||||
 | 
			
		||||
Last updated: 21 June 2013
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Quick Start
 | 
			
		||||
----- -----
 | 
			
		||||
 | 
			
		||||
Windows drivers are build with SCons.  Makefiles or Visual Studio projects are
 | 
			
		||||
no longer shipped or supported.
 | 
			
		||||
 | 
			
		||||
Run
 | 
			
		||||
 | 
			
		||||
  scons osmesa mesagdi
 | 
			
		||||
 | 
			
		||||
to build classic mesa Windows GDI drivers; or
 | 
			
		||||
 | 
			
		||||
  scons libgl-gdi
 | 
			
		||||
 | 
			
		||||
to build gallium based GDI driver.
 | 
			
		||||
 | 
			
		||||
This will work both with MSVS or Mingw.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Windows Drivers
 | 
			
		||||
------- -------
 | 
			
		||||
 | 
			
		||||
At this time, only the gallium GDI driver is known to work.
 | 
			
		||||
 | 
			
		||||
Source code also exists in the tree for other drivers in
 | 
			
		||||
src/mesa/drivers/windows, but the status of this code is unknown.
 | 
			
		||||
 | 
			
		||||
Recipe
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
Building on windows requires several open-source packages. These are
 | 
			
		||||
steps that work as of this writing.
 | 
			
		||||
 | 
			
		||||
- install python 2.7
 | 
			
		||||
- install scons (latest)
 | 
			
		||||
- install mingw, flex, and bison
 | 
			
		||||
- install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
 | 
			
		||||
  get pywin32-218.4.win-amd64-py2.7.exe
 | 
			
		||||
- install git
 | 
			
		||||
- download mesa from git
 | 
			
		||||
  see http://www.mesa3d.org/repository.html
 | 
			
		||||
- run scons
 | 
			
		||||
 | 
			
		||||
General
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
After building, you can copy the above DLL files to a place in your
 | 
			
		||||
PATH such as $SystemRoot/SYSTEM32.  If you don't like putting things
 | 
			
		||||
in a system directory, place them in the same directory as the
 | 
			
		||||
executable(s).  Be careful about accidentially overwriting files of
 | 
			
		||||
the same name in the SYSTEM32 directory.
 | 
			
		||||
 | 
			
		||||
The DLL files are built so that the external entry points use the
 | 
			
		||||
stdcall calling convention.
 | 
			
		||||
 | 
			
		||||
Static LIB files are not built.  The LIB files that are built with are
 | 
			
		||||
the linker import files associated with the DLL files.
 | 
			
		||||
 | 
			
		||||
The si-glu sources are used to build the GLU libs.  This was done
 | 
			
		||||
mainly to get the better tessellator code.
 | 
			
		||||
 | 
			
		||||
If you have a Windows-related build problem or question, please post
 | 
			
		||||
to the mesa-dev or mesa-users list.
 | 
			
		||||
 | 
			
		||||
    Mesa/Readme.win32
 | 
			
		||||
 | 
			
		||||
    Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com
 | 
			
		||||
 | 
			
		||||
*** What's New
 | 
			
		||||
 | 
			
		||||
- Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of
 | 
			
		||||
  Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual
 | 
			
		||||
  executions tests with minimum requisite results (aka: things looked like
 | 
			
		||||
  I expected them to).
 | 
			
		||||
 | 
			
		||||
  What did you expect, complete regression testing maybe?
 | 
			
		||||
 | 
			
		||||
- NASM build support. Any file in the project coded as a .S file will
 | 
			
		||||
  automatically be recognized and built as a NASM-source assember file.
 | 
			
		||||
 | 
			
		||||
  To enable building using NASM, set the environment variable NASM to
 | 
			
		||||
  indicate that command to execute to run nasm on a file. If NASM is in
 | 
			
		||||
  your command search path then all this needs be set to is 'nasmw' -
 | 
			
		||||
  otherwise you will need to include the complete drive and directory path.
 | 
			
		||||
 | 
			
		||||
  NASM may be retrieved here: http://www.web-sites.co.uk/nasm/
 | 
			
		||||
 | 
			
		||||
- DevStudio projects suspended for compatability reasons: projects modified
 | 
			
		||||
  by DevStudio 6 are not compatible with DevStudio 5.
 | 
			
		||||
 | 
			
		||||
  These will slowly be rebuilt and put into CVS as I can.
 | 
			
		||||
 | 
			
		||||
- Build environment change: The Glide SDK is no longer assumed to be in
 | 
			
		||||
  the global INCLUDE/LIB environment vars, it is required that you set the
 | 
			
		||||
  value 'GLIDE2X' as either an environment variable pointing to your Glide
 | 
			
		||||
  SDK install directory or that you configure that as a build option to
 | 
			
		||||
  nmake.exe when building fxmesagl32.  Examples:
 | 
			
		||||
 | 
			
		||||
    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32
 | 
			
		||||
 | 
			
		||||
          <or>
 | 
			
		||||
 | 
			
		||||
    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx
 | 
			
		||||
 | 
			
		||||
          <or>
 | 
			
		||||
 | 
			
		||||
    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos
 | 
			
		||||
 | 
			
		||||
  The DevStudio workspace files for 3Dfx OpenGL require the definition of
 | 
			
		||||
  GLIDE2SDK as an environment variable pointing to where your copy of the
 | 
			
		||||
  Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do
 | 
			
		||||
  so (change the directories to match):
 | 
			
		||||
 | 
			
		||||
       SET GLIDE2SDK=G:\SDK\GLIDE2X
 | 
			
		||||
 | 
			
		||||
*** Legalese
 | 
			
		||||
 | 
			
		||||
These build files are provided as-is and are submitted to be included with
 | 
			
		||||
the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian
 | 
			
		||||
Paul. These project build files are free software; you can redistribute it
 | 
			
		||||
and/or modify it under the terms of the GNU Library General Public License
 | 
			
		||||
as published by the Free Software Foundation; either version 2 of the
 | 
			
		||||
License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
These project files are distributed in the hope that they 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.
 | 
			
		||||
 | 
			
		||||
*** Maintenance Responsiblity and Technical Support
 | 
			
		||||
 | 
			
		||||
While these files are now part of the Mesa core distribution please do NOT
 | 
			
		||||
contact Mr. Paul for help with them if you encounter problems as he can't
 | 
			
		||||
help you (currently).  I will, however, attempt my straightforward best in
 | 
			
		||||
assisting anyone with using these files on their system.  I can NOT
 | 
			
		||||
guarantee instant responses owing to other responsiblities, but I do try
 | 
			
		||||
dang hard to answer any mail w/in 24 hours.  I may be contacted at the
 | 
			
		||||
above email address for the forseeable future.
 | 
			
		||||
 | 
			
		||||
-Ted
 | 
			
		||||
mailto://tjump@tertius.com
 | 
			
		||||
http://www.tertius.com/tjump
 | 
			
		||||
 | 
			
		||||
*** General Information
 | 
			
		||||
 | 
			
		||||
These build files facilitate convenient building of many variants of Mesa,
 | 
			
		||||
both as static link libraries (including mesaglu) and as dynamic link
 | 
			
		||||
libraries that in some cases may be used as "drop-in" replacements for
 | 
			
		||||
OpenGL32.DLL on both Windows95 and Windows NT.
 | 
			
		||||
 | 
			
		||||
The construction of the Win32 command-line build files and projects has
 | 
			
		||||
been something of a pet project of mine, and is based upon my own
 | 
			
		||||
"standard" Win32 build environment as supplied by the "nmake.mif" file.
 | 
			
		||||
They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows
 | 
			
		||||
NT 5.0 beta 1.  The libraries that they generated have been tested (via the
 | 
			
		||||
demo programs) in a *limited* fashion on the above three systems, including
 | 
			
		||||
the 3Dfx versions.
 | 
			
		||||
 | 
			
		||||
The reason I went with command-line build environment instead of the more
 | 
			
		||||
convenient IDE-based project files is for two reasons: 1. These appear to
 | 
			
		||||
have some amount of portability between versions (the nmake syntax hasn't
 | 
			
		||||
changed much since Microsoft C 7.0) while the IDE project files seem to
 | 
			
		||||
change drastically each version. and 2. These are readable with any ascii
 | 
			
		||||
editor and such are better self-documentation of the file relationships for
 | 
			
		||||
more people such that it will facilitate supporting other Win32 compilers.
 | 
			
		||||
 | 
			
		||||
While these files only deal with building for x86 targeted code it *should*
 | 
			
		||||
be possible to add the necessary logic to them to build for the other MSVC
 | 
			
		||||
supported CPU targets, I simply have no hardware to test them on nor the
 | 
			
		||||
alternative compilers to build with.
 | 
			
		||||
 | 
			
		||||
*** Prerequisites for use
 | 
			
		||||
 | 
			
		||||
1. You must have a 32-bit Microsoft compiler installed. I have tested
 | 
			
		||||
this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor
 | 
			
		||||
(possibly no) modification to the nmake.mak and nmake.mif files this
 | 
			
		||||
sequence should work on Visual C 2.0 also. The workspace files
 | 
			
		||||
(mesalib.dsw and mesademos-*.dsw) and their included project files
 | 
			
		||||
(*.dsp) are specific to the DevStudio IDE - I have made no attempt at
 | 
			
		||||
building a VC4 IDE project set as I do not use that any more.  Note
 | 
			
		||||
that the VC workspace files NO LONGER use NORE are dependant upon the
 | 
			
		||||
nmake.mak and nmake.mif files for construction of definition (*.DEF)
 | 
			
		||||
and resource (*.RC) files.
 | 
			
		||||
 | 
			
		||||
*** Visual C 4.x Users Warning ****
 | 
			
		||||
 | 
			
		||||
Note that early editions of VC4 do NOT have header files current enough
 | 
			
		||||
for use building this code base. If you are using VC4 you will either need
 | 
			
		||||
to get an update to version 4.2 *or* you may download the Platform SDK
 | 
			
		||||
directly from Microsoft's web site (www.microsoft.com) and update your
 | 
			
		||||
build environment that way.
 | 
			
		||||
 | 
			
		||||
*** Visual C 4.x Users Warning ****
 | 
			
		||||
 | 
			
		||||
2. You must have the PATH, INCLUDE, and LIB environment variables set
 | 
			
		||||
properly. With VC5 you can easily get this by executing the VCVARS32.BAT
 | 
			
		||||
file that was created for you upon installation. It is found in the
 | 
			
		||||
DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides
 | 
			
		||||
a similar batch file in it's BIN directory also.
 | 
			
		||||
 | 
			
		||||
3. (optional) If you're going to build for 3Dfx/Voodoo you will need to
 | 
			
		||||
have previously installed the Glide SDK version 2.3 or later, if I
 | 
			
		||||
recall. This may be retrieved from www.3dfx.com for no money and some
 | 
			
		||||
download time. ;-) These build files assume that you have the Glide SDK
 | 
			
		||||
added to the respective environment variables (LIB and INCLUDE).
 | 
			
		||||
 | 
			
		||||
4. (optional) If you're going to build for S3/Virge you will need the S3
 | 
			
		||||
Developers Toolkit which may be downloaded from www.s3.com for the price of
 | 
			
		||||
registering on-line and some time. NOTE: I can build the s3mesa.dll file to
 | 
			
		||||
completion, however the compilation of s3mesa.c currently generates a large
 | 
			
		||||
amount of compiler warnings and between that and the fact that I can not at
 | 
			
		||||
all test it I can make no claims to it's ability to execute.  Again, like
 | 
			
		||||
the 3Dfx version before this, these build files assume you have the S3Dtk H
 | 
			
		||||
and LIB files in the path of their respective environment variables.
 | 
			
		||||
Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,
 | 
			
		||||
which should be able to build the s3mesa code base if it weren't for updates
 | 
			
		||||
being required in the S3 DD code support (Mesa-3.0/src/s3 directory).
 | 
			
		||||
 | 
			
		||||
I advise putting any include and lib files for secondary toolkits (Glide,
 | 
			
		||||
S3Tk, whatever) in their respective environment variables *before* the
 | 
			
		||||
Microsoft-assigned default values.
 | 
			
		||||
 | 
			
		||||
*** FAQ: Frequenty Asked Questions and Other Important Information ***
 | 
			
		||||
 | 
			
		||||
- When running the 3Dfx demos under Windows NT, they crash on exit, what's
 | 
			
		||||
  up?
 | 
			
		||||
 | 
			
		||||
  This is apparently a problem in Glide itself. The workaround is to go to
 | 
			
		||||
  your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to
 | 
			
		||||
  FXOEM2X.DL_ to prevent Glide from loading and initializing it upon
 | 
			
		||||
  startup.  This is known to be an issue with cards that do not have "TV
 | 
			
		||||
  out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx
 | 
			
		||||
  Reference boards, all using 3Dfx Reference Drivers version 2.53. Other
 | 
			
		||||
  hardware/driver combinations will also likely exhibit this behavior.
 | 
			
		||||
 | 
			
		||||
- I'm having a problem building Mesa for static library linking.
 | 
			
		||||
 | 
			
		||||
  This was caused by some incomplete testing on my part, and a fix is now
 | 
			
		||||
  available in the form of an add-on to the base Mesa 3.0 release.  The
 | 
			
		||||
  file to get is:
 | 
			
		||||
 | 
			
		||||
       via FTP download from: iris.ssec.wisc.edu
 | 
			
		||||
         you want to go here: /pub/Mesa/patches_to_3.0/
 | 
			
		||||
        you want to get file: Mesa-3.0-w32-static-fixes.tar.gz
 | 
			
		||||
 | 
			
		||||
  This required a minor addition to INCLUDE/GL for a clean solution, the
 | 
			
		||||
  file "include/gl/mesa_wgl.h" is automatically included by
 | 
			
		||||
  "include/gl/gl.h" when a Win32 non-DLL build is in progress to provide
 | 
			
		||||
  prototypes for the various wgl functions.
 | 
			
		||||
 | 
			
		||||
  The only remaining hitch in this setup is that the 3Dfx build is not yet
 | 
			
		||||
  running as a static build, because of problems with conflicts in
 | 
			
		||||
  existance of the various GDI functions like ChoosePixelFormat,
 | 
			
		||||
  etc. *sigh*
 | 
			
		||||
 | 
			
		||||
  Anyway, the "allstatic" target now works as expected and builds all
 | 
			
		||||
  book/sample/demos programs to boot. ;^)
 | 
			
		||||
 | 
			
		||||
- How do I get fxMesa to render in a window on the desktop instead of only
 | 
			
		||||
  full-screen?
 | 
			
		||||
 | 
			
		||||
  Use the Microsoft Windows fxMesa-in-a-window hack!
 | 
			
		||||
 | 
			
		||||
  Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or
 | 
			
		||||
  Voodoo2 hardware into a window on the desktop then all you need to do is
 | 
			
		||||
  set the MESA_WGL_FX environment variable to anything other than
 | 
			
		||||
  "fullscreen" and it will render into a window.  If you wish to go
 | 
			
		||||
  fullscreen then you only need to NOT have the environment variable, or
 | 
			
		||||
  have it set to "fullscreen".  You may also switch at runtime between
 | 
			
		||||
  fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard
 | 
			
		||||
  (unless the application using Mesa does something with those keystrokes,
 | 
			
		||||
  of course).
 | 
			
		||||
 | 
			
		||||
  As of 8/13/98 this should be running a LOT better for more people as a
 | 
			
		||||
  low-compatability item was cleaned up which prevented it from working on
 | 
			
		||||
  many (most?) display drivers under Windows 9x.
 | 
			
		||||
 | 
			
		||||
- I have my 3Dfx card hooked to it's own monitor and I want the output to
 | 
			
		||||
  stay on even if I switch to another program, is this possible?
 | 
			
		||||
 | 
			
		||||
  If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa
 | 
			
		||||
  will never disable the Voodoo output on a Voodoo1 or Voodoo2 display
 | 
			
		||||
  regardless of whether the fxMesa application is "current" or not. This
 | 
			
		||||
  works regardless of whether it's rendering using the window hack
 | 
			
		||||
  mentioned above or not.
 | 
			
		||||
 | 
			
		||||
- I want to run the Mesa demos on my Intel740 card using it's own OpenGL
 | 
			
		||||
  acceleration, how do I do this?
 | 
			
		||||
 | 
			
		||||
  Build GLUT standalone for use with system OpenGL and GLU drivers!
 | 
			
		||||
 | 
			
		||||
  The Command-line project supports building all test/demo programs against
 | 
			
		||||
  these drivers also! This allows you full use of GLUT on Windows using
 | 
			
		||||
  hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"
 | 
			
		||||
  directory of which only two programs will not run on "standard"
 | 
			
		||||
  opengl. Note that there are a few of the sample programs which will NOT
 | 
			
		||||
  work without Mesa as they directly call into Mesa instead of using the
 | 
			
		||||
  extension mechanism.
 | 
			
		||||
 | 
			
		||||
*** Included programs that exhibit unfortunate or bad behavior
 | 
			
		||||
 | 
			
		||||
- demos/bounce - doesn't run on high-colors screens?  It's requesting an
 | 
			
		||||
  INDEX display from GLUT and that fails on my true-color desktop. Changing
 | 
			
		||||
  this to _RGB let's the program work, but it doesn't display
 | 
			
		||||
  properly. This is probably just an idiosyncracy of my machine though, as
 | 
			
		||||
  if I test the program using GLUT for System OpenGL on my Intel740 OpenGL
 | 
			
		||||
  accelerated machine it's just hunky-dory.
 | 
			
		||||
 | 
			
		||||
- demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)
 | 
			
		||||
 | 
			
		||||
- demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly
 | 
			
		||||
  if the Close box on the window frame is pressed with the mouse. Go figure.
 | 
			
		||||
 | 
			
		||||
- book/aaindex - doesn't run, can't get pixel format, because it wants an
 | 
			
		||||
  INDEX display maybe (but is okay on my Intel740 machine)?
 | 
			
		||||
 | 
			
		||||
- most of the book/* demos don't respond to ESC being pressed.
 | 
			
		||||
 | 
			
		||||
- 3dfx/demos/* - all demos run, however they all crash on exit. I've traced
 | 
			
		||||
  this so far as to determine the call it's happening with. The crash comes
 | 
			
		||||
  from within Glide during the processing of the grGlideShutdown() call, as
 | 
			
		||||
  in invalid memory reference exception. I'm wondering if this is because
 | 
			
		||||
  of some state or processing not being completed before the call. Dunno,
 | 
			
		||||
  but putting grSstIdle() in just before grGlideShutdown() does NOT fix the
 | 
			
		||||
  problem.
 | 
			
		||||
 | 
			
		||||
- 3dfx/demos/tunnel2 - does not run on my system even with SLI mode
 | 
			
		||||
  disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?
 | 
			
		||||
 | 
			
		||||
*** Important Notes and Changing Default values
 | 
			
		||||
 | 
			
		||||
- The optimizer settings have been manually reworked in both command line
 | 
			
		||||
  and DevStudio IDE files to hopefully prevent possible irrational code on
 | 
			
		||||
  the part of the code generator.  Formerly, it was configured for "/Ox",
 | 
			
		||||
  now it is configured for safer handling at a slight potential performance
 | 
			
		||||
  cost. This may not be required for Visual Studio 6 but I can't test that
 | 
			
		||||
  (yet).
 | 
			
		||||
 | 
			
		||||
- These files build with the code targeted for Pentium processors and
 | 
			
		||||
  8-byte structure padding.
 | 
			
		||||
 | 
			
		||||
- The IDE-built programs seem to be "happier" in that the command line
 | 
			
		||||
  build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty
 | 
			
		||||
  much everything may be built with either interface.
 | 
			
		||||
 | 
			
		||||
- The currently configured Mesa version is 3.1, and MesaDemos version is
 | 
			
		||||
  the same. To change this permanently you will need to edit NMAKE.MAK and
 | 
			
		||||
  change the lines that look like this (they start o/a line 116):
 | 
			
		||||
 | 
			
		||||
    # Currently, Mesa is at rev 3.1 ...
 | 
			
		||||
    #
 | 
			
		||||
    !IF "$(MESAVER)" == ""
 | 
			
		||||
    MESAVER=3.1
 | 
			
		||||
    !ENDIF
 | 
			
		||||
 | 
			
		||||
    # used in building all of the resource files for the Mesa DLLs
 | 
			
		||||
    #
 | 
			
		||||
    !IF "$(MESAFILEVER)" == ""
 | 
			
		||||
    MESAFILEVER=3,1,0,0
 | 
			
		||||
    !ENDIF
 | 
			
		||||
 | 
			
		||||
- Currently the build files are configured to be used from a Win32
 | 
			
		||||
  directory that is included inside the main Mesa-3.1 heirarchy.
 | 
			
		||||
 | 
			
		||||
- The build files are smart enough to find the files for the core lib, glu,
 | 
			
		||||
  glut, and the various demo programs if they are unpacked in the current
 | 
			
		||||
  Mesa-3.1 heirarchy, like this:
 | 
			
		||||
 | 
			
		||||
    \Mesa-3.1
 | 
			
		||||
    \Mesa-3.1\src
 | 
			
		||||
    \Mesa-3.1\src-glu
 | 
			
		||||
    \Mesa-3.1\src-glut
 | 
			
		||||
    \Mesa-3.1\Win32
 | 
			
		||||
    \Mesa-3.1\samples
 | 
			
		||||
    \Mesa-3.1\demos
 | 
			
		||||
    \Mesa-3.1\book
 | 
			
		||||
    \Mesa-3.1\3Dfx\demos
 | 
			
		||||
 | 
			
		||||
    ... should work.  This arose because my initial build tests for the
 | 
			
		||||
    demo files were done before MesaDemos 2.6 had been released.
 | 
			
		||||
 | 
			
		||||
- With the exception of the static link libraries generated by this file
 | 
			
		||||
  set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are
 | 
			
		||||
  built against the "Multithreaded DLL" runtime - this means that they
 | 
			
		||||
  require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.
 | 
			
		||||
 | 
			
		||||
  ** CHANGED 8/11/98 ***
 | 
			
		||||
 | 
			
		||||
  Note also that the demos are all built aginst the "OpenGL32, GLU32, and
 | 
			
		||||
  GLUT32" and as such they are fairly agnostic wrt: building against Mesa
 | 
			
		||||
  for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.
 | 
			
		||||
 | 
			
		||||
  If you want to build them for use on your system and your display card
 | 
			
		||||
  provides full OpenGL acceleration (Permedia, Intel740, Intergraph,
 | 
			
		||||
  whatever) then you only need to build GLUT prior to building any of the
 | 
			
		||||
  demo programs. For convenience, the GLUT project is included in each of
 | 
			
		||||
  the demo projects Workspace files for the DevStudio IDE builds BUT it is
 | 
			
		||||
  not automatically built - you still need to build it first manually.
 | 
			
		||||
 | 
			
		||||
  Note that if you have GLUT already installed on your system (gl/glut.h in
 | 
			
		||||
  yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL
 | 
			
		||||
  in your PATH) then you do NOT need to build GLUT prior to the test
 | 
			
		||||
  programs.
 | 
			
		||||
 | 
			
		||||
- The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs
 | 
			
		||||
  (mostly) fine on my PC (take that for what you want it)...
 | 
			
		||||
 | 
			
		||||
  ** CHANGED  8/11/98 ***
 | 
			
		||||
 | 
			
		||||
  There is still something going on that causes Glide to crash on shutdown,
 | 
			
		||||
  when I run fxMesa under Windows NT, however it does not appear to occur
 | 
			
		||||
  under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*
 | 
			
		||||
 | 
			
		||||
- I can not test the S3 build as I have no machines available with Virge
 | 
			
		||||
  based display cards.
 | 
			
		||||
 | 
			
		||||
- The multithreaded test code is *not* built as it requires pthreads and I
 | 
			
		||||
  have as of yet spent not time trying to get that running. The latest word
 | 
			
		||||
  that I saw WRT threading support on win32 was that they are intending to
 | 
			
		||||
  support it natively within Win32 - so I'm waiting it out until they get
 | 
			
		||||
  it done.
 | 
			
		||||
 | 
			
		||||
- Similarly, the 'xdemos' are not currently built because I haven't gotten
 | 
			
		||||
  around to building the client libs for native win32 and getting it all
 | 
			
		||||
  setup for use.
 | 
			
		||||
 | 
			
		||||
*** Output Files
 | 
			
		||||
 | 
			
		||||
All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,
 | 
			
		||||
with the exception of the fxMesaGL32 build which is placed in
 | 
			
		||||
Mesa-3./lib/FX and the executable images which are placed in their source
 | 
			
		||||
directories.
 | 
			
		||||
 | 
			
		||||
To be able to execute the various test programs, you will need to copy the
 | 
			
		||||
requisite DLL files into the same directory as the EXE files. Note that
 | 
			
		||||
most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -
 | 
			
		||||
just very slowly. The two programs which are hard-linked with the FX build
 | 
			
		||||
and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"
 | 
			
		||||
directly instead of via the extensions mechanism and "tunnel2" which uses
 | 
			
		||||
"fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards
 | 
			
		||||
installed in one system. Likewise, "paltex" directly uses the
 | 
			
		||||
"glColorTableEXT" extension and thus may not run on anything except
 | 
			
		||||
Mesa. If these applications used the proper extension mechanism they could
 | 
			
		||||
then be used on more than "just" fxMesa to good effect (for example, the
 | 
			
		||||
rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test
 | 
			
		||||
machine) under WinNT.
 | 
			
		||||
 | 
			
		||||
Because I'm anal about my computer and it's organization, and I like to
 | 
			
		||||
prevent collision between builds, each of the subprojects has their own
 | 
			
		||||
intermediate file directory inside .\win32\release (for example, when
 | 
			
		||||
building mesagl.lib all of it's intermediate files will be found in
 | 
			
		||||
.\win32\release\lib.mesagl).  This makes it very easy to cleanup as you
 | 
			
		||||
only need to remove .\win32\release.
 | 
			
		||||
 | 
			
		||||
*** Okay, Enough, how do I build with this stuff already Ted!
 | 
			
		||||
 | 
			
		||||
Okay, no major calamity here. The basic way to use the project file is to
 | 
			
		||||
call it via NMAKE from the command line. The format is:
 | 
			
		||||
 | 
			
		||||
    nmake[.exe] /f nmake.mak [options] [target]
 | 
			
		||||
 | 
			
		||||
The most likely [options] values you will use may be any combination of the
 | 
			
		||||
following:
 | 
			
		||||
 | 
			
		||||
    DEBUG=1 or DEBUG=0
 | 
			
		||||
    USE_CRTDLL=1 or USE_CRTDLL=0
 | 
			
		||||
 | 
			
		||||
    Note that all three of these options are OFF by default.
 | 
			
		||||
 | 
			
		||||
The [target] includes but is not limited to the following (for full details
 | 
			
		||||
please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that
 | 
			
		||||
NMAKE.MIF is rather large and sometimes hard to follow):
 | 
			
		||||
 | 
			
		||||
    --- convenience targets ---
 | 
			
		||||
 | 
			
		||||
    all                 - builds everything
 | 
			
		||||
    libfiles            - builds all linking library files
 | 
			
		||||
    progs               - builds all executable images
 | 
			
		||||
 | 
			
		||||
    --- library files, static and dynamic ---
 | 
			
		||||
 | 
			
		||||
    mesagl              - static lib build of Mesa core.
 | 
			
		||||
    mesaglu             - static lib build of MesaGLU core.
 | 
			
		||||
    mesaglut            - static lib build of Mesa GLUT core.
 | 
			
		||||
 | 
			
		||||
    mesagl32            - dynamic lib build of Mesa core.
 | 
			
		||||
 | 
			
		||||
    mesaglu32           - dynamic lib build of GLU core, generates
 | 
			
		||||
                          GLU32.DLL and/or GLU32d.DLL.
 | 
			
		||||
 | 
			
		||||
    mesaglut32          - dynamic lib build of GLUT core, generates
 | 
			
		||||
                          GLUT32.DLL and/or GLUT32d.dll.
 | 
			
		||||
 | 
			
		||||
    --- hardware accelerated mesa builds ---
 | 
			
		||||
 | 
			
		||||
    fxmesagl32          - builds Mesa for use on top of the 3Dfx
 | 
			
		||||
                          Glide runtime libs
 | 
			
		||||
 | 
			
		||||
    s3mesagl32          - builds mesa for use on top of the S3
 | 
			
		||||
                          'S3Tk' runtime libs.
 | 
			
		||||
 | 
			
		||||
    --- executable images ---
 | 
			
		||||
 | 
			
		||||
    progs.book          - builds all programs in \book directory
 | 
			
		||||
    progs.demos         - builds all programs in \demos directory
 | 
			
		||||
    progs.samples       - builds all programs in \samples directory
 | 
			
		||||
 | 
			
		||||
        These targets generate all of the programs in their respective
 | 
			
		||||
        directories and link the executables against OpenGL32.DLL,
 | 
			
		||||
        GLU32.DLL, and GLUT32.DLL (or their debug equivalents).
 | 
			
		||||
 | 
			
		||||
    progs.3dfx.demos    - builds all programs in \3dfx\demos directory
 | 
			
		||||
 | 
			
		||||
        This target generates the 3Dfx/Demo executables, linking them
 | 
			
		||||
        against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT
 | 
			
		||||
        hard-bound to using Mesa per-se as you can simply NOT build the
 | 
			
		||||
        Mesa core and GLU libraries.
 | 
			
		||||
 | 
			
		||||
   --- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----
 | 
			
		||||
 | 
			
		||||
   *** IMPORTANT SAFETY TIP: If you're going to build these variants of
 | 
			
		||||
       GLUT then DO NOT build any other target libraries in this package
 | 
			
		||||
       first, OR from the command line run the "nmake /f nmake.mak clean"
 | 
			
		||||
       command first!  This is because generation of the GLUT for SGI
 | 
			
		||||
       OpenGL target libraries conflicts in naming with the static build
 | 
			
		||||
       libraries of Mesa and it's supporting GLUT build.
 | 
			
		||||
 | 
			
		||||
   Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for
 | 
			
		||||
   use running against either Microsoft or SGI OpenGL for Window,
 | 
			
		||||
   respectively.  This allows for the general use of GLUT 3.7 on Windows
 | 
			
		||||
   systems with fully compliant OpenGL.
 | 
			
		||||
 | 
			
		||||
   You can build the GLUT DLL files either with the command line by
 | 
			
		||||
   issuing either of these commands:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak glut.sysgl
 | 
			
		||||
 | 
			
		||||
        <or>
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak glut.sgigl
 | 
			
		||||
 | 
			
		||||
   OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or
 | 
			
		||||
   GLUT_SYSGL projects within the DevStudio IDE.
 | 
			
		||||
 | 
			
		||||
   Unfortunately, the only way to build the test programs against this
 | 
			
		||||
   build of GLUT is via the command line, and I will NOT be making
 | 
			
		||||
   duplicate demo program projects for the IDE as it's just not worth it,
 | 
			
		||||
   sorry.
 | 
			
		||||
 | 
			
		||||
   To build the test programs against either MS or SGI OpenGL, you do so
 | 
			
		||||
   via either of these two commands:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak progs.sysgl
 | 
			
		||||
 | 
			
		||||
        <or>
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak progs.sgigl
 | 
			
		||||
 | 
			
		||||
   To use the GLUT-for-system-OpenGL in your own programs, you need to do
 | 
			
		||||
   three things by way of preparation, after building GLUT of course:
 | 
			
		||||
 | 
			
		||||
         1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one
 | 
			
		||||
            likely candidate location would be in your
 | 
			
		||||
            "DevStudio\VC\INCLUDE\GL" directory.
 | 
			
		||||
 | 
			
		||||
         2. Copy the linking libraries to somewhere in your %LIB% path, one
 | 
			
		||||
            likely candidate location would be in your "DevStudio\VC\LIB"
 | 
			
		||||
            directory. The linking libraries you need to copy are as
 | 
			
		||||
            follows:
 | 
			
		||||
 | 
			
		||||
                .\Release\GLUT32.LIB
 | 
			
		||||
                .\Release\GLUT.LIB
 | 
			
		||||
                .\Debug\GLUT32.LIB
 | 
			
		||||
                .\Debug\GLUT.LIB
 | 
			
		||||
 | 
			
		||||
        3. Copy the runtime libraries to somewhere in your %PATH%, one
 | 
			
		||||
           likely candidate location would be in WINDOWS\SYSTEM. the files
 | 
			
		||||
           that you should copy are as follows:
 | 
			
		||||
 | 
			
		||||
                .\Release\GLUT32.DLL
 | 
			
		||||
                .\Release\GLUT32.PDB
 | 
			
		||||
                .\Release\GLUT.DLL
 | 
			
		||||
                .\Release\GLUT.PDB
 | 
			
		||||
                .\Debug\GLUT32d.DLL
 | 
			
		||||
                .\Debug\GLUT32d.PDB
 | 
			
		||||
                .\Debug\GLUTd.DLL
 | 
			
		||||
                .\Debug\GLUTd.PDB
 | 
			
		||||
 | 
			
		||||
Some examples are in order ...
 | 
			
		||||
 | 
			
		||||
    ... build all dynamic-link libs using MSVCRT.DLL for C runtime:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak USE_CRTDLL=1 alldynamic
 | 
			
		||||
 | 
			
		||||
    ... To build all library variants and all test and demonstration
 | 
			
		||||
        programs with the default settings you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak all
 | 
			
		||||
 | 
			
		||||
    ... to build all static link libs and nothing else you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak allstatic
 | 
			
		||||
 | 
			
		||||
    ... to build all non-accelerated dynamic link libs you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak alldynamic
 | 
			
		||||
 | 
			
		||||
    ... to build all 3Dfx targeted dynamic link libs you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak allaccel
 | 
			
		||||
 | 
			
		||||
    ... to build all S3 Virge targetd dynamic link libs you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak alls3
 | 
			
		||||
 | 
			
		||||
    ... to build all libraries, static and dynamic, in all versions
 | 
			
		||||
        you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak libfiles
 | 
			
		||||
 | 
			
		||||
    ... to subsequently build all demo and test programs you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak progs
 | 
			
		||||
 | 
			
		||||
    ... to cleanup all intermediate files you do this:
 | 
			
		||||
 | 
			
		||||
        nmake /f clean
 | 
			
		||||
 | 
			
		||||
You get the picture. (I hope) ;^)  You may also specify specify
 | 
			
		||||
single targets in a convenient fashion. The rule is simple, any of the
 | 
			
		||||
above named lib files, static or dynamic, may be built by providing it's
 | 
			
		||||
name on the command line as the target. Examples:
 | 
			
		||||
 | 
			
		||||
    ... to build only Mesa as OpenGL32.DLL ...
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak opengl32
 | 
			
		||||
 | 
			
		||||
    ... to build only Mesa on top of the 3Dfx Glide API ...
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak fxMesaGL32
 | 
			
		||||
              <or>
 | 
			
		||||
        nmake /f nmake.mak fxMesaGL
 | 
			
		||||
 | 
			
		||||
    ... to build only Mesa on top of the S3 Toolkit ...
 | 
			
		||||
 | 
			
		||||
        nmake /f nmake.mak s3MesaGL32
 | 
			
		||||
              <or>
 | 
			
		||||
        nmake /f nmake.mak s3mesaGL
 | 
			
		||||
 | 
			
		||||
*** Revision history for ./win32 project files
 | 
			
		||||
 | 
			
		||||
1/18/98 - initial cut submitted and included with core mesa
 | 
			
		||||
2/5/98  - fixed internal dependency within nmake.mif upon there being
 | 
			
		||||
          a $(DEVDIR) variable to make some temporary batch files
 | 
			
		||||
          dependant upon (thanks to Keven T. McDonnell for finding
 | 
			
		||||
          that there was this particular bug). I also updated the
 | 
			
		||||
          build files for 2.6beta6.
 | 
			
		||||
2/8/98  - added DevStudio workspace and project files for all lib
 | 
			
		||||
          files and some test programs. Updated readme.win32.
 | 
			
		||||
6/25/98 - initial revision for Mesa 3.0, does not include IDE files,
 | 
			
		||||
          not everything is running. *sigh*
 | 
			
		||||
7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and
 | 
			
		||||
          minimally tested, all demo programs built and minimally
 | 
			
		||||
          tested to within limits of my PC. ;^) Eveything looks
 | 
			
		||||
          MUCH better now ...
 | 
			
		||||
7/30/98 - Minor updates/edits based upon feedback from
 | 
			
		||||
          Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix
 | 
			
		||||
          to the Mesa-on-3Dfx build such that Quake-II now runs almost
 | 
			
		||||
          properly on my system. It runs, just *very* slowly and with *no*
 | 
			
		||||
          textures. Hmmm. Doesn't make any difference whether Quake is set
 | 
			
		||||
          to use 8-bit textures or not.
 | 
			
		||||
8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and
 | 
			
		||||
          compatability fix in fxapi.c for in-window rendering using 3Dfx
 | 
			
		||||
          hardware.
 | 
			
		||||
8/26/98 - Final revisions for Mesa 3 release checked
 | 
			
		||||
9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets
 | 
			
		||||
9/29/98 - Reorganized FAQ information and added Added faq entry about Glide
 | 
			
		||||
          bug under NT (crash on exit) and a workaround.
 | 
			
		||||
11/21/98 - Updated files for Mesa 3.1 beta 1
 | 
			
		||||
           Updated fxMesa window-hack code
 | 
			
		||||
           Updated fxMesa resolution support to handle 1600x1200 & 1280x1024
 | 
			
		||||
7/9/99  - Rev'd for Mesa 3.1 beta 2
 | 
			
		||||
							
								
								
									
										325
									
								
								docs/README.X11
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										325
									
								
								docs/README.X11
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,325 @@
 | 
			
		||||
 | 
			
		||||
                         Mesa 3.1 Unix/X11 Information
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Installation
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
There are two ways to compile Mesa on Unix/X11 systems:
 | 
			
		||||
 | 
			
		||||
1. The old way:
 | 
			
		||||
    First type 'make' alone to see the list of system
 | 
			
		||||
    configurations currently supported.  If you see your configuration on the
 | 
			
		||||
    list, type 'make <config>'.  Most popular Unix/X workstations are currently
 | 
			
		||||
    supported.
 | 
			
		||||
 | 
			
		||||
    If your system configuration is not listed by 'make', you'll have to modify
 | 
			
		||||
    the top-level Makefile and Make-config files.  There are instructions in
 | 
			
		||||
    each file.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2. The new way:
 | 
			
		||||
    Type './configure' and then 'make'.  This uses GNU autoconfig.
 | 
			
		||||
    See docs/INSTALL for more details.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
The top-level makefile will execute the makefiles in a number of sub-
 | 
			
		||||
directories.  When finished, the Mesa libraries will be in the Mesa-3.1/lib/
 | 
			
		||||
directory.  A few GLUT demos in the demos/ directory should be ready to run.
 | 
			
		||||
 | 
			
		||||
If you also downloaded and unpacked the demos there should be executables
 | 
			
		||||
in the "xdemos/", "samples/", and "book/" directories for you to try out.
 | 
			
		||||
 | 
			
		||||
If you have compilation problems you should try to fix them and return the
 | 
			
		||||
patches to the author.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Notes on assembly language optimizations:
 | 
			
		||||
 | 
			
		||||
   When using the old-style Makefiles, you can specify a configuration
 | 
			
		||||
   that uses X86 assembly language optimizations (linux-3dnow for example).
 | 
			
		||||
 | 
			
		||||
   The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at
 | 
			
		||||
   runtime.  That means you can compile Mesa for 3DNow! optimizations
 | 
			
		||||
   even if you don't have an AMD CPU.
 | 
			
		||||
 | 
			
		||||
   However, your Linux binutils and assembler must understand the
 | 
			
		||||
   special instructions in order to compile them.  If you have
 | 
			
		||||
   compilation problems, try upgrading your binutils.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Header and library files:
 | 
			
		||||
   After you've compiled Mesa and tried the demos I recommend the following
 | 
			
		||||
   procedure for "installing" Mesa.
 | 
			
		||||
 | 
			
		||||
   Copy the Mesa include/GL directory to /usr/local/include:
 | 
			
		||||
	cp -r include/GL /usr/local/include
 | 
			
		||||
 | 
			
		||||
   Copy the Mesa library files to /usr/local/lib:
 | 
			
		||||
	cp lib/* /usr/local/lib
 | 
			
		||||
 | 
			
		||||
	(actually, use "cp -d" on Linux to preserve symbolic links)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Xt/Motif widgets:
 | 
			
		||||
   If you want to use Mesa or OpenGL in your Xt/Motif program you can build
 | 
			
		||||
   the widgets found in either the widgets-mesa or widgets-sgi directories.
 | 
			
		||||
   The former were written for Mesa and the later are the original SGI
 | 
			
		||||
   widgets.  Look in those directories for more information.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Notes:
 | 
			
		||||
   HP users:  a Mesa user reports that the HP-UX 10.01 C compiler has
 | 
			
		||||
   a bug which effects glReadPixels.  A patch for the compiler (PHSS_5743) is
 | 
			
		||||
   available.  Otherwise be sure your compiler is version 10.13 or later.
 | 
			
		||||
 | 
			
		||||
   QNX users:  if you have problems running the demos try setting the
 | 
			
		||||
   stack size to 200K or larger with -N200K, for example.
 | 
			
		||||
 | 
			
		||||
   SunOS 5.x users:  The X shared memory extension may not work
 | 
			
		||||
   correctly.  If Mesa prints an error message to the effect of "Shared memory
 | 
			
		||||
   error" then you'll have to append the following three lines to the end of
 | 
			
		||||
   your /etc/system file then reboot:
 | 
			
		||||
      set shmsys:shminfo_shmmax = 0x2000000
 | 
			
		||||
      set shmsys:shminfo_shmmni = 0x1000
 | 
			
		||||
      set shmsys:shminfo_shmseg = 0x100
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Using the library
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
Configuration options:
 | 
			
		||||
   The file src/config.h has many parameters which you can adjust such
 | 
			
		||||
   as maximum number of lights, clipping planes, maximum texture size,
 | 
			
		||||
   etc.  In particular, you may want to change DEPTH_BITS from 16 to 32
 | 
			
		||||
   if a 16-bit depth buffer isn't precise enough for your application.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Shared libraries:
 | 
			
		||||
   If you compile shared libraries you may have to set an environment
 | 
			
		||||
   variable to specify where the Mesa libraries are located.  On Linux and
 | 
			
		||||
   Sun systems for example, set the LD_LIBRARY_PATH variable to include
 | 
			
		||||
   /your-dir/Mesa-2.6/lib.   Otherwise, when you try to run a demo it
 | 
			
		||||
   may fail with a message saying that one or more libraries couldn't be
 | 
			
		||||
   found.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Remote display of OpenGL/GLX programs:
 | 
			
		||||
   As of version 1.2.3, Mesa's header files use the same GLenum and GLUenum
 | 
			
		||||
   values as SGI's (and most/all other vendor's) OpenGL headers.  This means
 | 
			
		||||
   you can freely mix object files compiled with OpenGL or Mesa headers.
 | 
			
		||||
   In fact, on systems with dynamic runtime linkers it's possible to dynam-
 | 
			
		||||
   ically link with Mesa or OpenGL shared libraries at runtime, without
 | 
			
		||||
   recompiling or relinking anything!
 | 
			
		||||
 | 
			
		||||
   Using IRIX 5.x as an example, you can run SGI's OpenGL demos with the
 | 
			
		||||
   Mesa shared libraries as follows.  Let's assume you're installing Mesa
 | 
			
		||||
   in /usr/local/Mesa and using the C-shell:
 | 
			
		||||
       % cd /usr/local/Mesa
 | 
			
		||||
       % make irix5-dso
 | 
			
		||||
       % setenv _RLD_LIST "/usr/local/Mesa/lib/libGL.so:DEFAULT"
 | 
			
		||||
       % /usr/demos/bin/ideas_ogl      // this is a test
 | 
			
		||||
 | 
			
		||||
   You can now run OpenGL executables on almost any X display!  There may
 | 
			
		||||
   be some problems from the fact that Mesa supports many X visual types
 | 
			
		||||
   that an OpenGL client may not expect (grayscale for example).  In this
 | 
			
		||||
   case the application may abort, print error messages, or just behave
 | 
			
		||||
   strangely.  You may have to experiment with the MESA_RGB_VISUAL envi-
 | 
			
		||||
   ronment variable.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Xt/Motif Widgets:
 | 
			
		||||
   Two versions of the Xt/Motif OpenGL drawing area widgets are included:
 | 
			
		||||
 | 
			
		||||
      widgets-sgi/	SGI's stock widgets
 | 
			
		||||
      widgets-mesa/	Mesa-tuned widgets
 | 
			
		||||
 | 
			
		||||
   Look in those directories for details
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Togl:
 | 
			
		||||
   Togl is an OpenGL/Mesa widget for Tcl/Tk.
 | 
			
		||||
   See http://www.ssec.wisc.edu/~brianp/Togl.html for more information.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
X Display Modes:
 | 
			
		||||
   Mesa supports RGB(A) rendering into almost any X visual type and depth.
 | 
			
		||||
 | 
			
		||||
   The glXChooseVisual function tries its best to pick an appropriate visual
 | 
			
		||||
   for the given attribute list.  However, if this doesn't suit your needs
 | 
			
		||||
   you can force Mesa to use any X visual you want (any supported by your
 | 
			
		||||
   X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL
 | 
			
		||||
   environment variables.  When an RGB visual is requested, glXChooseVisual
 | 
			
		||||
   will first look if the MESA_RGB_VISUAL variable is defined.  If so, it
 | 
			
		||||
   will try to use the specified visual.  Similarly, when a color index
 | 
			
		||||
   visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL
 | 
			
		||||
   variable.
 | 
			
		||||
 | 
			
		||||
   The format of accepted values is:  <visual-class> <depth>
 | 
			
		||||
   Here are some examples:
 | 
			
		||||
 | 
			
		||||
   using the C-shell:
 | 
			
		||||
	% setenv MESA_RGB_VISUAL "TrueColor 8"		// 8-bit TrueColor
 | 
			
		||||
	% setenv MESA_CI_VISUAL "PseudoColor 12"	// 12-bit PseudoColor
 | 
			
		||||
	% setenv MESA_RGB_VISUAL "PseudoColor 8"	// 8-bit PseudoColor
 | 
			
		||||
 | 
			
		||||
   using the KornShell:
 | 
			
		||||
	$ export MESA_RGB_VISUAL="TrueColor 8"
 | 
			
		||||
	$ export MESA_CI_VISUAL="PseudoColor 12"
 | 
			
		||||
	$ export MESA_RGB_VISUAL="PseudoColor 8"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Double buffering:
 | 
			
		||||
   Mesa can use either an X Pixmap or XImage as the backbuffer when in
 | 
			
		||||
   double buffer mode.  Using GLX, the default is to use an XImage.  The
 | 
			
		||||
   MESA_BACK_BUFFER environment variable can override this.  The valid
 | 
			
		||||
   values for MESA_BACK_BUFFER are:  Pixmap and XImage (only the first
 | 
			
		||||
   letter is checked, case doesn't matter).
 | 
			
		||||
 | 
			
		||||
   A pixmap is faster when drawing simple lines and polygons while an
 | 
			
		||||
   XImage is faster when Mesa has to do pixel-by-pixel rendering.  If you
 | 
			
		||||
   need depth buffering the XImage will almost surely be faster.  Exper-
 | 
			
		||||
   iment with the MESA_BACK_BUFFER variable to see which is faster for
 | 
			
		||||
   your application.  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Colormaps:
 | 
			
		||||
   When using Mesa directly or with GLX, it's up to the application writer
 | 
			
		||||
   to create a window with an appropriate colormap.  The aux, tk, and GLUT
 | 
			
		||||
   toolkits try to minimize colormap "flashing" by sharing colormaps when
 | 
			
		||||
   possible.  Specifically, if the visual and depth of the window matches
 | 
			
		||||
   that of the root window, the root window's colormap will be shared by
 | 
			
		||||
   the Mesa window.  Otherwise, a new, private colormap will be allocated.
 | 
			
		||||
 | 
			
		||||
   When sharing the root colormap, Mesa may be unable to allocate the colors
 | 
			
		||||
   it needs, resulting in poor color quality.  This can happen when a
 | 
			
		||||
   large number of colorcells in the root colormap are already allocated.
 | 
			
		||||
   To prevent colormap sharing in aux, tk and GLUT, define the environment
 | 
			
		||||
   variable MESA_PRIVATE_CMAP.  The value isn't significant.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Gamma correction:
 | 
			
		||||
   To compensate for the nonlinear relationship between pixel values
 | 
			
		||||
   and displayed intensities, there is a gamma correction feature in
 | 
			
		||||
   Mesa.  Some systems, such as Silicon Graphics, support gamma
 | 
			
		||||
   correction in hardware (man gamma) so you won't need to use Mesa's
 | 
			
		||||
   gamma facility.  Other systems, however, may need gamma adjustment
 | 
			
		||||
   to produce images which look correct.  If in the past you thought
 | 
			
		||||
   Mesa's images were too dim, read on.
 | 
			
		||||
 | 
			
		||||
   Gamma correction is controlled with the MESA_GAMMA environment
 | 
			
		||||
   variable.  Its value is of the form "Gr Gg Gb" or just "G" where
 | 
			
		||||
   Gr is the red gamma value, Gg is the green gamma value, Gb is the
 | 
			
		||||
   blue gamma value and G is one gamma value to use for all three
 | 
			
		||||
   channels.  Each value is a positive real number typically in the
 | 
			
		||||
   range 1.0 to 2.5.  The defaults are all 1.0, effectively disabling
 | 
			
		||||
   gamma correction.  Examples using csh:
 | 
			
		||||
 | 
			
		||||
	% setenv MESA_GAMMA "2.3 2.2 2.4"	// separate R,G,B values
 | 
			
		||||
	% setenv MESA_GAMMA "2.0"		// same gamma for R,G,B
 | 
			
		||||
 | 
			
		||||
   The demos/gamma.c program may help you to determine reasonable gamma
 | 
			
		||||
   value for your display.  With correct gamma values, the color intensities
 | 
			
		||||
   displayed in the top row (drawn by dithering) should nearly match those
 | 
			
		||||
   in the bottom row (drawn as grays).
 | 
			
		||||
 | 
			
		||||
   Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well
 | 
			
		||||
   on HP displays using the HP-ColorRecovery technology.
 | 
			
		||||
 | 
			
		||||
   Mesa implements gamma correction with a lookup table which translates
 | 
			
		||||
   a "linear" pixel value to a gamma-corrected pixel value.  There is a
 | 
			
		||||
   small performance penalty.  Gamma correction only works in RGB mode.
 | 
			
		||||
   Also be aware that pixel values read back from the frame buffer will
 | 
			
		||||
   not be "un-corrected" so glReadPixels may not return the same data
 | 
			
		||||
   drawn with glDrawPixels.
 | 
			
		||||
 | 
			
		||||
   For more information about gamma correction see:
 | 
			
		||||
   http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Overlay Planes
 | 
			
		||||
 | 
			
		||||
   Overlay planes in the frame buffer are supported by Mesa but require
 | 
			
		||||
   hardware and X server support.  To determine if your X server has
 | 
			
		||||
   overlay support you can test for the SERVER_OVERLAY_VISUALS property:
 | 
			
		||||
 | 
			
		||||
	xprop -root | grep SERVER_OVERLAY_VISUALS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
HPCR glClear(GL_COLOR_BUFFER_BIT) dithering
 | 
			
		||||
 | 
			
		||||
   If you set the MESA_HPCR_CLEAR environment variable then dithering
 | 
			
		||||
   will be used when clearing the color buffer.  This is only applicable
 | 
			
		||||
   to HP systems with the HPCR (Color Recovery) system.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Extensions:
 | 
			
		||||
   The following OpenGL GLX extensions are currently implemented:
 | 
			
		||||
 | 
			
		||||
      GLX_EXT_visual_info - GLX visual and transparent pixel extension
 | 
			
		||||
 | 
			
		||||
   For detailed information about the extensions see www.opengl.org
 | 
			
		||||
 | 
			
		||||
   There are four Mesa-specific GL/GLX extensions at this time.
 | 
			
		||||
 | 
			
		||||
   GLX_MESA_pixmap_colormap 
 | 
			
		||||
 | 
			
		||||
      This extension adds the GLX function:
 | 
			
		||||
 | 
			
		||||
         GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
 | 
			
		||||
                                           Pixmap pixmap, Colormap cmap )
 | 
			
		||||
 | 
			
		||||
      It is an alternative to the standard glXCreateGLXPixmap() function.
 | 
			
		||||
      Since Mesa supports RGB rendering into any X visual, not just True-
 | 
			
		||||
      Color or DirectColor, Mesa needs colormap information to convert RGB
 | 
			
		||||
      values into pixel values.  An X window carries this information but a
 | 
			
		||||
      pixmap does not.  This function associates a colormap to a GLX pixmap.
 | 
			
		||||
      See the xdemos/glxpixmap.c file for an example of how to use this
 | 
			
		||||
      extension.
 | 
			
		||||
 | 
			
		||||
   GLX_MESA_release_buffers
 | 
			
		||||
 | 
			
		||||
      Mesa associates a set of ancillary (depth, accumulation, stencil and
 | 
			
		||||
      alpha) buffers with each X window it draws into.  These ancillary
 | 
			
		||||
      buffers are allocated for each X window the first time the X window
 | 
			
		||||
      is passed to glXMakeCurrent().  Mesa, however, can't detect when an
 | 
			
		||||
      X window has been destroyed in order to free the ancillary buffers.
 | 
			
		||||
 | 
			
		||||
      The best it can do is to check for recently destroyed windows whenever
 | 
			
		||||
      the client calls the glXCreateContext() or glXDestroyContext()
 | 
			
		||||
      functions.  This may not be sufficient in all situations though.
 | 
			
		||||
 | 
			
		||||
      The GLX_MESA_release_buffers extension allows a client to explicitly
 | 
			
		||||
      deallocate the ancillary buffers by calling glxReleaseBuffersMESA()
 | 
			
		||||
      just before an X window is destroyed.  For example:
 | 
			
		||||
 | 
			
		||||
         #ifdef GLX_MESA_release_buffers
 | 
			
		||||
            glXReleaseBuffersMESA( dpy, window );
 | 
			
		||||
         #endif
 | 
			
		||||
         XDestroyWindow( dpy, window );
 | 
			
		||||
 | 
			
		||||
      This extension is new in Mesa 2.0.
 | 
			
		||||
 | 
			
		||||
   GLX_MESA_copy_sub_buffer
 | 
			
		||||
 | 
			
		||||
      This extension adds the glXCopySubBufferMESA() function.  It works
 | 
			
		||||
      like glXSwapBuffers() but only copies a sub-region of the window
 | 
			
		||||
      instead of the whole window.
 | 
			
		||||
 | 
			
		||||
      This extension is new in Mesa version 2.6
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Summary of X-related environment variables:
 | 
			
		||||
   MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
 | 
			
		||||
   MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
 | 
			
		||||
   MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
 | 
			
		||||
   MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
 | 
			
		||||
   MESA_GAMMA - gamma correction coefficients (X only)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
$Id: README.X11,v 3.3.2.3 2000/01/25 17:18:46 brianp Exp $
 | 
			
		||||
							
								
								
									
										146
									
								
								docs/RELNOTES-3.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								docs/RELNOTES-3.1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
			
		||||
 | 
			
		||||
                         Mesa 3.1 release notes
 | 
			
		||||
 | 
			
		||||
                             PLEASE READ!!!!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New copyright
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Mesa 3.1 will be distributed under an XFree86-style copyright instead
 | 
			
		||||
of the GNU LGPL.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New directories
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
All documentation files are now in the docs/ directory.
 | 
			
		||||
All shell scripts are now in the bin/ directory.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New library names
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a)
 | 
			
		||||
and the GLU library was named libMesaGLU.so (or libMesaGLU.a).
 | 
			
		||||
 | 
			
		||||
Now, the main library is named libGL.so (or libGL.a) and the GLU library
 | 
			
		||||
is named libGLU.so (or libGLU.a).
 | 
			
		||||
 | 
			
		||||
The change allows Mesa to be more easily substituted for OpenGL.
 | 
			
		||||
Specifically, the linker/loader on some Unix-like systems won't
 | 
			
		||||
allow libMesaGL.so to be used instead of libGL.so if the application
 | 
			
		||||
was linked with the former.
 | 
			
		||||
 | 
			
		||||
Warning: if you have another OpenGL implementation installed on your
 | 
			
		||||
system (i.e. you have another OpenGL libGL.so) you'll have to be
 | 
			
		||||
carefull about which library (OpenGL or Mesa) you link against.  Be
 | 
			
		||||
aware of -L linker flags and the value of the LD_LIBRARY_PATH environment
 | 
			
		||||
variable.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New library versioning
 | 
			
		||||
----------------------
 | 
			
		||||
 | 
			
		||||
Previously, the Mesa GL library was named libMesaGL.so.3.0
 | 
			
		||||
To better support Linux/OpenGL standards, the Mesa GL library is now
 | 
			
		||||
named libGL.so.1.2.030100  This indicates version 1.2 of the OpenGL spec
 | 
			
		||||
and Mesa implementation 3.1.0
 | 
			
		||||
 | 
			
		||||
In the long term this will allow better interoperability with other
 | 
			
		||||
OpenGL implementations, especially on Linux.  In the short term,
 | 
			
		||||
OpenGL apps may have to be relinked to use the new library naming.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New makefiles
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
The old Makefiles found in the various directories have been renamed
 | 
			
		||||
to Makefile.X11 in order to prevent filename collisions with autoconfig-
 | 
			
		||||
generated Makefiles.
 | 
			
		||||
 | 
			
		||||
The top-level Makefile simply includes Makefile.X11
 | 
			
		||||
If your top-level Makefile get's overwritten/destroyed you can restore
 | 
			
		||||
it by copying Makefile.X11 to Makefile
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
New extensions
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
GL_EXT_stencil_wrap
 | 
			
		||||
	Implements two new stencil operations: GL_INCR_WRAP_EXT and
 | 
			
		||||
	GL_DECR_WRAP_EXT which allow stencil increment and decrement
 | 
			
		||||
	without clamping.
 | 
			
		||||
 | 
			
		||||
GL_INGR_blend_func_separate
 | 
			
		||||
	Allows specification of blend factors for RGB and Alpha independently.
 | 
			
		||||
	(INGR = Intergraph)
 | 
			
		||||
 | 
			
		||||
GL_ARB_multitexture
 | 
			
		||||
	Multiple simultaneous textures.  (ARB = Architecture Review Board)
 | 
			
		||||
 | 
			
		||||
GL_NV_texgen_reflection
 | 
			
		||||
	nVidia texgen extension for better reflection mapping.
 | 
			
		||||
 | 
			
		||||
GL_PGI_misc_hints
 | 
			
		||||
	Assorted transformation hints.
 | 
			
		||||
 | 
			
		||||
GL_EXT_compiled_vertex_array
 | 
			
		||||
	Compiled vertex arrays.
 | 
			
		||||
 | 
			
		||||
GL_EXT_clip_volume_hint
 | 
			
		||||
	Allows one to disable clip volume (frustum) testing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Extensions removed
 | 
			
		||||
------------------
 | 
			
		||||
 | 
			
		||||
GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Config file
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
By default, /etc/mesa.conf will be read when Mesa starts.  This
 | 
			
		||||
file controls default hints, enable/disable of extensions, and
 | 
			
		||||
more.  See the CONFIG file for documentation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Optimizations
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Keith Whitwell has contributed significant optimizations to Mesa's
 | 
			
		||||
vertex transformation code.  Basically, the whole transformation
 | 
			
		||||
stage of Mesa has been rewritten.
 | 
			
		||||
 | 
			
		||||
It's impossible to give a speedup factor.  You'll just have to
 | 
			
		||||
try your app and see how it performs.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Device Driver changes
 | 
			
		||||
---------------------
 | 
			
		||||
 | 
			
		||||
A bunch of new device driver functions have been added.  See src/dd.h
 | 
			
		||||
Keith Harrison contributed many of them.  I've been planning on adding
 | 
			
		||||
a bunch of functions like these to make writing hardware drivers easier.
 | 
			
		||||
More such function will probably be added in the near future.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Miscellaneous
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
util/glstate.c has some handy functions for debugging.  Basically, it
 | 
			
		||||
offers a simple function for printing GL state variables.  It's not
 | 
			
		||||
finished yet.  There's a LOT more GLenum records to be added (see the
 | 
			
		||||
code).  Anyone want to help?
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
$Id: RELNOTES-3.1,v 1.1.2.1 2000/02/22 17:56:56 brianp Exp $
 | 
			
		||||
							
								
								
									
										874
									
								
								docs/VERSIONS
									
									
									
									
									
								
							
							
						
						
									
										874
									
								
								docs/VERSIONS
									
									
									
									
									
								
							@@ -1,3 +1,4 @@
 | 
			
		||||
$Id: VERSIONS,v 1.13.2.24 2000/03/23 00:12:41 brianp Exp $
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Mesa Version History
 | 
			
		||||
@@ -665,850 +666,45 @@ Mesa Version History
 | 
			
		||||
	- added demos/gloss.c
 | 
			
		||||
	- added xdemos/glxdpyinfo.c
 | 
			
		||||
	- added GLX_ARB_get_proc_address extension
 | 
			
		||||
	- rewritten glTexImage code paths (faster, less memory, bug fixes)
 | 
			
		||||
    Bug Fixes:
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- several vertex array bug fixes
 | 
			
		||||
	- overlapping glCopyPixels with pixel zooming now works
 | 
			
		||||
	- glXUseXFont() bitmaps were vertically shifted by one pixel
 | 
			
		||||
	- glCopyPixels with pixel zooming now works
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.2 final  April 24, 2000
 | 
			
		||||
3.2 beta 1 March 23, 2000
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed memcpy bugs in span.c
 | 
			
		||||
	- fixed missing glEnd problem in demos/tessdemo.c
 | 
			
		||||
	- fixed bug when clearing 24bpp Ximages
 | 
			
		||||
	- fixed clipping problem found in Unreal Tournament
 | 
			
		||||
	- fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
 | 
			
		||||
	- fixed Loki's 3dfx RGB vs BGR bug
 | 
			
		||||
	- fixed Loki's 3dfx smooth/flat shading bug in SoF
 | 
			
		||||
	- mixed drawing of lines and bitmaps sometimes had wrong colors
 | 
			
		||||
	- added missing glHintPGI() function
 | 
			
		||||
	- fixed a polygon culling bug
 | 
			
		||||
	- fixed bugs in gluPartialDisk()
 | 
			
		||||
	- Z values in selection mode were wrong
 | 
			
		||||
	- added missing tokens:
 | 
			
		||||
		GL_SMOOTH_POINT_SIZE_RANGE
 | 
			
		||||
		GL_SMOOTH_POINT_SIZE_GRANULARITY
 | 
			
		||||
		GL_SMOOTH_LINE_WIDTH_RANGE
 | 
			
		||||
		GL_SMOOTH_LINE_WIDTH_GRANULARITY
 | 
			
		||||
		GL_ALIASED_POINT_SIZE_RANGE
 | 
			
		||||
		GL_ALIASED_LINE_WIDTH_RANGE
 | 
			
		||||
	- fixed glCopyPixels when copying from back to front buffer
 | 
			
		||||
	- GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT
 | 
			
		||||
	- glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken
 | 
			
		||||
	- glDeleteTextures() didn't decrement reference count correctly
 | 
			
		||||
	- GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly
 | 
			
		||||
	- Actual depth of transformation matrix stacks was off by one
 | 
			
		||||
	- 24bpp visuals didn't address pixels correctly
 | 
			
		||||
	- mipmap level of detail (lambda) calculation simplified, more accurate
 | 
			
		||||
	- 101691 - Polygon clipping and GL_LINE
 | 
			
		||||
	- 101928 - Polygon clipping and GL_LINE (same fix as above)
 | 
			
		||||
	- 101808 - Non-glVertexArrays tristrip bug
 | 
			
		||||
	- 101971 - find_last_3f on Dec OSF (worked around)
 | 
			
		||||
	- 102369 - segv on dec osf (possibly a duplicate of the above)
 | 
			
		||||
	- 102893 - orientations of modelview cause segfault
 | 
			
		||||
    New:
 | 
			
		||||
	- updated SVGA Linux driver
 | 
			
		||||
	- added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX
 | 
			
		||||
	- build libGLw.a (Xt/OpenGL drawing area widget) library by default
 | 
			
		||||
	- changed -O2 to -O3 for a number of gcc configs
 | 
			
		||||
    Changes:
 | 
			
		||||
	- updated docs/README file
 | 
			
		||||
	- use bcopy() optimizations on FreeBSD
 | 
			
		||||
	- re-enabled the optimized persp_textured_triangle() function
 | 
			
		||||
        - glXCopyContext's mask parameter is now unsigned long, per GLX spec
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.2.1  July 19, 2000
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- gluBuild2DMipmaps() didn't accept GL_BGRA
 | 
			
		||||
	- Fixed compile/makefile problems on IRIX
 | 
			
		||||
	- fixed segfault in 3dfx driver when using GL selection/feedback
 | 
			
		||||
	- no longer cull very, very tiny triangles
 | 
			
		||||
	- blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
 | 
			
		||||
	- fixed Motif detection code in widgets-mesa/configure.in
 | 
			
		||||
	- glColorMaterial and glMaterial updates to emissive and ambient
 | 
			
		||||
	  didn't always work right
 | 
			
		||||
	- Specular highlights weren't always in the right place
 | 
			
		||||
	- clipped GL_LINE mode polygons had interior lines appear
 | 
			
		||||
	- blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
 | 
			
		||||
	- GL_NICEST fog didn't always work with flat shading
 | 
			
		||||
	- glRect commands in display lists were sometimes miscolored
 | 
			
		||||
	- Line Z offset didn't always work
 | 
			
		||||
	- fixed texgen normal vector problem (gloss's teapot)
 | 
			
		||||
	- numerous GL conformance bugs fixed
 | 
			
		||||
    Changes:
 | 
			
		||||
	- glColorMask(false, false, false, false) handled better/faster
 | 
			
		||||
	- reverted to old GLU polygon tessellator, GLU 1.1
 | 
			
		||||
	- updated Win32 build files
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.3  July 21, 2000
 | 
			
		||||
    New:
 | 
			
		||||
	- antialiased triangles now implemented
 | 
			
		||||
	- GL_EXT_texture_env_add texture mode extension
 | 
			
		||||
	- GLX 1.3 API
 | 
			
		||||
	- support for separate draw/read buffers (ie GL_SGI_make_current_read)
 | 
			
		||||
	- thread-safe API dispath
 | 
			
		||||
	- improved glxinfo program
 | 
			
		||||
	- demos/texdown program to measure texture download performance
 | 
			
		||||
	- glext.h header file
 | 
			
		||||
	- demos/geartrain program
 | 
			
		||||
	- GL_EXT_texture_lod_bias extension
 | 
			
		||||
	- demos/lodbias program
 | 
			
		||||
	- further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
 | 
			
		||||
	- GLX_EXT_visual_rating extension (a no-op, however)
 | 
			
		||||
	- GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
 | 
			
		||||
	- demos/occlude program
 | 
			
		||||
	- GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
 | 
			
		||||
	- demos/pixeltex program
 | 
			
		||||
	- GL_SGI_color_matrix extension
 | 
			
		||||
	- GL_SGI_color_table extension
 | 
			
		||||
	- GL_EXT_histogram extension
 | 
			
		||||
	- GL_ARB_texture_cube_map extension
 | 
			
		||||
	- added xdemos/glxheads and xdemos/manywin
 | 
			
		||||
	- demos/texenv.c demo
 | 
			
		||||
	- GL_EXT_texture_env_combine extension (by Holger Waechtler)
 | 
			
		||||
	- Xlib driver is now thread-safe (see xdemos/glthreads)
 | 
			
		||||
    Bug Fixes:
 | 
			
		||||
	- various GL conformance failures fixed since 3.2.1
 | 
			
		||||
    Changes:
 | 
			
		||||
	- gl.h now uses #defines instead of C enums for all tokens
 | 
			
		||||
	- glu.h now uses #defines instead of C enums for all tokens
 | 
			
		||||
	- moved programs from 3Dfx/demos/ into demos/ directory
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.4  November 3, 2000
 | 
			
		||||
    New:
 | 
			
		||||
	- optimized glDrawPixels for glPixelZoom(1,-1)
 | 
			
		||||
    Bug Fixes:
 | 
			
		||||
	- widgets-mesa/src/*.c files were missing from 3.3 distro
 | 
			
		||||
	- include/GL/mesa_wgl.h file was missing from 3.3 distro
 | 
			
		||||
	- fixed some Win32 compile problems
 | 
			
		||||
	- texture object priorities weren't getting initialized to 1.0
 | 
			
		||||
	- glAreTexturesResident return value was wrong when using hardware
 | 
			
		||||
	- glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
 | 
			
		||||
	- glReadPixels with GLushort packed types was broken
 | 
			
		||||
	- fixed a few bugs in the GL_EXT_texture_env_combine texture code
 | 
			
		||||
	- glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
 | 
			
		||||
	- fixed some typos/bugs in the VB code
 | 
			
		||||
	- glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
 | 
			
		||||
	- optimized glDrawPixels paths weren't being used
 | 
			
		||||
	- per-fragment fog calculation didn't work without a Z buffer
 | 
			
		||||
	- improved blending accuracy, fixes Glean blendFunc test failures
 | 
			
		||||
	- glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
 | 
			
		||||
	- glXGetProcAddressARB() didn't always return the right address
 | 
			
		||||
	- gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
 | 
			
		||||
	- texture matrix changes weren't always detected (GLUT projtex demo)
 | 
			
		||||
	- fixed random color problem in vertex fog code
 | 
			
		||||
	- fixed Glide-related bug that let Quake get a 24-bit Z buffer
 | 
			
		||||
    Changes:
 | 
			
		||||
	- finished internal support for compressed textures for DRI
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.4.1  February 14, 2001
 | 
			
		||||
    New:
 | 
			
		||||
	- fixed some Linux build problems
 | 
			
		||||
	- fixed some Windows build problems
 | 
			
		||||
	- GL_EXT_texture_env_dot3 extension (Gareth Hughes)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
 | 
			
		||||
	- various state-update code changes needed for DRI bugs
 | 
			
		||||
	- disabled pixel transfer ops in glColorTable commands, not needed
 | 
			
		||||
	- fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
 | 
			
		||||
	- updated sources and fixed compile problems in widgets-mesa/
 | 
			
		||||
	- GLX_PBUFFER enum value was wrong in glx.h
 | 
			
		||||
	- fixed a glColorMaterial lighting bug
 | 
			
		||||
	- fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
 | 
			
		||||
	- glXCopySubBufferMESA() Y position was off by one
 | 
			
		||||
	- Error checking of glTexSubImage3D() was broken (bug 128775)
 | 
			
		||||
	- glPopAttrib() didn't restore all derived Mesa state correctly
 | 
			
		||||
	- Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
 | 
			
		||||
	  conformance problems at 16bpp.
 | 
			
		||||
	- clearing depth buffer with scissoring was broken, would segfault
 | 
			
		||||
	- OSMesaGetDepthBuffer() returned bad bytesPerValue value
 | 
			
		||||
	- fixed a line clipping bug (reported by Craig McDaniel)
 | 
			
		||||
	- fixed RGB color over/underflow bug for very tiny triangles
 | 
			
		||||
    Known problems:
 | 
			
		||||
	- NURBS or evaluator surfaces inside display lists don't always work
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.4.2  May 17, 2001
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- deleting the currently bound texture could cause bad problems
 | 
			
		||||
	- using fog could result in random vertex alpha values
 | 
			
		||||
	- AA triangle rendering could touch pixels outside right window bound
 | 
			
		||||
	- fixed byteswapping problem in clear_32bit_ximage() function
 | 
			
		||||
	- fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
 | 
			
		||||
	- fixed memory leak in glXUseXFont()
 | 
			
		||||
	- fragment sampling in AA triangle function was off by 1/2 pixel
 | 
			
		||||
	- Windows: reading pixels from framebuffer didn't always work
 | 
			
		||||
	- glConvolutionFilter2D could segfault or cause FP exception
 | 
			
		||||
	- fixed segfaults in FX and X drivers when using tex unit 1 but not 0
 | 
			
		||||
	- GL_NAND logicop didn't work right in RGBA mode
 | 
			
		||||
	- fixed a memory corruption bug in vertex buffer reset code
 | 
			
		||||
	- clearing the softwara alpha buffer with scissoring was broken
 | 
			
		||||
	- fixed a few color index mode fog bugs
 | 
			
		||||
	- fixed some bad assertions in color index mode
 | 
			
		||||
	- fixed FX line 'stipple' bug #420091
 | 
			
		||||
	- fixed stencil buffer clear width/height typo
 | 
			
		||||
	- fixed GL error glitches in gl[Client]ActiveTextureARB()
 | 
			
		||||
	- fixed Windows compilation problem in texutil.c
 | 
			
		||||
	- fixed 1/8-pixel AA triangle sampling error
 | 
			
		||||
    Changes:
 | 
			
		||||
	- optimized writing mono-colored pixel spans to X pixmaps
 | 
			
		||||
	- increased max viewport size to 2048 x 2048
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.5  June 21, 2001
 | 
			
		||||
    New:
 | 
			
		||||
	- internals of Mesa divided into modular pieces (Keith Whitwell)
 | 
			
		||||
	- 100% OpenGL 1.2 conformance (passes all conformance tests)
 | 
			
		||||
	- new AA line algorithm
 | 
			
		||||
	- GL_EXT_convolution extension
 | 
			
		||||
	- GL_ARB_imaging subset
 | 
			
		||||
	- OSMesaCreateContextExt() function
 | 
			
		||||
	- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
			
		||||
	- GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
 | 
			
		||||
	- GL_EXT_fog_coord extension (Keith Whitwell)
 | 
			
		||||
	- GL_EXT_secondary_color extension (Keith Whitwell)
 | 
			
		||||
	- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
			
		||||
	- GL_SGIX_depth_texture extension
 | 
			
		||||
	- GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
 | 
			
		||||
	- demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
 | 
			
		||||
	- GL_ARB_texture_env_combine extension
 | 
			
		||||
	- GL_ARB_texture_env_dot3 extension
 | 
			
		||||
	- GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
 | 
			
		||||
	- OSMesaCreateContextExt() function
 | 
			
		||||
	- libOSMesa.so library, contains the OSMesa driver interface
 | 
			
		||||
	- GL/glxext.h header file for GLX extensions
 | 
			
		||||
	- somewhat faster software texturing, fogging, depth testing
 | 
			
		||||
	- all color-index conformance tests now pass (only 8bpp tested)
 | 
			
		||||
	- SPARC assembly language TCL optimizations (David Miller)
 | 
			
		||||
	- GL_SGIS_generate_mipmap extension
 | 
			
		||||
    Bug Fixes:
 | 
			
		||||
	- fbiRev and tmuRev were unitialized when using Glide3
 | 
			
		||||
	- fixed a few color index mode conformance failures; all pass now
 | 
			
		||||
	- now appling antialiasing coverage to alpha after texturing
 | 
			
		||||
	- colors weren't getting clamped to [0,1] before color table lookup
 | 
			
		||||
	- fixed RISC alignment errors caused by COPY_4UBV macro
 | 
			
		||||
	- drawing wide, flat-shaded lines could cause a segfault
 | 
			
		||||
	- vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
 | 
			
		||||
    Changes:
 | 
			
		||||
	- SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
 | 
			
		||||
	- new libOSMesa.so library, contains the OSMesa driver interface
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.0  October 22, 2001
 | 
			
		||||
    New:
 | 
			
		||||
	- Mesa 4.0 implements the OpenGL 1.3 specification
 | 
			
		||||
	- GL_IBM_rasterpos_clip extension
 | 
			
		||||
	- GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
 | 
			
		||||
	- GL_ARB_texture_mirrored_repeat extension
 | 
			
		||||
	- WindML UGL driver (Stephane Raimbault)
 | 
			
		||||
	- added OSMESA_MAX_WIDTH/HEIGHT queries
 | 
			
		||||
	- attempted compiliation fixes for Solaris 5, 7 and 8
 | 
			
		||||
	- updated glext.h and glxext.h files
 | 
			
		||||
	- updated Windows driver (Karl Schultz)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- added some missing GLX 1.3 tokens to include/GL/glx.h
 | 
			
		||||
	- GL_COLOR_MATRIX changes weren't recognized by teximage functions
 | 
			
		||||
	- glCopyPixels with scale and bias was broken
 | 
			
		||||
	- glRasterPos with lighting could segfault
 | 
			
		||||
	- glDeleteTextures could leave a dangling pointer
 | 
			
		||||
	- Proxy textures for cube maps didn't work
 | 
			
		||||
	- fixed a number of 16-bit color channel bugs
 | 
			
		||||
	- fixed a few minor memory leaks
 | 
			
		||||
	- GLX context sharing was broken in 3.5
 | 
			
		||||
	- fixed state-update bugs in glPopClientAttrib()
 | 
			
		||||
	- fixed glDrawRangeElements() bug
 | 
			
		||||
	- fixed a glPush/PopAttrib() bug related to texture binding
 | 
			
		||||
	- flat-shaded, textured lines were broken
 | 
			
		||||
	- fixed a dangling pointer problem in the XMesa code (Chris Burghart)
 | 
			
		||||
	- lighting didn't always produce the correct alpha value
 | 
			
		||||
	- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.0.1 December 17, 2001
 | 
			
		||||
    New:
 | 
			
		||||
	- better sub-pixel sample positions for AA triangles (Ray Tice)
 | 
			
		||||
	- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- added missing break statements in glGet*() for multisample cases
 | 
			
		||||
	- fixed uninitialized hash table mutex bug (display lists / texobjs)
 | 
			
		||||
	- fixed bad teximage error check conditional (bug 476846)
 | 
			
		||||
	- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
 | 
			
		||||
	- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
 | 
			
		||||
	- silence some compiler warnings (gcc 2.96)
 | 
			
		||||
	- enable the #define GL_VERSION_1_3 in GL/gl.h
 | 
			
		||||
	- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
 | 
			
		||||
	- fixed glu.h typedef problem found with MSDev 6.0
 | 
			
		||||
	- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
 | 
			
		||||
	- added missing 'const' to glXGetContextIDEXT() in glxext.h
 | 
			
		||||
	- fixed a few glXGetProcAddress() errors (texture compression, etc)
 | 
			
		||||
	- fixed start index bug in compiled vertex arrays (Keith)
 | 
			
		||||
	- fixed compilation problems in src/SPARC/glapi_sparc.S
 | 
			
		||||
	- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
 | 
			
		||||
	- use glXGetProcAddressARB in GLUT to avoid extension linking problems
 | 
			
		||||
	- provoking vertex of flat-shaded, color-index triangles was wrong
 | 
			
		||||
	- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
 | 
			
		||||
	- glTexParameter didn't flush the vertex buffer (Ray Tice)
 | 
			
		||||
	- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
 | 
			
		||||
	- fixed bug in normal length caching (ParaView lighting bug)
 | 
			
		||||
	- fixed separate_specular color bug found in Chimera (18 Dec 2001)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.0.2  April 2, 2002
 | 
			
		||||
    New:
 | 
			
		||||
	- New DOS (DJGPP) driver written by Daniel Borca
 | 
			
		||||
	- New driver interface functions for TCL drivers (such as Radeon DRI)
 | 
			
		||||
	- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
 | 
			
		||||
	  if using deep color channels
 | 
			
		||||
	- latest GL/glext.h and GL/glxext.h headers from SGI
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- GL_BLEND with non-black texture env color wasn't always correct
 | 
			
		||||
	- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
 | 
			
		||||
	- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
 | 
			
		||||
	- glReadPixels was sometimes mistakenly clipped by the scissor box
 | 
			
		||||
	- glDraw/ReadPixels didn't catch all the errors that they should have
 | 
			
		||||
	- Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
 | 
			
		||||
	- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
 | 
			
		||||
	- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
 | 
			
		||||
	- glColorMask as sometimes effecting glXSwapBuffers()
 | 
			
		||||
	- fixed a potential bug in XMesaGarbageCollect()
 | 
			
		||||
	- N threads rendering into one window didn't work reliably
 | 
			
		||||
	- glCopyPixels didn't work for deep color channels
 | 
			
		||||
	- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
 | 
			
		||||
	- glPopAttrib() didn't correctly restore user clip planes
 | 
			
		||||
	- user clip planes failed for some perspective projections (Chromium)
 | 
			
		||||
    Known bugs:
 | 
			
		||||
	- mipmap LOD computation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.0.3  June 25, 2002
 | 
			
		||||
    New:
 | 
			
		||||
	- updated GL/glext.h file (version 15)
 | 
			
		||||
	- corrected MMX blend code (Jose Fonseca)
 | 
			
		||||
	- support for software-based alpha planes in Windows driver
 | 
			
		||||
	- updated GGI driver (Filip Spacek)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
 | 
			
		||||
	- OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
			
		||||
	- assorted conformance fixes for 16-bit/channel rendering
 | 
			
		||||
	- texcombine alpha subtraction mode was broken
 | 
			
		||||
	- fixed lighting bug with non-uniform scaling and display lists
 | 
			
		||||
	- fixed bug when deleting shared display lists
 | 
			
		||||
	- disabled SPARC cliptest assembly code (Mesa bug 544665)
 | 
			
		||||
	- fixed a couple Solaris compilation/link problems
 | 
			
		||||
	- blending clipped glDrawPixels didn't always work
 | 
			
		||||
	- glGetTexImage() didn't accept packed pixel types
 | 
			
		||||
	- glPixelMapu[is]v() could explode given too large of pixelmap
 | 
			
		||||
	- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
 | 
			
		||||
	- glXCopyContext() could lead to segfaults
 | 
			
		||||
	- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- lots of C++ (g++) code clean-ups
 | 
			
		||||
	- lots of T&L updates for the Radeon DRI driver
 | 
			
		||||
    Known bugs:
 | 
			
		||||
	- mipmap LOD computation (fixed for Mesa 4.1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.0.4  October 3, 2002
 | 
			
		||||
    New:
 | 
			
		||||
	- GL_NV_texture_rectangle extension
 | 
			
		||||
	- updated glext.h header (version 17)
 | 
			
		||||
	- updated DOS driver (Daniel Borca)
 | 
			
		||||
	- updated BeOS R5 driver (Philippe Houdoin)
 | 
			
		||||
	- added GL_IBM_texture_mirror_repeat
 | 
			
		||||
	- glxinfo now takes -l option to print interesting OpenGL limits info
 | 
			
		||||
	- GL_MESA_ycbcr_texture extension
 | 
			
		||||
	- GL_APPLE_client_storage extension (for some DRI drivers only)
 | 
			
		||||
	- GL_MESA_pack_invert extension
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed GL_LINEAR fog bug by adding clamping
 | 
			
		||||
	- fixed FP exceptions found using Alpha CPU
 | 
			
		||||
	- 3dfx MESA_GLX_FX=window (render to window) didn't work
 | 
			
		||||
	- fixed memory leak in wglCreateContest (Karl Schultz)
 | 
			
		||||
	- define GLAPIENTRY and GLAPI if undefined in glu.h
 | 
			
		||||
	- wglGetProcAddress didn't handle all API functions
 | 
			
		||||
	- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
 | 
			
		||||
	- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
 | 
			
		||||
	- error checking in compressed tex image functions had some glitches
 | 
			
		||||
	- fixed AIX compile problem in src/config.c
 | 
			
		||||
	- glGetTexImage was using pixel unpacking instead of packing params
 | 
			
		||||
	- auto-mipmap generation for cube maps was incorrect
 | 
			
		||||
    Changes:
 | 
			
		||||
	- max texture units reduced to six to accomodate texture rectangles
 | 
			
		||||
	- removed unfinished GL_MESA_sprite_point extension code
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4.1  October 29, 2002
 | 
			
		||||
    New:
 | 
			
		||||
	- GL_NV_vertex_program extension
 | 
			
		||||
	- GL_NV_vertex_program1_1 extension
 | 
			
		||||
	- GL_ARB_window_pos extension
 | 
			
		||||
	- GL_ARB_depth_texture extension
 | 
			
		||||
	- GL_ARB_shadow extension
 | 
			
		||||
	- GL_ARB_shadow_ambient extension
 | 
			
		||||
	- GL_EXT_shadow_funcs extension
 | 
			
		||||
	- GL_ARB_point_parameters extension
 | 
			
		||||
	- GL_ARB_texture_env_crossbar
 | 
			
		||||
	- GL_NV_point_sprite extension
 | 
			
		||||
	- GL_NV_texture_rectangle extension
 | 
			
		||||
	- GL_EXT_multi_draw_arrays extension
 | 
			
		||||
	- GL_EXT_stencil_two_side extension
 | 
			
		||||
	- GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
 | 
			
		||||
	- GL_ATI_texture_mirror_once extension (Ian Romanick)
 | 
			
		||||
	- massive overhaul/simplification of software rasterizer module,
 | 
			
		||||
	  many contributions from Klaus Niederkrueger
 | 
			
		||||
	- faster software texturing in some cases (i.e. trilinear filtering)
 | 
			
		||||
	- new OSMesaGetProcAddress() function
 | 
			
		||||
	- more blend modes implemented with MMX code (Jose Fonseca)
 | 
			
		||||
	- added glutGetProcAddress() to GLUT
 | 
			
		||||
	- added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
 | 
			
		||||
	- pbinfo and pbdemo PBuffer programs
 | 
			
		||||
	- glxinfo -v prints transprent pixel info (Gerd Sussner)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- better mipmap LOD computation (prevents excessive blurriness)
 | 
			
		||||
	- OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
			
		||||
	- assorted conformance fixes for 16-bit/channel rendering
 | 
			
		||||
	- texcombine alpha subtraction mode was broken
 | 
			
		||||
	- fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
 | 
			
		||||
	- clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
 | 
			
		||||
	- fixed divide by zero error in NURBS tessellator (Jon Perry)
 | 
			
		||||
	- fixed GL_LINEAR fog bug by adding clamping
 | 
			
		||||
	- fixed FP exceptions found using Alpha CPU
 | 
			
		||||
	- 3dfx/glide driver render-to-window feature was broken
 | 
			
		||||
	- added missing GLX_TRANSPARENT_RGB token to glx.h
 | 
			
		||||
	- fixed error checking related to paletted textures
 | 
			
		||||
	- fixed reference count error in glDeleteTextures (Randy Fayan)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- New spec file and Python code to generate some GL dispatch files
 | 
			
		||||
	- Glide driver defaults to "no" with autoconf/automake
 | 
			
		||||
	- updated demos/stex3d with new options
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5.0  November 13, 2002
 | 
			
		||||
    New:
 | 
			
		||||
	- OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
 | 
			
		||||
	- removed some overlooked debugging code
 | 
			
		||||
	- glxinfo updated to support GLX_ARB_multisample
 | 
			
		||||
	- GLUT now support GLX_ARB_multisample
 | 
			
		||||
	- updated DOS driver (Daniel Borca)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- GL_POINT and GL_LINE-mode polygons didn't obey cull state
 | 
			
		||||
	- fixed potential bug in _mesa_align_malloc/calloc()
 | 
			
		||||
	- fixed missing triangle bug when running vertex programs
 | 
			
		||||
	- fixed a few HPUX compilation problems
 | 
			
		||||
	- FX (Glide) driver didn't compile
 | 
			
		||||
	- setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
 | 
			
		||||
	- a few EXT functions, like glGenTexturesEXT, were no-ops
 | 
			
		||||
	- a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
 | 
			
		||||
	  glMultiDrawArrays and glMultiDrawElements were missing
 | 
			
		||||
	- glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
 | 
			
		||||
	- Pentium 4 Mobile was mistakenly identified as having 3DNow!
 | 
			
		||||
	- fixed one-bit error in point/line fragment Z calculation
 | 
			
		||||
	- fixed potential segfault in fakeglx code
 | 
			
		||||
	- fixed color overflow problem in DOT3 texture env mode
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5.0.1  March 30, 2003
 | 
			
		||||
    New:
 | 
			
		||||
	- DOS driver updates from Daniel Borca
 | 
			
		||||
	- updated GL/gl_mangle.h file (Bill Hoffman)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- auto mipmap generation for cube maps was broken (bug 641363)
 | 
			
		||||
	- writing/clearing software alpha channels was unreliable
 | 
			
		||||
	- minor compilation fixes for OS/2 (Evgeny Kotsuba)
 | 
			
		||||
	- fixed some bad assertions found with shadowtex demo
 | 
			
		||||
	- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
 | 
			
		||||
	- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
 | 
			
		||||
	- fixed potential segfault in texture object validation (bug 659012)
 | 
			
		||||
	- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
 | 
			
		||||
	- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
 | 
			
		||||
	- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
 | 
			
		||||
	- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
 | 
			
		||||
	- fixed compilation problem on Solaris7/x86 (bug 536406)
 | 
			
		||||
	- fixed prefetch bug in 3DNow! code (Felix Kuhling)
 | 
			
		||||
	- fixed NeXT build problem (FABSF macro)
 | 
			
		||||
	- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
 | 
			
		||||
	- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
 | 
			
		||||
	- AA line and triangle Z values are now rounded, not truncated
 | 
			
		||||
	- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
 | 
			
		||||
	- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
 | 
			
		||||
	- fixed a minor GL_COLOR_MATERIAL bug
 | 
			
		||||
	- NV vertex program EXP instruction was broken
 | 
			
		||||
	- glColorMask misbehaved with X window / pixmap rendering
 | 
			
		||||
	- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
 | 
			
		||||
	- attempt to fix GGI compilation problem when MesaDemos not present
 | 
			
		||||
	- NV vertex program ARL-relative fetches didn't work
 | 
			
		||||
    Changes:
 | 
			
		||||
	- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
 | 
			
		||||
	- updated winpos and pointblast demos to use ARB extensions
 | 
			
		||||
	- disable SPARC normal transformation code (bug 673938)
 | 
			
		||||
	- GLU fixes for OS/2 (Evgeny Kotsuba)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5.0.2  September 5, 2003
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed texgen problem causing texcoord's Q to be zero (stex3d)
 | 
			
		||||
	- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
 | 
			
		||||
	- GL_CURRENT_MATRIX_NV query was wrong
 | 
			
		||||
	- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
 | 
			
		||||
	- GL_LIST_MODE query wasn't correct
 | 
			
		||||
	- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
 | 
			
		||||
	- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
 | 
			
		||||
	- blended, wide lines didn't always work correctly (bug 711595)
 | 
			
		||||
	- glVertexAttrib4svNV w component was always 1
 | 
			
		||||
	- fixed bug in GL_IBM_rasterpos_clip (missing return)
 | 
			
		||||
	- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
 | 
			
		||||
	- a few Solaris compilation fixes
 | 
			
		||||
	- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
 | 
			
		||||
	- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
 | 
			
		||||
	- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
 | 
			
		||||
	- glFog() didn't clamp fog colors
 | 
			
		||||
	- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
 | 
			
		||||
	  gl[Get]TexParameteri[v] functions
 | 
			
		||||
	- fixed invalid memory references in glTexGen functions (bug 781602)
 | 
			
		||||
	- integer-valued color arrays weren't handled correctly
 | 
			
		||||
	- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
 | 
			
		||||
	- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
 | 
			
		||||
    Changes:
 | 
			
		||||
	- build GLUT with -fexceptions so C++ apps propogate exceptions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5.1  December 17, 2003
 | 
			
		||||
    New:
 | 
			
		||||
	- reorganized directory tree
 | 
			
		||||
	- GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
 | 
			
		||||
	- GL_ATI_texture_env_combine3 extension (Ian Romanick)
 | 
			
		||||
	- GL_SGI_texture_color_table extension (Eric Plante)
 | 
			
		||||
	- GL_NV_fragment_program extension
 | 
			
		||||
	- GL_NV_light_max_exponent extension
 | 
			
		||||
	- GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
 | 
			
		||||
	- GL_ARB_occlusion_query extension
 | 
			
		||||
	- GL_ARB_point_sprite extension
 | 
			
		||||
	- GL_ARB_texture_non_power_of_two extension
 | 
			
		||||
	- GL_IBM_multimode_draw_arrays extension
 | 
			
		||||
	- GL_EXT_texture_mirror_clamp extension (Ian Romanick)
 | 
			
		||||
	- GL_ARB_vertex_buffer_object extension
 | 
			
		||||
	- new X86 feature detection code (Petr Sebor)
 | 
			
		||||
	- less memory used for display lists and vertex buffers
 | 
			
		||||
	- demo of per-pixel lighting with a fragment program (demos/fplight.c)
 | 
			
		||||
	- new version (18) of glext.h header
 | 
			
		||||
	- new spriteblast.c demo of GL_ARB_point_sprite
 | 
			
		||||
	- faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1)
 | 
			
		||||
	- faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- really enable OpenGL 1.4 features in DOS driver.
 | 
			
		||||
	- fixed issues in glDrawPixels and glCopyPixels for very wide images
 | 
			
		||||
	- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
 | 
			
		||||
	- fixed some texgen bugs reported by Daniel Borca
 | 
			
		||||
	- fixed wglMakeCurrent(NULL, NULL) bug (#835861)
 | 
			
		||||
	- fixed glTexSubImage3D z-offset bug (Cedric Gautier)
 | 
			
		||||
	- fixed RGBA blend enable bug (Ville Syrjala)
 | 
			
		||||
	- glAccum is supposed to be a no-op in selection/feedback mode
 | 
			
		||||
	- fixed texgen bug #597589 (John Popplewell)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- dropped API trace feature (src/Trace/)
 | 
			
		||||
	- documentation overhaul.  merged with website content.  more html.
 | 
			
		||||
	- glxgears.c demo updated to use GLX swap rate extensions
 | 
			
		||||
	- glTexImage1/2/3D now allows width/height/depth = 0
 | 
			
		||||
	- disable SPARC asm code on Linux (bug 852204)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.0  January 16, 2004
 | 
			
		||||
    New:
 | 
			
		||||
	- full OpenGL 1.5 support
 | 
			
		||||
	- updated GL/glext.h file to version 21
 | 
			
		||||
    Changes:
 | 
			
		||||
	- changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
 | 
			
		||||
	  clamping issue
 | 
			
		||||
	- updated suno5-gcc configs
 | 
			
		||||
	- glColor3 functions sometimes resulted in undefined alpha values
 | 
			
		||||
	- fixed FP divide by zero error seen on VMS with xlockmore, others
 | 
			
		||||
	- fixed vertex/fragment program debug problem (bug 873011)
 | 
			
		||||
	- building on AIX with gcc works now
 | 
			
		||||
	- glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
 | 
			
		||||
	- glDrawRangeElements tried to modify potentially read-only storage
 | 
			
		||||
	- updated files for building on Windows
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.0.1  April 2, 2004
 | 
			
		||||
    New:
 | 
			
		||||
	- upgraded glext.h to version 22
 | 
			
		||||
	- new build targets (Dan Schikore)
 | 
			
		||||
	- new linux-x86-opteron build target (Heath Feather)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- glBindProgramARB didn't update all necessary state
 | 
			
		||||
	- fixed build problems on OpenBSD
 | 
			
		||||
	- omit CVS directories from tarballs
 | 
			
		||||
	- glGetTexImage(GL_COLOR_INDEX) was broken
 | 
			
		||||
	- fixed an infinite loop in t&l module
 | 
			
		||||
	- silenced some valgrind warnings about using unitialized memory
 | 
			
		||||
	- fixed some compilation/link glitches on IRIX (Mike Stephens)
 | 
			
		||||
	- glBindProgram wasn't getting compiled into display lists
 | 
			
		||||
	- GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
 | 
			
		||||
	- two-sided lighting and vertex program didn't work (bug 887330)
 | 
			
		||||
	- stores to program parameter registers in vertex state programs
 | 
			
		||||
	  didn't work.
 | 
			
		||||
	- fixed glOrtho bug found with gcc 3.2.2 (RH9)
 | 
			
		||||
	- glXCreateWindow() wasn't fully implemented (bug 890894)
 | 
			
		||||
	- generic vertex attribute arrays didn't work in display lists
 | 
			
		||||
	- vertex buffer objects' default usage and access fields were wrong
 | 
			
		||||
	- glDrawArrays with start!=0 was broken
 | 
			
		||||
	- fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
 | 
			
		||||
	- linux-osmesa16-static config didn't work
 | 
			
		||||
	- fixed a few color index rendering problems (bug 910687)
 | 
			
		||||
	- glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
 | 
			
		||||
	- OSMesa RGB and BGR modes were broken
 | 
			
		||||
	- glProgramStringARB mistakenly required a null-terminated string
 | 
			
		||||
	- fragment program XPD instruction was incorrect
 | 
			
		||||
	- glGetMaterial() didn't work reliably
 | 
			
		||||
	- ARB_fragment_program KIL instruction was incorrect
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.1  August 18, 2004
 | 
			
		||||
    New:
 | 
			
		||||
	- Revamped Makefile system
 | 
			
		||||
	- glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
 | 
			
		||||
	- internal driver interface changes related to texture object
 | 
			
		||||
	  allocation, vertex/fragment programs, BlendEquationSeparate, etc.
 | 
			
		||||
	- option to walk triangle edges with double-precision floats
 | 
			
		||||
	  (Justin Novosad of Discreet) (see config.h file)
 | 
			
		||||
	- support for AUX buffers in software GLX driver
 | 
			
		||||
	- updated glext.h to version 24 and glxext.h to version 6
 | 
			
		||||
	- new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
 | 
			
		||||
	- updated BeOS support (Philippe Houdoin)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- fragment fog interpolation is perspective corrected now
 | 
			
		||||
	- new glTexImage code, much cleaner, may be a bit faster
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- glArrayElement in display lists didn't handle generic vertex attribs
 | 
			
		||||
	- glFogCoord didn't always work properly
 | 
			
		||||
	- ARB_fragment_program fog options didn't work
 | 
			
		||||
	- frag prog TEX instruction no longer incorrectly divides s,t,r by q
 | 
			
		||||
	- ARB frag prog TEX and TEXP instructions now use LOD=0
 | 
			
		||||
	- glTexEnviv in display lists didn't work
 | 
			
		||||
	- glRasterPos didn't do texgen or apply texture matrix
 | 
			
		||||
	- GL_DOUBLE-valued vertex arrays were broken in some cases
 | 
			
		||||
	- fixed texture rectangle edge/border sampling bugs
 | 
			
		||||
	- sampling an incomplete texture in a fragment program would segfault
 | 
			
		||||
	- glTexImage was missing a few error checks
 | 
			
		||||
	- fixed some minor glGetTexParameter glitches
 | 
			
		||||
	- GL_INTENSITY was mistakenly accepted as a <format> to glTexImage
 | 
			
		||||
	- fragment program writes to RC/HC register were broken
 | 
			
		||||
	- fixed a few glitches in GL_HP_occlusion_test extension
 | 
			
		||||
	- glBeginQueryARB and glEndQueryARB didn't work inside display lists
 | 
			
		||||
	- vertex program state references were broken
 | 
			
		||||
	- fixed triangle color interpolation bug on AIX (Shane Blackett)
 | 
			
		||||
	- fixed a number of minor memory leaks (bug #1002030)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.2  October 2, 2004
 | 
			
		||||
    New:
 | 
			
		||||
	- enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
 | 
			
		||||
	- updated Doxygen support (Jose Fonseca)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- some GGI driver updates (Christoph Egger, bug 1025977)
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
 | 
			
		||||
	- fixed a few compilation issues on IRIX
 | 
			
		||||
	- fixed a matrix classification bug (reported by Wes Bethel)
 | 
			
		||||
	- we weren't reseting the vertex/fragment program error state
 | 
			
		||||
	  before parsing (Dave Reveman)
 | 
			
		||||
	- adjust texcoords for sampling texture rectangles (Dave Reveman)
 | 
			
		||||
	- glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
 | 
			
		||||
	- repeated calls to glDeleteTexture(t) could lead to a crash
 | 
			
		||||
	- fixed potential ref count bugs in VBOs and vertex/fragment programs
 | 
			
		||||
	- spriteblast demo didn't handle window size changes correctly
 | 
			
		||||
	- glTexSubImage didn't handle pixels=NULL correctly for PBOs
 | 
			
		||||
	- fixed color index mode glDrawPixels bug (Karl Schultz)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.2.1  December 9, 2004
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- don't apply regular fog or color sum when using a fragment program
 | 
			
		||||
	- glProgramEnvParameter4fARB always generated an error on
 | 
			
		||||
	  GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
 | 
			
		||||
	- glVertexAttrib3svNV and glVertexAttrib3svARB were broken
 | 
			
		||||
	- fixed width/height mix-up in glSeparableFilter2D()
 | 
			
		||||
	- fixed regression in glCopyPixels + convolution
 | 
			
		||||
	- glReadPixels from a clipped front color buffer didn't always work
 | 
			
		||||
	- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
 | 
			
		||||
	- Attempting queries/accesses of VBO 0 weren't detected as errors
 | 
			
		||||
	- paletted textures failed if the palette had fewer than 256 entries
 | 
			
		||||
    Changes:
 | 
			
		||||
	- fixed a bunch of compiler warnings found with gcc 3.4
 | 
			
		||||
	- bug reports should to go bugzilla.freedesktop.org
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.3  July 20, 2005
 | 
			
		||||
    New:
 | 
			
		||||
	- GL_EXT_framebuffer_object extension
 | 
			
		||||
	- GL_ARB_draw_buffers extension
 | 
			
		||||
	- GL_ARB_pixel_buffer_object extension
 | 
			
		||||
	- GL_OES_read_format extension (Ian Romanick)
 | 
			
		||||
	- DirectFB driver (Claudio Ciccani)
 | 
			
		||||
	- x86_64 vertex transformation code (Mikko T.)
 | 
			
		||||
	- Updated GL/glext.h to version 29
 | 
			
		||||
    Changes:
 | 
			
		||||
	- added -stereo option for glxgears demo (Jacek Rosik)
 | 
			
		||||
	- updated the PBuffer demo code in xdemos/ directory
 | 
			
		||||
	- glDeleteTextures/Programs/Buffers() now makes the object ID
 | 
			
		||||
	  available for immediate re-use
 | 
			
		||||
	- assorted 64-bit clean-ups fixes (x86_64 and Win64)
 | 
			
		||||
	- lots of internal changes for GL_EXT_framebuffer_object
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- some functions didn't support PBO functionality
 | 
			
		||||
	- glGetTexImage didn't convert color index images to RGBA as required
 | 
			
		||||
	- fragment program texcoords were sometimes wrong for points and lines
 | 
			
		||||
	- fixed problem with negative dot product in arbfplight, fplight demos
 | 
			
		||||
	- fixed bug in perspective correction of antialiased, textured lines
 | 
			
		||||
	- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
 | 
			
		||||
	- fixed a couple per-pixel fog bugs (Soju Matsumoto)
 | 
			
		||||
	- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
 | 
			
		||||
	- fixed float parsing bug in ARB frag/vert programs (bug 2520)
 | 
			
		||||
	- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
 | 
			
		||||
	- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
 | 
			
		||||
	- glXChooseFBConfig() crashed if attribList pointer was NULL
 | 
			
		||||
	- program state.light[n].spot.direction.w was wrong value (bug 3083)
 | 
			
		||||
	- fragment program fog option required glEnable(GL_FOG) - wrong.
 | 
			
		||||
	- glColorTable() could produce a Mesa implementation error (bug 3135)
 | 
			
		||||
	- RasterPos could get corrupted by color index rendering path
 | 
			
		||||
	- Removed bad XTranslateCoordinates call when rendering to Pixmaps
 | 
			
		||||
	- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
 | 
			
		||||
	- fixed a few Darwin compilation problems
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.3.1
 | 
			
		||||
    This was an intermediate release for X.org which wasn't otherwise released.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.3.2  August 19, 2005
 | 
			
		||||
    New:
 | 
			
		||||
	- The distribution now includes the DRI drivers and GLX code
 | 
			
		||||
    Changes:
 | 
			
		||||
	- Made the DRI "new" driver interface standard, remove old code
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- GL_ARB_vertex/fragment_shader were mistakenly listed in the
 | 
			
		||||
	  extensions string
 | 
			
		||||
	- negative relative addressing in vertex programs was broken
 | 
			
		||||
	- update/fix SPARC assembly code for vertex transformation
 | 
			
		||||
	- fixed memory leak when freeing GLX drawables/renderbuffers
 | 
			
		||||
	- fixed display list memory leak
 | 
			
		||||
	- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
 | 
			
		||||
	- wglGetProcAddress() didn't handle wgl-functions
 | 
			
		||||
	- fixed glxext.h cross-compile issue (Colin Harrison)
 | 
			
		||||
	- assorted DRI driver fixes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.4  October 24, 2005
 | 
			
		||||
    New:
 | 
			
		||||
	- Added a fast XOR line drawing function in Xlib driver
 | 
			
		||||
	- Added support for GL_ARB_texture_mirrored_repeat to savage
 | 
			
		||||
	  driver (supported only on Savage4 hardware).
 | 
			
		||||
    Changes:
 | 
			
		||||
	- Mesa now packaged in three parts: Library, Demos and GLUT
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
 | 
			
		||||
	- Some files were present multiple times in the 6.3.2 tarballs
 | 
			
		||||
	- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
 | 
			
		||||
	- glxgears_fbconfig demo didn't work (bug 4237)
 | 
			
		||||
	- fixed bug when bilinear sampling 2d textures with borders
 | 
			
		||||
	- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
 | 
			
		||||
	- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
 | 
			
		||||
	- fixed a few problems with proxy color tables (bug 4270)
 | 
			
		||||
	- fixed precision problem in Z clearing (bug 4395)
 | 
			
		||||
	- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
 | 
			
		||||
	- fixed potential segfault caused by reading pixels outside
 | 
			
		||||
	  of renderbuffer bounds
 | 
			
		||||
	- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
 | 
			
		||||
	- fixed memory corruption bug involving software alpha buffers
 | 
			
		||||
	- glReadPixels clipped by window bounds was sometimes broken
 | 
			
		||||
	- glDraw/CopyPixels of stencil data ignored the stencil write mask
 | 
			
		||||
	- glReadPixels from a texture bound to a framebuffer object didn't work
 | 
			
		||||
	- glIsRender/FramebufferEXT weren't totally correct
 | 
			
		||||
	- fixed a number of point size attenuation/fade bugs
 | 
			
		||||
	- fixed glFogCoord bug 4729
 | 
			
		||||
	- GLX encoding for transpose matrix functions was broken
 | 
			
		||||
	- fixed broken fragment program KIL and SWZ instructions
 | 
			
		||||
	- fragment programs that wrote result.depth.z didn't work
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.4.1  November 30, 2005
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- redefining a vertex program string didn't take effect in TNL module
 | 
			
		||||
	- fixed occasional segfault upon vertex/fragment parsing error
 | 
			
		||||
	- vertex program LIT instruction didn't handle 0^0=1 correctly
 | 
			
		||||
	- fragment program fog option didn't work with glDrawPixels, glBitmap
 | 
			
		||||
	- USE_MGL_NAMESPACE didn't work for x86-64
 | 
			
		||||
	- OSMesa demos were missing from previous release tarballs
 | 
			
		||||
	- fixed problem with float->ushort conversion in glClear (bug 4992)
 | 
			
		||||
	- popping of GL_EYE_PLANE texgen state was broken (bug 4996)
 | 
			
		||||
	- popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
 | 
			
		||||
	- fixed occasional triangle color interpolation problem on VMS
 | 
			
		||||
	- work around invalid free() call (bug 5131)
 | 
			
		||||
	- fixed BSD X server compilation problem by including stdint.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.4.2  February 2, 2006
 | 
			
		||||
    New:
 | 
			
		||||
	- added OSMesaColorClamp() function/feature
 | 
			
		||||
	- added wglGetExtensionStringARB() function
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed some problems when building on Windows
 | 
			
		||||
	- GLw header files weren't installed by installmesa script (bug 5396)
 | 
			
		||||
	- GL/glfbdev.h file was missing from tarballs
 | 
			
		||||
	- fixed TNL initialization bug which could lead to crash (bug 5791)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6.5  March 31, 2006
 | 
			
		||||
    New:
 | 
			
		||||
	- OpenGL Shading Language support through GL_ARB_shader_objects,
 | 
			
		||||
	  GL_ARB_shading_language_100, GL_ARB_vertex_shader and
 | 
			
		||||
	  GL_ARB_fragment_shader (done by Michal Krol)
 | 
			
		||||
	- GL_EXT_packed_depth_stencil extension
 | 
			
		||||
	- GL_EXT_timer_query extension
 | 
			
		||||
	- GL_EXT_framebuffer_blit extension
 | 
			
		||||
	- GL_ARB_half_float_pixel
 | 
			
		||||
	- reflect demo improved to support multiple windows
 | 
			
		||||
	- singlebuffer demo (shows no/little-flicker single-buffered rendering)
 | 
			
		||||
	- r200: enable GL_ARB_texture_env_crossbar, separate the texture
 | 
			
		||||
	  sampling unit bits from the texture env combine enable bits
 | 
			
		||||
	- r200: add support for GL_ATI_fragment_shader
 | 
			
		||||
	- added fast XOR-mode line drawing optimization
 | 
			
		||||
	- radeon: add support for all 3 tmus, GL_ARB_texture_cube_map
 | 
			
		||||
	  and GL_EXT_fog_coord
 | 
			
		||||
	- MESA_GLX_ALPHA_BITS env var for xlib driver
 | 
			
		||||
	- many DRI driver updates (including screen rotation support
 | 
			
		||||
	  for the Intel DRI driver)
 | 
			
		||||
    Changes:
 | 
			
		||||
	- removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead)
 | 
			
		||||
	- removed GL_SGIX/SGIS_pixel_texture extensions
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed glxcontextmodes.c datatype problem (bug 5835)
 | 
			
		||||
	- fixed aix-gcc build/install bugs (bug 5874)
 | 
			
		||||
	- fixed some bugs in texture env program generation
 | 
			
		||||
	- glXCopyContext() didn't handle texture object bindings properly
 | 
			
		||||
	- glXCopyContext() didn't copy all lighting state
 | 
			
		||||
	- fixed FreeBSD config (Pedro Giffuni)
 | 
			
		||||
	- fixed some minor framebuffer object bugs
 | 
			
		||||
	- replaced dprintf() with _glu_printf() in GLU (bug 6244)
 | 
			
		||||
	- fixed a number of thread safety bugs/regressions
 | 
			
		||||
	- fixed a number of GLU tesselator bugs (John Shell, bug 6339)
 | 
			
		||||
	- paletted texturing was broken w/ floating point palettes (K. Schultz)
 | 
			
		||||
	- lots of assorted framebuffer object bug fixes
 | 
			
		||||
 | 
			
		||||
6.5.1  August 31, 2006
 | 
			
		||||
    New:
 | 
			
		||||
	- Intel i965 DRI driver
 | 
			
		||||
	- GL_APPLE_vertex_array_object extension (Ian Romanick)
 | 
			
		||||
	- GL_EXT_texture_sRGB extension
 | 
			
		||||
	- GL_EXT_gpu_program_parameters (Ian Romanick)
 | 
			
		||||
	- "engine" demo
 | 
			
		||||
	- updated fbdev driver and GLUT for fbdev (Sean D'Epagnier)
 | 
			
		||||
	- many updates to the DRI drivers
 | 
			
		||||
    Changes:
 | 
			
		||||
	- The glVertexAttribARB functions no longer alias the conventional
 | 
			
		||||
	  vertex attributes.
 | 
			
		||||
	- glxinfo program prints more info with -l option
 | 
			
		||||
	- GL_FRAGMENT_PROGRAM_NV and GL_FRAGMENT_PROGRAM_ARB are now
 | 
			
		||||
	  compatible, in terms of glBindProgramARB()
 | 
			
		||||
    Bug fixes:
 | 
			
		||||
	- fixed broken texture border handling for depth textures (bug 6498)
 | 
			
		||||
	- removed the test for duplicated framebuffer attachments, per
 | 
			
		||||
	  version 117 of the GL_EXT_framebuffer_object specification
 | 
			
		||||
	- fixed a few render-to-texture bugs, including render to depth texture
 | 
			
		||||
	- clipping of lines against user-defined clip planes was broken (6512)
 | 
			
		||||
	- assembly language dispatch for SPARC was broken (bug 6484)
 | 
			
		||||
	- assorted compilation fixes on various Unix platforms (Dan Schikore)
 | 
			
		||||
	- glPopAttrib could restore an invalid value for GL_DRAW_BUFFER
 | 
			
		||||
	- assorted minor fixes for 16 and 32 bit/channel modes
 | 
			
		||||
	- fixed assorted bugs in texture compression paths
 | 
			
		||||
	- fixed indirect rendering vertex array crashes (bug 6863)
 | 
			
		||||
	- glDrawPixels GL_INDEX_OFFSET didn't always work
 | 
			
		||||
	- fixed convolution memory leak (bug 7077)
 | 
			
		||||
	- rectangular depth textures didn't work
 | 
			
		||||
	- invalid mode to glBegin didn't generate an error (bug 7142)
 | 
			
		||||
	- 'normalized' parameter to glVertexAttribPointerARB didn't work
 | 
			
		||||
	- disable bogus GLX_SGI_video_sync extension in xlib driver
 | 
			
		||||
	- fixed R128 driver locking bug (Martijn van Oosterhout)
 | 
			
		||||
	- using evaluators with vertex programs caused crashes (bug 7564)
 | 
			
		||||
	- fragment.position wasn't set correctly for point/line primitives
 | 
			
		||||
	- fixed parser bug for scalar sources for GL_NV_fragment_program
 | 
			
		||||
	- max fragment program length was incorrectly 128, now 1024
 | 
			
		||||
	- writes to result.depth in fragment programs weren't clamped to [0,1]
 | 
			
		||||
	- fixed potential dangling pointer bug in glBindProgram()
 | 
			
		||||
	- fixed some memory leaks (and potential crashes) in Xlib driver
 | 
			
		||||
 
 | 
			
		||||
@@ -1,83 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Application Issues</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Application Issues</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
This page documents known issues with some OpenGL applications.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Topogun</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least)
 | 
			
		||||
creates a GLX visual without requesting a depth buffer.
 | 
			
		||||
This causes bad rendering if the OpenGL driver happens to choose a visual
 | 
			
		||||
without a depth buffer.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 9.1.2 and later (will) support a DRI configuration option to work around
 | 
			
		||||
this issue.
 | 
			
		||||
Using the <a href="http://dri.freedesktop.org/wiki/DriConf">driconf</a> tool,
 | 
			
		||||
set the "Create all visuals with a depth buffer" option before running Topogun.
 | 
			
		||||
Then, all GLX visuals will be created with a depth buffer.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Old OpenGL games</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Some old OpenGL games (approx. ten years or older) may crash during
 | 
			
		||||
start-up because of an extension string buffer-overflow problem.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The problem is a modern OpenGL driver will return a very long string
 | 
			
		||||
for the glGetString(GL_EXTENSIONS) query and if the application
 | 
			
		||||
naively copies the string into a fixed-size buffer it can overflow the
 | 
			
		||||
buffer and crash the application.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
 | 
			
		||||
to the approximate release year of the game.
 | 
			
		||||
This will cause the glGetString(GL_EXTENSIONS) query to only report extensions
 | 
			
		||||
older than the given year.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
For example, if the game was released in 2001, do
 | 
			
		||||
<pre>
 | 
			
		||||
export MESA_EXTENSION_MAX_YEAR=2001
 | 
			
		||||
</pre>
 | 
			
		||||
before running the game.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Viewperf</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list
 | 
			
		||||
of Viewperf issues.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,255 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Compilation and Installation using Autoconf</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Compilation and Installation using Autoconf</h1>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li><p><a href="#basic">Basic Usage</a></li>
 | 
			
		||||
<li><p><a href="#driver">Driver Options</a>
 | 
			
		||||
  <ul>
 | 
			
		||||
  <li><a href="#xlib">Xlib Driver Options</a></li>
 | 
			
		||||
  <li><a href="#dri">DRI Driver Options</a></li>
 | 
			
		||||
  <li><a href="#osmesa">OSMesa Driver Options</a></li>
 | 
			
		||||
  </ul>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2 id="basic">1. Basic Usage</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The autoconf generated configure script can be used to guess your
 | 
			
		||||
platform and change various options for building Mesa. To use the
 | 
			
		||||
configure script, type:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
    ./configure
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To see a short description of all the options, type <code>./configure
 | 
			
		||||
--help</code>. If you are using a development snapshot and the configure
 | 
			
		||||
script does not exist, type <code>./autogen.sh</code> to generate it
 | 
			
		||||
first. If you know the options you want to pass to
 | 
			
		||||
<code>configure</code>, you can pass them to <code>autogen.sh</code>. It
 | 
			
		||||
will run <code>configure</code> with these options after it is
 | 
			
		||||
generated. Once you have run <code>configure</code> and set the options
 | 
			
		||||
to your preference, type:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
    make
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
This will produce libGL.so and several other libraries depending on the
 | 
			
		||||
options you have chosen. Later, if you want to rebuild for a different
 | 
			
		||||
configuration run <code>make realclean</code> before rebuilding.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Some of the generic autoconf options are used with Mesa:
 | 
			
		||||
</p>
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>--prefix=PREFIX</code></dt>
 | 
			
		||||
<dd><p>This is the root directory where
 | 
			
		||||
files will be installed by <code>make install</code>. The default is
 | 
			
		||||
<code>/usr/local</code>.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--exec-prefix=EPREFIX</code></dt>
 | 
			
		||||
<dd><p>This is the root directory
 | 
			
		||||
where architecture-dependent files will be installed. In Mesa, this is
 | 
			
		||||
only used to derive the directory for the libraries. The default is
 | 
			
		||||
<code>${prefix}</code>.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--libdir=LIBDIR</code></dt>
 | 
			
		||||
<dd><p>This option specifies the directory
 | 
			
		||||
where the GL libraries will be installed. The default is
 | 
			
		||||
<code>${exec_prefix}/lib</code>. It also serves as the name of the
 | 
			
		||||
library staging area in the source tree. For instance, if the option
 | 
			
		||||
<code>--libdir=/usr/local/lib64</code> is used, the libraries will be
 | 
			
		||||
created in a <code>lib64</code> directory at the top of the Mesa source
 | 
			
		||||
tree.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--enable-static, --disable-shared</code></dt>
 | 
			
		||||
<dd><p>By default, Mesa
 | 
			
		||||
will build shared libraries. Either of these options will force static
 | 
			
		||||
libraries to be built. It is not currently possible to build static and
 | 
			
		||||
shared libraries in a single pass.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
 | 
			
		||||
<dd><p>These environment variables
 | 
			
		||||
control the C and C++ compilers used during the build. By default,
 | 
			
		||||
<code>gcc</code> and <code>g++</code> are used and the debug/optimisation
 | 
			
		||||
level is left unchanged.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>LDFLAGS</code></dt>
 | 
			
		||||
<dd><p>An environment variable specifying flags to
 | 
			
		||||
pass when linking programs. These should be empty and
 | 
			
		||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
 | 
			
		||||
it can be used to direct the linker to use libraries in nonstandard
 | 
			
		||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>PKG_CONFIG_PATH</code></dt>
 | 
			
		||||
<dd><p>The
 | 
			
		||||
<code>pkg-config</code> utility is a hard requirement for cofiguring and
 | 
			
		||||
building mesa. It is used to search for external libraries
 | 
			
		||||
on the system. This environment variable is used to control the search
 | 
			
		||||
path for <code>pkg-config</code>. For instance, setting
 | 
			
		||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
 | 
			
		||||
package metadata in <code>/usr/X11R6</code> before the standard
 | 
			
		||||
directories.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
There are also a few general options for altering the Mesa build:
 | 
			
		||||
</p>
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>--enable-debug</code></dt>
 | 
			
		||||
<dd><p>This option will enable compiler
 | 
			
		||||
options and macros to aid in debugging the Mesa libraries.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--disable-asm</code></dt>
 | 
			
		||||
<dd><p>There are assembly routines
 | 
			
		||||
available for a few architectures. These will be used by default if
 | 
			
		||||
one of these architectures is detected. This option ensures that
 | 
			
		||||
assembly will not be used.</p>
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--build=</code></dt>
 | 
			
		||||
<dt><code>--host=</code></dt>
 | 
			
		||||
<dd><p>By default, the build will compile code for the architecture that
 | 
			
		||||
it's running on. In order to build cross-compile Mesa on a x86-64 machine
 | 
			
		||||
that is to run on a i686, one would need to set the options to:</p>
 | 
			
		||||
 | 
			
		||||
<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p>
 | 
			
		||||
 | 
			
		||||
Note that these can vary from distribution to distribution. For more
 | 
			
		||||
information check with the
 | 
			
		||||
<a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html">
 | 
			
		||||
autoconf manual</a>.
 | 
			
		||||
Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>In some cases a single compiler is capable of handling both architectures
 | 
			
		||||
(multilib) in that case one would need to set the <code>CC,CXX</code> variables
 | 
			
		||||
appending the correct machine options. Seek your compiler documentation for
 | 
			
		||||
further information -
 | 
			
		||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc
 | 
			
		||||
machine dependent options</a></p>
 | 
			
		||||
 | 
			
		||||
<p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target
 | 
			
		||||
architecture, the following should be sufficient to configure multilib Mesa</p>
 | 
			
		||||
 | 
			
		||||
<code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code>
 | 
			
		||||
</dd>
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2 id="driver">2. Driver Options</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
There are several different driver modes that Mesa can use. These are
 | 
			
		||||
described in more detail in the <a href="install.html">basic
 | 
			
		||||
installation instructions</a>. The Mesa driver is controlled through the
 | 
			
		||||
configure options <code>--enable-xlib-glx</code>, <code>--enable-osmesa</code>,
 | 
			
		||||
and <code>--enable-dri</code>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h3 id="xlib">Xlib</h3><p>
 | 
			
		||||
It uses Xlib as a software renderer to do all rendering. It corresponds
 | 
			
		||||
to the option <code>--enable-xlib-glx</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
 | 
			
		||||
accelerated OpenGL rendering. Enable the DRI drivers with the option
 | 
			
		||||
<code>--enable-dri</code>. See the <a href="install.html">basic
 | 
			
		||||
installation instructions</a> for details on prerequisites for the DRI
 | 
			
		||||
drivers.
 | 
			
		||||
 | 
			
		||||
<!-- DRI specific options -->
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>--with-dri-driverdir=DIR</code>
 | 
			
		||||
<dd><p> This option specifies the
 | 
			
		||||
location the DRI drivers will be installed to and the location libGL
 | 
			
		||||
will search for DRI drivers. The default is <code>${libdir}/dri</code>.
 | 
			
		||||
<dt><code>--with-dri-drivers=DRIVER,DRIVER,...</code>
 | 
			
		||||
<dd><p> This option
 | 
			
		||||
allows a specific set of DRI drivers to be built. For example,
 | 
			
		||||
<code>--with-dri-drivers="swrast,i965,radeon,nouveau"</code>. By
 | 
			
		||||
default, the drivers will be chosen depending on the target platform.
 | 
			
		||||
See the directory <code>src/mesa/drivers/dri</code> in the source tree
 | 
			
		||||
for available drivers. Beware that the swrast DRI driver is used by both
 | 
			
		||||
libGL and the X.Org xserver GLX module to do software rendering, so you
 | 
			
		||||
may run into problems if it is not available.
 | 
			
		||||
<!-- This explanation might be totally bogus. Kristian? -->
 | 
			
		||||
<dt><code>--disable-driglx-direct</code>
 | 
			
		||||
<dd><p> Disable direct rendering in
 | 
			
		||||
GLX. Normally, direct hardware rendering through the DRI drivers and
 | 
			
		||||
indirect software rendering are enabled in GLX. This option disables
 | 
			
		||||
direct rendering entirely. It can be useful on architectures where
 | 
			
		||||
kernel DRM modules are not available.
 | 
			
		||||
<dt><code>--enable-glx-tls</code> <dd><p>
 | 
			
		||||
Enable Thread Local Storage (TLS) in
 | 
			
		||||
GLX.
 | 
			
		||||
<dt><code>--with-expat=DIR</code>
 | 
			
		||||
<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p>
 | 
			
		||||
<p>The DRI-enabled libGL uses expat to
 | 
			
		||||
parse the DRI configuration files in <code>/etc/drirc</code> and
 | 
			
		||||
<code>~/.drirc</code>. This option allows a specific expat installation
 | 
			
		||||
to be used. For example, <code>--with-expat=/usr/local</code> will
 | 
			
		||||
search for expat headers and libraries in <code>/usr/local/include</code>
 | 
			
		||||
and <code>/usr/local/lib</code>, respectively.
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
<h3 id="osmesa">OSMesa </h3><p> No libGL is built in this
 | 
			
		||||
mode. Instead, the driver code is built into the Off-Screen Mesa
 | 
			
		||||
(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a>
 | 
			
		||||
page for more details.  It corresponds to the option
 | 
			
		||||
<code>--enable-osmesa</code>.
 | 
			
		||||
 | 
			
		||||
<!-- OSMesa specific options -->
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>--with-osmesa-bits=BITS</code>
 | 
			
		||||
<dd><p> This option allows the size
 | 
			
		||||
of the color channel in bits to be specified. By default, an 8-bit
 | 
			
		||||
channel will be used, and the driver will be named libOSMesa. Other
 | 
			
		||||
options are 16- and 32-bit color channels, which will add the bit size
 | 
			
		||||
to the library name. For example, <code>--with-osmesa-bits=16</code>
 | 
			
		||||
will create the libOSMesa16 library with a 16-bit color channel.
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2 id="library">3. Library Options</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The configure script provides more fine grained control over the GL
 | 
			
		||||
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>.
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,61 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Bug Reporting</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Bug Database</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Mesa bug database is hosted on
 | 
			
		||||
<a href="http://freedesktop.org">freedesktop.org</a>.
 | 
			
		||||
The old bug database on SourceForge is no longer used.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To file a Mesa bug, go to
 | 
			
		||||
<a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa">
 | 
			
		||||
Bugzilla on freedesktop.org</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Please follow these bug reporting guidelines:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Check if a new version of Mesa is available which might have fixed
 | 
			
		||||
the problem.
 | 
			
		||||
<li>Check if your bug is already reported in the database.
 | 
			
		||||
<li>Monitor your bug report for requests for additional information, etc.
 | 
			
		||||
<li>If you're reporting a crash, try to use your debugger (gdb) to get a stack
 | 
			
		||||
trace. Also, recompile Mesa in debug mode to get more detailed information.
 | 
			
		||||
<li>Describe in detail how to reproduce the bug, especially with games
 | 
			
		||||
and applications that the Mesa developers might not be familiar with.
 | 
			
		||||
<li>Provide a simple GLUT-based test program if possible
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Bug reports will automatically be forwarded by bugzilla to the Mesa
 | 
			
		||||
developer's mailing list.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The easier a bug is to reproduce, the sooner it will be fixed.
 | 
			
		||||
Please do everything you can to facilitate quickly fixing bugs.
 | 
			
		||||
If your bug report is vague or your test program doesn't compile
 | 
			
		||||
easily, the problem may not be fixed very quickly.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,703 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Conformance</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Conformance</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
 | 
			
		||||
implementations.  I, Brian Paul, have been given a copy of the tests
 | 
			
		||||
for testing Mesa.  The tests are not publicly available.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
This file has the latest results of testing Mesa with the OpenGL 1.2
 | 
			
		||||
conformance tests.  Testing with the preliminary OpenGL 1.3 tests has
 | 
			
		||||
also been done.  Mesa passes all the 1.3 tests.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The tests were run using the software X11 device driver on 24-bpp
 | 
			
		||||
and 16-bpp displays.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 4.0 and later pass all conformance tests at all path levels.
 | 
			
		||||
Note that this says nothing about the conformance of hardware drivers
 | 
			
		||||
based upon Mesa.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
 | 
			
		||||
COVERAGE TESTS
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Test that all API functions accept the legal parameters and reject
 | 
			
		||||
illegal parameters.  The result of each test is either pass or fail.
 | 
			
		||||
 | 
			
		||||
% covgl
 | 
			
		||||
OpenGL Coverage Test.
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
covgl passed.
 | 
			
		||||
 | 
			
		||||
covgl passed at 1.1 level.
 | 
			
		||||
 | 
			
		||||
covgl passed at 1.2 level.
 | 
			
		||||
 | 
			
		||||
covgl passed for ARB_multitexture.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
% covglu
 | 
			
		||||
OpenGL GLU Coverage Test.
 | 
			
		||||
Version 1.3
 | 
			
		||||
 | 
			
		||||
covglu passed.
 | 
			
		||||
 | 
			
		||||
covglu passed at 1.1 level.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
% covglx
 | 
			
		||||
OpenGL X Coverage Test.
 | 
			
		||||
Version 1.1.1
 | 
			
		||||
 | 
			
		||||
covglx passed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
% primtest -v
 | 
			
		||||
Open GL Primitives Test.
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
[lots of output deleted]
 | 
			
		||||
 | 
			
		||||
292159 Combinations.
 | 
			
		||||
primtest passed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GL CONFORMANCE TEST
 | 
			
		||||
===================
 | 
			
		||||
 | 
			
		||||
Render test images, read them back, then test for expected results.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
% conform -v 2
 | 
			
		||||
 | 
			
		||||
OpenGL Conformance Test
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path inactive.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 35. Indirect Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (5, 6, 5, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
Must Pass test passed.
 | 
			
		||||
Divide By Zero test passed.
 | 
			
		||||
Viewport Clamp test passed.
 | 
			
		||||
Matrix Stack test passed.
 | 
			
		||||
Matrix Stack Mixing test passed.
 | 
			
		||||
Vertex Order test passed.
 | 
			
		||||
Transformations test passed.
 | 
			
		||||
Transformation Normal test passed.
 | 
			
		||||
Viewport Transformation test passed.
 | 
			
		||||
Buffer Clear test passed.
 | 
			
		||||
Buffer Corners test passed.
 | 
			
		||||
Buffer Color test passed.
 | 
			
		||||
Color Ramp test passed.
 | 
			
		||||
Mask test passed.
 | 
			
		||||
Buffer Invariance test passed.
 | 
			
		||||
Accumulation Buffer test passed.
 | 
			
		||||
Select test passed.
 | 
			
		||||
Feedback test passed.
 | 
			
		||||
Scissor test passed.
 | 
			
		||||
Alpha Plane Function test passed.
 | 
			
		||||
Stencil Plane Clear test passed.
 | 
			
		||||
Stencil Plane Corners test passed.
 | 
			
		||||
Stencil Plane Operation test passed.
 | 
			
		||||
Stencil Plane Function test passed.
 | 
			
		||||
Depth Buffer Clear test passed.
 | 
			
		||||
Depth Buffer Function test passed.
 | 
			
		||||
Blend test passed.
 | 
			
		||||
Dither test passed.
 | 
			
		||||
LogicOp Function test does not exist for an RGB visual.
 | 
			
		||||
DrawPixels test passed.
 | 
			
		||||
CopyPixels test passed.
 | 
			
		||||
Bitmap Rasterization test passed.
 | 
			
		||||
Point Rasterization test passed.
 | 
			
		||||
Anti-aliased Point test passed.
 | 
			
		||||
Line Rasterization test passed.
 | 
			
		||||
Line Stipple test passed.
 | 
			
		||||
Anti-aliased Line test passed.
 | 
			
		||||
Horizontal and Vertical Line test passed.
 | 
			
		||||
Triangle Rasterization test passed.
 | 
			
		||||
Triangle Tile test passed.
 | 
			
		||||
Triangle Stipple test passed.
 | 
			
		||||
Anti-aliased Triangles test passed.
 | 
			
		||||
Quad Rasterization test passed.
 | 
			
		||||
Polygon Face test passed.
 | 
			
		||||
Polygon Cull test passed.
 | 
			
		||||
Polygon Stipple test passed.
 | 
			
		||||
Polygon Edge test passed.
 | 
			
		||||
Ambient Material test passed.
 | 
			
		||||
Ambient Scene test passed.
 | 
			
		||||
Attenuation Position test passed.
 | 
			
		||||
Diffuse Light test passed.
 | 
			
		||||
Diffuse Material test passed.
 | 
			
		||||
Diffuse Material Normal test passed.
 | 
			
		||||
Diffuse Material Positioning test passed.
 | 
			
		||||
Emissive Material test passed.
 | 
			
		||||
Specular Exponent test passed.
 | 
			
		||||
Specular Exponent Normal test passed.
 | 
			
		||||
Specular Local Eye Half Angle test passed.
 | 
			
		||||
Specular Light test passed.
 | 
			
		||||
Specular Material test passed.
 | 
			
		||||
Specular Normal test passed.
 | 
			
		||||
Spot Positioning test passed.
 | 
			
		||||
Spot Exponent and Positioning test passed.
 | 
			
		||||
Spot Exponent and Direction test passed.
 | 
			
		||||
Fog Exponential test passed.
 | 
			
		||||
Fog Linear test passed.
 | 
			
		||||
Texture Decal test passed.
 | 
			
		||||
Texture Border test passed.
 | 
			
		||||
Mipmaps Selection test passed.
 | 
			
		||||
Mipmaps Interpolation test passed.
 | 
			
		||||
Display Lists test passed.
 | 
			
		||||
Evaluator test passed.
 | 
			
		||||
Evaluator Color test passed.
 | 
			
		||||
Texture Edge Clamp test passed.
 | 
			
		||||
Packed Pixels test passed.
 | 
			
		||||
Texture LOD test passed.
 | 
			
		||||
Rescale Normal test passed.
 | 
			
		||||
Color Table test passed.
 | 
			
		||||
Convolution test passed.
 | 
			
		||||
Convolution Border test passed.
 | 
			
		||||
Histogram test passed.
 | 
			
		||||
MinMax test passed.
 | 
			
		||||
MultiTexture test passed.
 | 
			
		||||
 | 
			
		||||
Conform passed.
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
% conform -v 2 -p 1
 | 
			
		||||
 | 
			
		||||
OpenGL Conformance Test
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path level = 1.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 35. Indirect Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (5, 6, 5, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
Must Pass test passed.
 | 
			
		||||
Divide By Zero test passed.
 | 
			
		||||
Viewport Clamp test passed.
 | 
			
		||||
Matrix Stack test passed.
 | 
			
		||||
Matrix Stack Mixing test passed.
 | 
			
		||||
Vertex Order test passed.
 | 
			
		||||
Transformations test passed.
 | 
			
		||||
Transformation Normal test passed.
 | 
			
		||||
Viewport Transformation test passed.
 | 
			
		||||
Buffer Clear test passed.
 | 
			
		||||
Buffer Corners test passed.
 | 
			
		||||
Buffer Color test passed.
 | 
			
		||||
Color Ramp test passed.
 | 
			
		||||
Mask test passed.
 | 
			
		||||
Buffer Invariance test passed.
 | 
			
		||||
Accumulation Buffer test passed.
 | 
			
		||||
Select test passed.
 | 
			
		||||
Feedback test passed.
 | 
			
		||||
Scissor test passed.
 | 
			
		||||
Alpha Plane Function test passed.
 | 
			
		||||
Stencil Plane Clear test passed.
 | 
			
		||||
Stencil Plane Corners test passed.
 | 
			
		||||
Stencil Plane Operation test passed.
 | 
			
		||||
Stencil Plane Function test passed.
 | 
			
		||||
Depth Buffer Clear test passed.
 | 
			
		||||
Depth Buffer Function test passed.
 | 
			
		||||
Blend test passed.
 | 
			
		||||
Dither test passed.
 | 
			
		||||
LogicOp Function test does not exist for an RGB visual.
 | 
			
		||||
DrawPixels test passed.
 | 
			
		||||
CopyPixels test passed.
 | 
			
		||||
Bitmap Rasterization test passed.
 | 
			
		||||
Point Rasterization test passed.
 | 
			
		||||
Anti-aliased Point test passed.
 | 
			
		||||
Line Rasterization test passed.
 | 
			
		||||
Line Stipple test passed.
 | 
			
		||||
Anti-aliased Line test passed.
 | 
			
		||||
Horizontal and Vertical Line test passed.
 | 
			
		||||
Triangle Rasterization test passed.
 | 
			
		||||
Triangle Tile test passed.
 | 
			
		||||
Triangle Stipple test passed.
 | 
			
		||||
Anti-aliased Triangles test passed.
 | 
			
		||||
Quad Rasterization test passed.
 | 
			
		||||
Polygon Face test passed.
 | 
			
		||||
Polygon Cull test passed.
 | 
			
		||||
Polygon Stipple test passed.
 | 
			
		||||
Polygon Edge test passed.
 | 
			
		||||
Ambient Material test passed.
 | 
			
		||||
Ambient Scene test passed.
 | 
			
		||||
Attenuation Position test passed.
 | 
			
		||||
Diffuse Light test passed.
 | 
			
		||||
Diffuse Material test passed.
 | 
			
		||||
Diffuse Material Normal test passed.
 | 
			
		||||
Diffuse Material Positioning test passed.
 | 
			
		||||
Emissive Material test passed.
 | 
			
		||||
Specular Exponent test passed.
 | 
			
		||||
Specular Exponent Normal test passed.
 | 
			
		||||
Specular Local Eye Half Angle test passed.
 | 
			
		||||
Specular Light test passed.
 | 
			
		||||
Specular Material test passed.
 | 
			
		||||
Specular Normal test passed.
 | 
			
		||||
Spot Positioning test passed.
 | 
			
		||||
Spot Exponent and Positioning test passed.
 | 
			
		||||
Spot Exponent and Direction test passed.
 | 
			
		||||
Fog Exponential test passed.
 | 
			
		||||
Fog Linear test passed.
 | 
			
		||||
Texture Decal test passed.
 | 
			
		||||
Texture Border test passed.
 | 
			
		||||
Mipmaps Selection test passed.
 | 
			
		||||
Mipmaps Interpolation test passed.
 | 
			
		||||
Display Lists test passed.
 | 
			
		||||
Evaluator test passed.
 | 
			
		||||
Evaluator Color test passed.
 | 
			
		||||
Texture Edge Clamp test passed.
 | 
			
		||||
Packed Pixels test passed.
 | 
			
		||||
Texture LOD test passed.
 | 
			
		||||
Rescale Normal test passed.
 | 
			
		||||
Color Table test passed.
 | 
			
		||||
Convolution test passed.
 | 
			
		||||
Convolution Border test passed.
 | 
			
		||||
Histogram test passed.
 | 
			
		||||
MinMax test passed.
 | 
			
		||||
MultiTexture test passed.
 | 
			
		||||
 | 
			
		||||
Conform passed.
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
% conform -v 2 -p 2
 | 
			
		||||
 | 
			
		||||
OpenGL Conformance Test
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path level = 2.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 35. Indirect Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (5, 6, 5, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
Must Pass test passed.
 | 
			
		||||
Divide By Zero test passed.
 | 
			
		||||
Viewport Clamp test passed.
 | 
			
		||||
Matrix Stack test passed.
 | 
			
		||||
Matrix Stack Mixing test passed.
 | 
			
		||||
Vertex Order test passed.
 | 
			
		||||
Transformations test passed.
 | 
			
		||||
Transformation Normal test passed.
 | 
			
		||||
Viewport Transformation test passed.
 | 
			
		||||
Buffer Clear test passed.
 | 
			
		||||
Buffer Corners test passed.
 | 
			
		||||
Buffer Color test passed.
 | 
			
		||||
Color Ramp test passed.
 | 
			
		||||
Mask test passed.
 | 
			
		||||
Buffer Invariance test passed.
 | 
			
		||||
Accumulation Buffer test passed.
 | 
			
		||||
Select test passed.
 | 
			
		||||
Feedback test passed.
 | 
			
		||||
Scissor test passed.
 | 
			
		||||
Alpha Plane Function test passed.
 | 
			
		||||
Stencil Plane Clear test passed.
 | 
			
		||||
Stencil Plane Corners test passed.
 | 
			
		||||
Stencil Plane Operation test passed.
 | 
			
		||||
Stencil Plane Function test passed.
 | 
			
		||||
Depth Buffer Clear test passed.
 | 
			
		||||
Depth Buffer Function test passed.
 | 
			
		||||
Blend test passed.
 | 
			
		||||
Dither test passed.
 | 
			
		||||
LogicOp Function test does not exist for an RGB visual.
 | 
			
		||||
DrawPixels test passed.
 | 
			
		||||
CopyPixels test passed.
 | 
			
		||||
Bitmap Rasterization test passed.
 | 
			
		||||
Point Rasterization test passed.
 | 
			
		||||
Anti-aliased Point test passed.
 | 
			
		||||
Line Rasterization test passed.
 | 
			
		||||
Line Stipple test passed.
 | 
			
		||||
Anti-aliased Line test passed.
 | 
			
		||||
Horizontal and Vertical Line test passed.
 | 
			
		||||
Triangle Rasterization test passed.
 | 
			
		||||
Triangle Tile test passed.
 | 
			
		||||
Triangle Stipple test passed.
 | 
			
		||||
Anti-aliased Triangles test passed.
 | 
			
		||||
Quad Rasterization test passed.
 | 
			
		||||
Polygon Face test passed.
 | 
			
		||||
Polygon Cull test passed.
 | 
			
		||||
Polygon Stipple test passed.
 | 
			
		||||
Polygon Edge test passed.
 | 
			
		||||
Ambient Material test passed.
 | 
			
		||||
Ambient Scene test passed.
 | 
			
		||||
Attenuation Position test passed.
 | 
			
		||||
Diffuse Light test passed.
 | 
			
		||||
Diffuse Material test passed.
 | 
			
		||||
Diffuse Material Normal test passed.
 | 
			
		||||
Diffuse Material Positioning test passed.
 | 
			
		||||
Emissive Material test passed.
 | 
			
		||||
Specular Exponent test passed.
 | 
			
		||||
Specular Exponent Normal test passed.
 | 
			
		||||
Specular Local Eye Half Angle test passed.
 | 
			
		||||
Specular Light test passed.
 | 
			
		||||
Specular Material test passed.
 | 
			
		||||
Specular Normal test passed.
 | 
			
		||||
Spot Positioning test passed.
 | 
			
		||||
Spot Exponent and Positioning test passed.
 | 
			
		||||
Spot Exponent and Direction test passed.
 | 
			
		||||
Fog Exponential test passed.
 | 
			
		||||
Fog Linear test passed.
 | 
			
		||||
Texture Decal test passed.
 | 
			
		||||
Texture Border test passed.
 | 
			
		||||
Mipmaps Selection test passed.
 | 
			
		||||
Mipmaps Interpolation test passed.
 | 
			
		||||
Display Lists test passed.
 | 
			
		||||
Evaluator test passed.
 | 
			
		||||
Evaluator Color test passed.
 | 
			
		||||
Texture Edge Clamp test passed.
 | 
			
		||||
Packed Pixels test passed.
 | 
			
		||||
Texture LOD test passed.
 | 
			
		||||
Rescale Normal test passed.
 | 
			
		||||
Color Table test passed.
 | 
			
		||||
Convolution test passed.
 | 
			
		||||
Convolution Border test passed.
 | 
			
		||||
Histogram test passed.
 | 
			
		||||
MinMax test passed.
 | 
			
		||||
MultiTexture test passed.
 | 
			
		||||
 | 
			
		||||
Conform passed.
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
% conform -v 2 -p 3
 | 
			
		||||
 | 
			
		||||
OpenGL Conformance Test
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path level = 3.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 35. Indirect Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (5, 6, 5, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
Must Pass test passed.
 | 
			
		||||
Divide By Zero test passed.
 | 
			
		||||
Viewport Clamp test passed.
 | 
			
		||||
Matrix Stack test passed.
 | 
			
		||||
Matrix Stack Mixing test passed.
 | 
			
		||||
Vertex Order test passed.
 | 
			
		||||
Transformations test passed.
 | 
			
		||||
Transformation Normal test passed.
 | 
			
		||||
Viewport Transformation test passed.
 | 
			
		||||
Buffer Clear test passed.
 | 
			
		||||
Buffer Corners test passed.
 | 
			
		||||
Buffer Color test passed.
 | 
			
		||||
Color Ramp test passed.
 | 
			
		||||
Mask test passed.
 | 
			
		||||
Buffer Invariance test passed.
 | 
			
		||||
Accumulation Buffer test passed.
 | 
			
		||||
Select test passed.
 | 
			
		||||
Feedback test passed.
 | 
			
		||||
Scissor test passed.
 | 
			
		||||
Alpha Plane Function test passed.
 | 
			
		||||
Stencil Plane Clear test passed.
 | 
			
		||||
Stencil Plane Corners test passed.
 | 
			
		||||
Stencil Plane Operation test passed.
 | 
			
		||||
Stencil Plane Function test passed.
 | 
			
		||||
Depth Buffer Clear test passed.
 | 
			
		||||
Depth Buffer Function test passed.
 | 
			
		||||
Blend test passed.
 | 
			
		||||
Dither test passed.
 | 
			
		||||
LogicOp Function test does not exist for an RGB visual.
 | 
			
		||||
DrawPixels test passed.
 | 
			
		||||
CopyPixels test passed.
 | 
			
		||||
Bitmap Rasterization test passed.
 | 
			
		||||
Point Rasterization test passed.
 | 
			
		||||
Anti-aliased Point test passed.
 | 
			
		||||
Line Rasterization test passed.
 | 
			
		||||
Line Stipple test passed.
 | 
			
		||||
Anti-aliased Line test passed.
 | 
			
		||||
Horizontal and Vertical Line test passed.
 | 
			
		||||
Triangle Rasterization test passed.
 | 
			
		||||
Triangle Tile test passed.
 | 
			
		||||
Triangle Stipple test passed.
 | 
			
		||||
Anti-aliased Triangles test passed.
 | 
			
		||||
Quad Rasterization test passed.
 | 
			
		||||
Polygon Face test passed.
 | 
			
		||||
Polygon Cull test passed.
 | 
			
		||||
Polygon Stipple test passed.
 | 
			
		||||
Polygon Edge test passed.
 | 
			
		||||
Ambient Material test passed.
 | 
			
		||||
Ambient Scene test passed.
 | 
			
		||||
Attenuation Position test passed.
 | 
			
		||||
Diffuse Light test passed.
 | 
			
		||||
Diffuse Material test passed.
 | 
			
		||||
Diffuse Material Normal test passed.
 | 
			
		||||
Diffuse Material Positioning test passed.
 | 
			
		||||
Emissive Material test passed.
 | 
			
		||||
Specular Exponent test passed.
 | 
			
		||||
Specular Exponent Normal test passed.
 | 
			
		||||
Specular Local Eye Half Angle test passed.
 | 
			
		||||
Specular Light test passed.
 | 
			
		||||
Specular Material test passed.
 | 
			
		||||
Specular Normal test passed.
 | 
			
		||||
Spot Positioning test passed.
 | 
			
		||||
Spot Exponent and Positioning test passed.
 | 
			
		||||
Spot Exponent and Direction test passed.
 | 
			
		||||
Fog Exponential test passed.
 | 
			
		||||
Fog Linear test passed.
 | 
			
		||||
Texture Decal test passed.
 | 
			
		||||
Texture Border test passed.
 | 
			
		||||
Mipmaps Selection test passed.
 | 
			
		||||
Mipmaps Interpolation test passed.
 | 
			
		||||
Display Lists test passed.
 | 
			
		||||
Evaluator test passed.
 | 
			
		||||
Evaluator Color test passed.
 | 
			
		||||
Texture Edge Clamp test passed.
 | 
			
		||||
Packed Pixels test passed.
 | 
			
		||||
Texture LOD test passed.
 | 
			
		||||
Rescale Normal test passed.
 | 
			
		||||
Color Table test passed.
 | 
			
		||||
Convolution test passed.
 | 
			
		||||
Convolution Border test passed.
 | 
			
		||||
Histogram test passed.
 | 
			
		||||
MinMax test passed.
 | 
			
		||||
MultiTexture test passed.
 | 
			
		||||
 | 
			
		||||
Conform passed.
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------------
 | 
			
		||||
% conform -v 2 -p 4
 | 
			
		||||
 | 
			
		||||
OpenGL Conformance Test
 | 
			
		||||
Version 1.2
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path level = 4.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 35. Indirect Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (5, 6, 5, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
Must Pass test passed.
 | 
			
		||||
Divide By Zero test passed.
 | 
			
		||||
Viewport Clamp test passed.
 | 
			
		||||
Matrix Stack test passed.
 | 
			
		||||
Matrix Stack Mixing test passed.
 | 
			
		||||
Vertex Order test passed.
 | 
			
		||||
Transformations test passed.
 | 
			
		||||
Transformation Normal test passed.
 | 
			
		||||
Viewport Transformation test passed.
 | 
			
		||||
Buffer Clear test passed.
 | 
			
		||||
Buffer Corners test passed.
 | 
			
		||||
Buffer Color test passed.
 | 
			
		||||
Color Ramp test passed.
 | 
			
		||||
Mask test passed.
 | 
			
		||||
Buffer Invariance test passed.
 | 
			
		||||
Accumulation Buffer test passed.
 | 
			
		||||
Select test passed.
 | 
			
		||||
Feedback test passed.
 | 
			
		||||
Scissor test passed.
 | 
			
		||||
Alpha Plane Function test passed.
 | 
			
		||||
Stencil Plane Clear test passed.
 | 
			
		||||
Stencil Plane Corners test passed.
 | 
			
		||||
Stencil Plane Operation test passed.
 | 
			
		||||
Stencil Plane Function test passed.
 | 
			
		||||
Depth Buffer Clear test passed.
 | 
			
		||||
Depth Buffer Function test passed.
 | 
			
		||||
Blend test passed.
 | 
			
		||||
Dither test passed.
 | 
			
		||||
LogicOp Function test does not exist for an RGB visual.
 | 
			
		||||
DrawPixels test passed.
 | 
			
		||||
CopyPixels test passed.
 | 
			
		||||
Bitmap Rasterization test passed.
 | 
			
		||||
Point Rasterization test passed.
 | 
			
		||||
Anti-aliased Point test passed.
 | 
			
		||||
Line Rasterization test passed.
 | 
			
		||||
Line Stipple test passed.
 | 
			
		||||
Anti-aliased Line test passed.
 | 
			
		||||
Horizontal and Vertical Line test passed.
 | 
			
		||||
Triangle Rasterization test passed.
 | 
			
		||||
Triangle Tile test passed.
 | 
			
		||||
Triangle Stipple test passed.
 | 
			
		||||
Anti-aliased Triangles test passed.
 | 
			
		||||
Quad Rasterization test passed.
 | 
			
		||||
Polygon Face test passed.
 | 
			
		||||
Polygon Cull test passed.
 | 
			
		||||
Polygon Stipple test passed.
 | 
			
		||||
Polygon Edge test passed.
 | 
			
		||||
Ambient Material test passed.
 | 
			
		||||
Ambient Scene test passed.
 | 
			
		||||
Attenuation Position test passed.
 | 
			
		||||
Diffuse Light test passed.
 | 
			
		||||
Diffuse Material test passed.
 | 
			
		||||
Diffuse Material Normal test passed.
 | 
			
		||||
Diffuse Material Positioning test passed.
 | 
			
		||||
Emissive Material test passed.
 | 
			
		||||
Specular Exponent test passed.
 | 
			
		||||
Specular Exponent Normal test passed.
 | 
			
		||||
Specular Local Eye Half Angle test passed.
 | 
			
		||||
Specular Light test passed.
 | 
			
		||||
Specular Material test passed.
 | 
			
		||||
Specular Normal test passed.
 | 
			
		||||
Spot Positioning test passed.
 | 
			
		||||
Spot Exponent and Positioning test passed.
 | 
			
		||||
Spot Exponent and Direction test passed.
 | 
			
		||||
Fog Exponential test passed.
 | 
			
		||||
Fog Linear test passed.
 | 
			
		||||
Texture Decal test passed.
 | 
			
		||||
Texture Border test passed.
 | 
			
		||||
Mipmaps Selection test passed.
 | 
			
		||||
Mipmaps Interpolation test passed.
 | 
			
		||||
Display Lists test passed.
 | 
			
		||||
Evaluator test passed.
 | 
			
		||||
Evaluator Color test passed.
 | 
			
		||||
Texture Edge Clamp test passed.
 | 
			
		||||
Packed Pixels test passed.
 | 
			
		||||
Texture LOD test passed.
 | 
			
		||||
Rescale Normal test passed.
 | 
			
		||||
Color Table test passed.
 | 
			
		||||
Convolution test passed.
 | 
			
		||||
Convolution Border test passed.
 | 
			
		||||
Histogram test passed.
 | 
			
		||||
MinMax test passed.
 | 
			
		||||
MultiTexture test passed.
 | 
			
		||||
 | 
			
		||||
Conform passed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GLX CONFORMANCE TEST
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
% conformx -v 2
 | 
			
		||||
 | 
			
		||||
OpenGL X Conformance Test
 | 
			
		||||
Version 1.1.1
 | 
			
		||||
 | 
			
		||||
Setup Report.
 | 
			
		||||
    Verbose level = 2.
 | 
			
		||||
    Random number seed = 1.
 | 
			
		||||
    Path inactive.
 | 
			
		||||
 | 
			
		||||
Visual Report.
 | 
			
		||||
    Display ID = 34. Direct Rendering.
 | 
			
		||||
    Double Buffered.
 | 
			
		||||
    RGBA (8, 8, 8, 0).
 | 
			
		||||
    Stencil (8).
 | 
			
		||||
    Depth (16).
 | 
			
		||||
    Accumulation (16, 16, 16, 16).
 | 
			
		||||
 | 
			
		||||
Epsilon Report.
 | 
			
		||||
    zero error epsilon = 0.000122.
 | 
			
		||||
    RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
 | 
			
		||||
    Depth buffer error epsilon = 0.000137.
 | 
			
		||||
    Stencil plane error epsilon = 0.00404.
 | 
			
		||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
			
		||||
 | 
			
		||||
Default State test passed.
 | 
			
		||||
glReadPixels() test passed.
 | 
			
		||||
Font test passed.
 | 
			
		||||
 | 
			
		||||
Conformx passed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
NOTE: conformx passes for all machine path levels (-p option).
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,105 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Contents</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
 | 
			
		||||
  <!--Override a few values from the style sheet: -->
 | 
			
		||||
  <style type="text/css">
 | 
			
		||||
    <!--
 | 
			
		||||
    body {
 | 
			
		||||
      background-color: #cccccc;
 | 
			
		||||
      color: black;
 | 
			
		||||
    }
 | 
			
		||||
    a:link {
 | 
			
		||||
      color: #000;
 | 
			
		||||
    }
 | 
			
		||||
    a:visited {
 | 
			
		||||
      color: #000;
 | 
			
		||||
    }
 | 
			
		||||
    -->
 | 
			
		||||
  </style>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<b>Documentation</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="intro.html" target="_parent">Introduction</a>
 | 
			
		||||
<li><a href="index.html" target="_parent">News</a>
 | 
			
		||||
<li><a href="developers.html" target="_parent">Developers</a>
 | 
			
		||||
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
 | 
			
		||||
<li><a href="license.html" target="_parent">License & Copyright</a>
 | 
			
		||||
<li><a href="faq.html" target="_parent">FAQ</a>
 | 
			
		||||
<li><a href="relnotes.html" target="_parent">Release Notes</a>
 | 
			
		||||
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
 | 
			
		||||
<li><a href="conform.html" target="_parent">Conformance Testing</a>
 | 
			
		||||
<li>more docs below...
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>Download / Install</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
 | 
			
		||||
<li><a href="install.html" target="_parent">Compiling / Installing</a>
 | 
			
		||||
  <ul>
 | 
			
		||||
    <li><a href="autoconf.html" target="_parent">Autoconf</a></li>
 | 
			
		||||
  </ul>
 | 
			
		||||
</li>
 | 
			
		||||
<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>Resources</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="lists.html" target="_parent">Mailing Lists</a>
 | 
			
		||||
<li><a href="bugs.html" target="_parent">Bug Database</a>
 | 
			
		||||
<li><a href="webmaster.html" target="_parent">Webmaster</a>
 | 
			
		||||
<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>User Topics</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="shading.html" target="_parent">Shading Language</a>
 | 
			
		||||
<li><a href="egl.html" target="_parent">EGL</a>
 | 
			
		||||
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
 | 
			
		||||
<li><a href="openvg.html" target="_parent">OpenVG / Vega</a>
 | 
			
		||||
<li><a href="envvars.html" target="_parent">Environment Variables</a>
 | 
			
		||||
<li><a href="osmesa.html" target="_parent">Off-Screen Rendering</a>
 | 
			
		||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
 | 
			
		||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
 | 
			
		||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
 | 
			
		||||
<li><a href="mangling.html" target="_parent">Function Name Mangling</a>
 | 
			
		||||
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
 | 
			
		||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
 | 
			
		||||
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
 | 
			
		||||
<li><a href="application-issues.html" target="_parent">Application Issues</a>
 | 
			
		||||
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>Developer Topics</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="repository.html" target="_parent">Source Code Repository</a>
 | 
			
		||||
<li><a href="sourcetree.html" target="_parent">Source Code Tree</a>
 | 
			
		||||
<li><a href="utilities.html" target="_parent">Utilities</a>
 | 
			
		||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
 | 
			
		||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
 | 
			
		||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
 | 
			
		||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>Links</b>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
 | 
			
		||||
<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
 | 
			
		||||
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<b>Hosted by:</b>
 | 
			
		||||
<br>
 | 
			
		||||
<blockquote>
 | 
			
		||||
<a href="http://sourceforge.net"
 | 
			
		||||
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>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,47 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Debugging Tips</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Debugging Tips</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
   Normally Mesa (and OpenGL) records but does not notify the user of
 | 
			
		||||
   errors.  It is up to the application to call
 | 
			
		||||
   <code>glGetError</code> to check for errors.  Mesa supports an
 | 
			
		||||
   environment variable, MESA_DEBUG, to help with debugging.  If
 | 
			
		||||
   MESA_DEBUG is defined, a message will be printed to stdout whenever
 | 
			
		||||
   an error occurs.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
   More extensive error checking is done when Mesa is compiled with the
 | 
			
		||||
   DEBUG symbol defined.  You'll have to edit the Make-config file and
 | 
			
		||||
   add -DDEBUG to the CFLAGS line for your system configuration.  You may
 | 
			
		||||
   also want to replace any optimization flags with the -g flag so you can
 | 
			
		||||
   use your debugger.  After you've edited Make-config type 'make clean'
 | 
			
		||||
   before recompiling.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
   In your debugger you can set a breakpoint in _mesa_error() to trap Mesa
 | 
			
		||||
   errors.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
   There is a display list printing/debugging facility.  See the end of
 | 
			
		||||
   src/dlist.c for details.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,58 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Developers</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Developers</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Both professional and volunteer developers contribute to Mesa.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://www.vmware.com/">VMware</a>
 | 
			
		||||
employs several of the main Mesa developers including Brian Paul
 | 
			
		||||
and Keith Whitwell.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
In the past, Tungsten Graphics contracts implemented many Mesa features
 | 
			
		||||
including:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>DRI drivers for Intel i965, i945, i915 and other chips
 | 
			
		||||
<li>Advanced memory manager and framebuffer object support
 | 
			
		||||
<li>Shading language compiler and OpenGL 2.0 support
 | 
			
		||||
<li>MiniGLX environment
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Other companies including
 | 
			
		||||
<a href="http://www.intellinuxgraphics.org/index.html">Intel</a>
 | 
			
		||||
and RedHat also actively contribute to the project.
 | 
			
		||||
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://www.lunarg.com/">LunarG</a> can be contacted
 | 
			
		||||
for custom Mesa / 3D graphics development.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Volunteers have made significant contributions to all parts of Mesa, including
 | 
			
		||||
complete device drivers.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,320 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Development Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Development Notes</h1>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Adding Extensions</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To add a new GL extension to Mesa you have to do at least the following.
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>
 | 
			
		||||
   If glext.h doesn't define the extension, edit include/GL/gl.h and add
 | 
			
		||||
   code like this:
 | 
			
		||||
   <pre>
 | 
			
		||||
     #ifndef GL_EXT_the_extension_name
 | 
			
		||||
     #define GL_EXT_the_extension_name 1
 | 
			
		||||
     /* declare the new enum tokens */
 | 
			
		||||
     /* prototype the new functions */
 | 
			
		||||
     /* TYPEDEFS for the new functions */
 | 
			
		||||
     #endif
 | 
			
		||||
   </pre>
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   In the src/mapi/glapi/gen/ directory, add the new extension functions and
 | 
			
		||||
   enums to the gl_API.xml file.
 | 
			
		||||
   Then, a bunch of source files must be regenerated by executing the
 | 
			
		||||
   corresponding Python scripts.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   Update the <code>extensions.c</code> file.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   From this point, the best way to proceed is to find another extension,
 | 
			
		||||
   similar to the new one, that's already implemented in Mesa and use it
 | 
			
		||||
   as an example.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   If the new extension adds new GL state, the functions in get.c, enable.c
 | 
			
		||||
   and attrib.c will most likely require new code.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   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>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<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>
 | 
			
		||||
 | 
			
		||||
<h2>Submitting patches</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
You should always run the Mesa Testsuite before submitting patches.
 | 
			
		||||
The Testsuite can be run using the 'make check' command. All tests
 | 
			
		||||
must pass before patches will be accepted, this may mean you have
 | 
			
		||||
to update the tests themselves.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Patches should be sent to the Mesa mailing list for review.
 | 
			
		||||
When submitting a patch make sure to use git send-email rather than attaching
 | 
			
		||||
patches to emails. Sending patches as attachments prevents people from being
 | 
			
		||||
able to provide in-line review comments.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When submitting follow-up patches you can use --in-reply-to to make v2, v3,
 | 
			
		||||
etc patches show up as replies to the originals. This usually works well
 | 
			
		||||
when you're sending out updates to individual patches (as opposed to
 | 
			
		||||
re-sending the whole series). Using --in-reply-to makes
 | 
			
		||||
it harder for reviewers to accidentally review old patches.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>Marking a commit as a candidate for a stable branch</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
If you want a commit to be applied to a stable branch,
 | 
			
		||||
you should add an appropriate note to the commit message.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Here are some examples of such a note:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>CC: <mesa-stable@lists.freedesktop.org></li>
 | 
			
		||||
  <li>CC: "9.2 10.0" <mesa-stable@lists.freedesktop.org></li>
 | 
			
		||||
  <li>CC: "10.0" <mesa-stable@lists.freedesktop.org></li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
Simply adding the CC to the mesa-stable list address is adequate to nominate
 | 
			
		||||
the commit for the most-recently-created stable branch. It is only necessary
 | 
			
		||||
to specify a specific branch name, (such as "9.2 10.0" or "10.0" in the
 | 
			
		||||
examples above), if you want to nominate the commit for an older stable
 | 
			
		||||
branch. And, as in these examples, you can nominate the commit for the older
 | 
			
		||||
branch in addition to the more recent branch, or nominate the commit
 | 
			
		||||
exclusively for the older branch.
 | 
			
		||||
 | 
			
		||||
This "CC" syntax for patch nomination will cause patches to automatically be
 | 
			
		||||
copied to the mesa-stable@ mailing list when you use "git send-email" to send
 | 
			
		||||
patches to the mesa-dev@ mailing list. Also, if you realize that a commit
 | 
			
		||||
should be nominated for the stable branch after it has already been committed,
 | 
			
		||||
you can send a note directly to the mesa-stable@lists.freedesktop.org where
 | 
			
		||||
the Mesa stable-branch maintainers will receive it. Be sure to mention the
 | 
			
		||||
commit ID of the commit of interest (as it appears in the mesa master branch).
 | 
			
		||||
 | 
			
		||||
The latest set of patches that have been nominated, accepted, or rejected for
 | 
			
		||||
the upcoming stable release can always be seen on the
 | 
			
		||||
<a href=http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
 | 
			
		||||
page.
 | 
			
		||||
 | 
			
		||||
<h2>Cherry-picking candidates for a stable branch</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Please use <code>git cherry-pick -x <commit></code> for cherry-picking a commit
 | 
			
		||||
from master to a stable branch.
 | 
			
		||||
</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>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h3>Verify and update version info in VERSION</h3>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Create a docs/relnotes/x.y.z.html file.
 | 
			
		||||
The bin/bugzilla_mesa.sh and bin/shortlog_mesa.sh scripts can be used to
 | 
			
		||||
create the HTML-formatted lists of bugfixes and 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="index.html">docs/index.html</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Tag the files with the release name (in the form <b>mesa-x.y</b>)
 | 
			
		||||
with: <code>git tag -s mesa-x.y -m "Mesa x.y Release"</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>
 | 
			
		||||
	./autogen.sh
 | 
			
		||||
	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>
 | 
			
		||||
Make a new directory for the release on annarchy.freedesktop.org with:
 | 
			
		||||
<br>
 | 
			
		||||
<code>
 | 
			
		||||
mkdir /srv/ftp.freedesktop.org/pub/mesa/x.y
 | 
			
		||||
</code>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Basically, to upload the tarball files with:
 | 
			
		||||
<br>
 | 
			
		||||
<code>
 | 
			
		||||
rsync -avP -e ssh MesaLib-x.y.* USERNAME@annarchy.freedesktop.org:/srv/ftp.freedesktop.org/pub/mesa/x.y/
 | 
			
		||||
</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>mesa-dev@lists.freedesktop.org</em>,
 | 
			
		||||
<em>mesa-users@lists.freedesktop.org</em>
 | 
			
		||||
and
 | 
			
		||||
<em>mesa-announce@lists.freedesktop.org</em>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,279 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>GL Dispatch in Mesa</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>GL Dispatch in Mesa</h1>
 | 
			
		||||
 | 
			
		||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
 | 
			
		||||
fairly complicated.  This document attempts to explain some of the issues
 | 
			
		||||
and introduce the reader to Mesa's implementation.  Readers already familiar
 | 
			
		||||
with the issues around GL dispatch can safely skip ahead to the <a
 | 
			
		||||
href="#overview">overview of Mesa's implementation</a>.</p>
 | 
			
		||||
 | 
			
		||||
<h2>1. Complexity of GL Dispatch</h2>
 | 
			
		||||
 | 
			
		||||
<p>Every GL application has at least one object called a GL <em>context</em>.
 | 
			
		||||
This object, which is an implicit parameter to every GL function, stores all
 | 
			
		||||
of the GL related state for the application.  Every texture, every buffer
 | 
			
		||||
object, every enable, and much, much more is stored in the context.  Since
 | 
			
		||||
an application can have more than one context, the context to be used is
 | 
			
		||||
selected by a window-system dependent function such as
 | 
			
		||||
<tt>glXMakeContextCurrent</tt>.</p>
 | 
			
		||||
 | 
			
		||||
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
 | 
			
		||||
function, including the pointers returned by <tt>glXGetProcAddress</tt>, are
 | 
			
		||||
<em>context independent</em>.  This means that no matter what context is
 | 
			
		||||
currently active, the same <tt>glVertex3fv</tt> function is used.</p>
 | 
			
		||||
 | 
			
		||||
<p>This creates the first bit of dispatch complexity.  An application can
 | 
			
		||||
have two GL contexts.  One context is a direct rendering context where
 | 
			
		||||
function calls are routed directly to a driver loaded within the
 | 
			
		||||
application's address space.  The other context is an indirect rendering
 | 
			
		||||
context where function calls are converted to GLX protocol and sent to a
 | 
			
		||||
server.  The same <tt>glVertex3fv</tt> has to do the right thing depending
 | 
			
		||||
on which context is current.</p>
 | 
			
		||||
 | 
			
		||||
<p>Highly optimized drivers or GLX protocol implementations may want to
 | 
			
		||||
change the behavior of GL functions depending on current state.  For
 | 
			
		||||
example, <tt>glFogCoordf</tt> may operate differently depending on whether
 | 
			
		||||
or not fog is enabled.</p>
 | 
			
		||||
 | 
			
		||||
<p>In multi-threaded environments, it is possible for each thread to have a
 | 
			
		||||
different GL context current.  This means that poor old <tt>glVertex3fv</tt>
 | 
			
		||||
has to know which GL context is current in the thread where it is being
 | 
			
		||||
called.</p>
 | 
			
		||||
 | 
			
		||||
<h2 id="overview">2. Overview of Mesa's Implementation</h2>
 | 
			
		||||
 | 
			
		||||
<p>Mesa uses two per-thread pointers.  The first pointer stores the address
 | 
			
		||||
of the context current in the thread, and the second pointer stores the
 | 
			
		||||
address of the <em>dispatch table</em> associated with that context.  The
 | 
			
		||||
dispatch table stores pointers to functions that actually implement
 | 
			
		||||
specific GL functions.  Each time a new context is made current in a thread,
 | 
			
		||||
these pointers a updated.</p>
 | 
			
		||||
 | 
			
		||||
<p>The implementation of functions such as <tt>glVertex3fv</tt> becomes
 | 
			
		||||
conceptually simple:</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Fetch the current dispatch table pointer.</li>
 | 
			
		||||
<li>Fetch the pointer to the real <tt>glVertex3fv</tt> function from the
 | 
			
		||||
table.</li>
 | 
			
		||||
<li>Call the real function.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>This can be implemented in just a few lines of C code.  The file
 | 
			
		||||
<tt>src/mesa/glapi/glapitemp.h</tt> contains code very similar to this.</p>
 | 
			
		||||
 | 
			
		||||
<blockquote>
 | 
			
		||||
<table border="1">
 | 
			
		||||
<tr><td><pre>
 | 
			
		||||
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
 | 
			
		||||
{
 | 
			
		||||
    const struct _glapi_table * const dispatch = GET_DISPATCH();
 | 
			
		||||
 | 
			
		||||
    (*dispatch->Vertex3f)(x, y, z);
 | 
			
		||||
}</pre></td></tr>
 | 
			
		||||
<tr><td>Sample dispatch function</td></tr></table>
 | 
			
		||||
</blockquote>
 | 
			
		||||
 | 
			
		||||
<p>The problem with this simple implementation is the large amount of
 | 
			
		||||
overhead that it adds to every GL function call.</p>
 | 
			
		||||
 | 
			
		||||
<p>In a multithreaded environment, a naive implementation of
 | 
			
		||||
<tt>GET_DISPATCH</tt> involves a call to <tt>pthread_getspecific</tt> or a
 | 
			
		||||
similar function.  Mesa provides a wrapper function called
 | 
			
		||||
<tt>_glapi_get_dispatch</tt> that is used by default.</p>
 | 
			
		||||
 | 
			
		||||
<h2>3. Optimizations</h2>
 | 
			
		||||
 | 
			
		||||
<p>A number of optimizations have been made over the years to diminish the
 | 
			
		||||
performance hit imposed by GL dispatch.  This section describes these
 | 
			
		||||
optimizations.  The benefits of each optimization and the situations where
 | 
			
		||||
each can or cannot be used are listed.</p>
 | 
			
		||||
 | 
			
		||||
<h3>3.1. Dual dispatch table pointers</h3>
 | 
			
		||||
 | 
			
		||||
<p>The vast majority of OpenGL applications use the API in a single threaded
 | 
			
		||||
manner.  That is, the application has only one thread that makes calls into
 | 
			
		||||
the GL.  In these cases, not only do the calls to
 | 
			
		||||
<tt>pthread_getspecific</tt> hurt performance, but they are completely
 | 
			
		||||
unnecessary!  It is possible to detect this common case and avoid these
 | 
			
		||||
calls.</p>
 | 
			
		||||
 | 
			
		||||
<p>Each time a new dispatch table is set, Mesa examines and records the ID
 | 
			
		||||
of the executing thread.  If the same thread ID is always seen, Mesa knows
 | 
			
		||||
that the application is, from OpenGL's point of view, single threaded.</p>
 | 
			
		||||
 | 
			
		||||
<p>As long as an application is single threaded, Mesa stores a pointer to
 | 
			
		||||
the dispatch table in a global variable called <tt>_glapi_Dispatch</tt>.
 | 
			
		||||
The pointer is also stored in a per-thread location via
 | 
			
		||||
<tt>pthread_setspecific</tt>.  When Mesa detects that an application has
 | 
			
		||||
become multithreaded, <tt>NULL</tt> is stored in <tt>_glapi_Dispatch</tt>.</p>
 | 
			
		||||
 | 
			
		||||
<p>Using this simple mechanism the dispatch functions can detect the
 | 
			
		||||
multithreaded case by comparing <tt>_glapi_Dispatch</tt> to <tt>NULL</tt>.
 | 
			
		||||
The resulting implementation of <tt>GET_DISPATCH</tt> is slightly more
 | 
			
		||||
complex, but it avoids the expensive <tt>pthread_getspecific</tt> call in
 | 
			
		||||
the common case.</p>
 | 
			
		||||
 | 
			
		||||
<blockquote>
 | 
			
		||||
<table border="1">
 | 
			
		||||
<tr><td><pre>
 | 
			
		||||
#define GET_DISPATCH() \
 | 
			
		||||
    (_glapi_Dispatch != NULL) \
 | 
			
		||||
        ? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
 | 
			
		||||
</pre></td></tr>
 | 
			
		||||
<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
 | 
			
		||||
</blockquote>
 | 
			
		||||
 | 
			
		||||
<h3>3.2. ELF TLS</h3>
 | 
			
		||||
 | 
			
		||||
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
 | 
			
		||||
of per-thread, global storage.  Variables can be put in this area using some
 | 
			
		||||
extensions to GCC.  By storing the dispatch table pointer in this area, the
 | 
			
		||||
expensive call to <tt>pthread_getspecific</tt> and the test of
 | 
			
		||||
<tt>_glapi_Dispatch</tt> can be avoided.</p>
 | 
			
		||||
 | 
			
		||||
<p>The dispatch table pointer is stored in a new variable called
 | 
			
		||||
<tt>_glapi_tls_Dispatch</tt>.  A new variable name is used so that a single
 | 
			
		||||
libGL can implement both interfaces.  This allows the libGL to operate with
 | 
			
		||||
direct rendering drivers that use either interface.  Once the pointer is
 | 
			
		||||
properly declared, <tt>GET_DISPACH</tt> becomes a simple variable
 | 
			
		||||
reference.</p>
 | 
			
		||||
 | 
			
		||||
<blockquote>
 | 
			
		||||
<table border="1">
 | 
			
		||||
<tr><td><pre>
 | 
			
		||||
extern __thread struct _glapi_table *_glapi_tls_Dispatch
 | 
			
		||||
    __attribute__((tls_model("initial-exec")));
 | 
			
		||||
 | 
			
		||||
#define GET_DISPATCH() _glapi_tls_Dispatch
 | 
			
		||||
</pre></td></tr>
 | 
			
		||||
<tr><td>TLS <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
 | 
			
		||||
</blockquote>
 | 
			
		||||
 | 
			
		||||
<p>Use of this path is controlled by the preprocessor define
 | 
			
		||||
<tt>GLX_USE_TLS</tt>.  Any platform capable of using TLS should use this as
 | 
			
		||||
the default dispatch method.</p>
 | 
			
		||||
 | 
			
		||||
<h3>3.3. Assembly Language Dispatch Stubs</h3>
 | 
			
		||||
 | 
			
		||||
<p>Many platforms has difficulty properly optimizing the tail-call in the
 | 
			
		||||
dispatch stubs.  Platforms like x86 that pass parameters on the stack seem
 | 
			
		||||
to have even more difficulty optimizing these routines.  All of the dispatch
 | 
			
		||||
routines are very short, and it is trivial to create optimal assembly
 | 
			
		||||
language versions.  The amount of optimization provided by using assembly
 | 
			
		||||
stubs varies from platform to platform and application to application.
 | 
			
		||||
However, by using the assembly stubs, many platforms can use an additional
 | 
			
		||||
space optimization (see <a href="#fixedsize">below</a>).</p>
 | 
			
		||||
 | 
			
		||||
<p>The biggest hurdle to creating assembly stubs is handling the various
 | 
			
		||||
ways that the dispatch table pointer can be accessed.  There are four
 | 
			
		||||
different methods that can be used:</p>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li>Using <tt>_glapi_Dispatch</tt> directly in builds for non-multithreaded
 | 
			
		||||
environments.</li>
 | 
			
		||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>_glapi_get_dispatch</tt> in
 | 
			
		||||
multithreaded environments.</li>
 | 
			
		||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>pthread_getspecific</tt> in
 | 
			
		||||
multithreaded environments.</li>
 | 
			
		||||
<li>Using <tt>_glapi_tls_Dispatch</tt> directly in TLS enabled
 | 
			
		||||
multithreaded environments.</li>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
<p>People wishing to implement assembly stubs for new platforms should focus
 | 
			
		||||
on #4 if the new platform supports TLS.  Otherwise, implement #2 followed by
 | 
			
		||||
#3.  Environments that do not support multithreading are uncommon and not
 | 
			
		||||
terribly relevant.</p>
 | 
			
		||||
 | 
			
		||||
<p>Selection of the dispatch table pointer access method is controlled by a
 | 
			
		||||
few preprocessor defines.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
 | 
			
		||||
<li>If <tt>HAVE_PTHREAD</tt> is defined, method #3 is used.</li>
 | 
			
		||||
<li>If <tt>WIN32_THREADS</tt> is defined, method #2 is used.</li>
 | 
			
		||||
<li>If none of the preceding are defined, method #1 is used.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Two different techniques are used to handle the various different cases.
 | 
			
		||||
On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used.  In the preamble
 | 
			
		||||
of the assembly source file different implementations of the macro are
 | 
			
		||||
selected based on the defined preprocessor variables.  The assembly code
 | 
			
		||||
then consists of a series of invocations of the macros such as:
 | 
			
		||||
 | 
			
		||||
<blockquote>
 | 
			
		||||
<table border="1">
 | 
			
		||||
<tr><td><pre>
 | 
			
		||||
GL_STUB(Color3fv, _gloffset_Color3fv)
 | 
			
		||||
</pre></td></tr>
 | 
			
		||||
<tr><td>SPARC Assembly Implementation of <tt>glColor3fv</tt></td></tr></table>
 | 
			
		||||
</blockquote>
 | 
			
		||||
 | 
			
		||||
<p>The benefit of this technique is that changes to the calling pattern
 | 
			
		||||
(i.e., addition of a new dispatch table pointer access method) require fewer
 | 
			
		||||
changed lines in the assembly code.</p>
 | 
			
		||||
 | 
			
		||||
<p>However, this technique can only be used on platforms where the function
 | 
			
		||||
implementation does not change based on the parameters passed to the
 | 
			
		||||
function.  For example, since x86 passes all parameters on the stack, no
 | 
			
		||||
additional code is needed to save and restore function parameters around a
 | 
			
		||||
call to <tt>pthread_getspecific</tt>.  Since x86-64 passes parameters in
 | 
			
		||||
registers, varying amounts of code needs to be inserted around the call to
 | 
			
		||||
<tt>pthread_getspecific</tt> to save and restore the GL function's
 | 
			
		||||
parameters.</p>
 | 
			
		||||
 | 
			
		||||
<p>The other technique, used by platforms like x86-64 that cannot use the
 | 
			
		||||
first technique, is to insert <tt>#ifdef</tt> within the assembly
 | 
			
		||||
implementation of each function.  This makes the assembly file considerably
 | 
			
		||||
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
 | 
			
		||||
<tt>glapi_x86.S</tt>) and causes simple changes to the function
 | 
			
		||||
implementation to generate many lines of diffs.  Since the assembly files
 | 
			
		||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
 | 
			
		||||
isn't a significant problem.</p>
 | 
			
		||||
 | 
			
		||||
<p>Once a new assembly file is created, it must be inserted in the build
 | 
			
		||||
system.  There are two steps to this.  The file must first be added to
 | 
			
		||||
<tt>src/mesa/sources</tt>.  That gets the file built and linked.  The second
 | 
			
		||||
step is to add the correct <tt>#ifdef</tt> magic to
 | 
			
		||||
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
 | 
			
		||||
dispatch functions from being built.</p>
 | 
			
		||||
 | 
			
		||||
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
 | 
			
		||||
 | 
			
		||||
<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
 | 
			
		||||
associates function names with pointers to those functions.  This table is
 | 
			
		||||
stored in <tt>src/mesa/glapi/glprocs.h</tt>.  For different reasons on
 | 
			
		||||
different platforms, storing all of those pointers is inefficient.  On most
 | 
			
		||||
platforms, including all known platforms that support TLS, we can avoid this
 | 
			
		||||
added overhead.</p>
 | 
			
		||||
 | 
			
		||||
<p>If the assembly stubs are all the same size, the pointer need not be
 | 
			
		||||
stored for every function.  The location of the function can instead be
 | 
			
		||||
calculated by multiplying the size of the dispatch stub by the offset of the
 | 
			
		||||
function in the table.  This value is then added to the address of the first
 | 
			
		||||
dispatch stub.</p>
 | 
			
		||||
 | 
			
		||||
<p>This path is activated by adding the correct <tt>#ifdef</tt> magic to
 | 
			
		||||
<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
 | 
			
		||||
included.</p>
 | 
			
		||||
 | 
			
		||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,117 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Getting Mesa</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Downloading</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Primary Mesa download site:
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/">freedesktop.org</a> (FTP)
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When a new release is coming, release candidates (betas) may be found
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/beta/">here</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Unpacking</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa releases are available in three formats: .tar.bz2, .tar.gz, and .zip
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To unpack .tar.gz files:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
	tar zxf MesaLib-x.y.z.tar.gz
 | 
			
		||||
</pre>
 | 
			
		||||
or
 | 
			
		||||
<pre>
 | 
			
		||||
	gzcat MesaLib-x.y.z.tar.gz | tar xf -
 | 
			
		||||
</pre>
 | 
			
		||||
or
 | 
			
		||||
<pre>
 | 
			
		||||
	gunzip MesaLib-x.y.z.tar.gz ; tar xf MesaLib-x.y.z.tar
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
To unpack .tar.bz2 files:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
	bunzip2 -c MesaLib-x.y.z.tar.gz | tar xf -
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
To unpack .zip files:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
	unzip MesaLib-x.y.z.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Contents</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
After unpacking you'll have these files and directories (among others):
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
Makefile	- top-level Makefile for most systems
 | 
			
		||||
configs/	- makefile parameter files for various systems
 | 
			
		||||
include/	- GL header (include) files
 | 
			
		||||
bin/		- shell scripts for making shared libraries, etc
 | 
			
		||||
docs/		- documentation
 | 
			
		||||
src/		- source code for libraries
 | 
			
		||||
src/mesa	- sources for the main Mesa library and device drivers
 | 
			
		||||
src/gallium     - sources for Gallium and Gallium drivers
 | 
			
		||||
src/glx		- sources for building libGL with full GLX and DRI support
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Proceed to the <a href="install.html">compilation and installation
 | 
			
		||||
instructions</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Demos, GLUT, and GLU</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
A package of SGI's GLU library is available
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/glu/">here</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
A package of Mark Kilgard's GLUT library is available
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/glut/">here</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Mesa demos collection is available
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/">here</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
In the past, GLUT, GLU and the Mesa demos were released in conjunction with
 | 
			
		||||
Mesa releases.  But since GLUT, GLU and the demos change infrequently, they
 | 
			
		||||
were split off into their own git repositories:
 | 
			
		||||
 | 
			
		||||
<a href="http://cgit.freedesktop.org/mesa/glut/">GLUT</a>,
 | 
			
		||||
<a href="http://cgit.freedesktop.org/mesa/glu/">GLU</a> and
 | 
			
		||||
<a href="http://cgit.freedesktop.org/mesa/demos/">Demos</a>,
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										331
									
								
								docs/egl.html
									
									
									
									
									
								
							
							
						
						
									
										331
									
								
								docs/egl.html
									
									
									
									
									
								
							@@ -1,331 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa EGL</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa EGL</h1>
 | 
			
		||||
 | 
			
		||||
<p>The current version of EGL in Mesa implements EGL 1.4.  More information
 | 
			
		||||
about EGL can be found at
 | 
			
		||||
<a href="http://www.khronos.org/egl/">
 | 
			
		||||
http://www.khronos.org/egl/</a>.</p>
 | 
			
		||||
 | 
			
		||||
<p>The Mesa's implementation of EGL uses a driver architecture.  The main
 | 
			
		||||
library (<code>libEGL</code>) is window system neutral.  It provides the EGL
 | 
			
		||||
API entry points and helper functions for use by the drivers.  Drivers are
 | 
			
		||||
dynamically loaded by the main library and most of the EGL API calls are
 | 
			
		||||
directly dispatched to the drivers.</p>
 | 
			
		||||
 | 
			
		||||
<p>The driver in use decides the window system to support.</p>
 | 
			
		||||
 | 
			
		||||
<h2>Build EGL</h2>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li>
 | 
			
		||||
<p>Run <code>configure</code> with the desired client APIs and enable
 | 
			
		||||
the driver for your hardware.  For example</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  $ ./configure --enable-gles1 --enable-gles2 \
 | 
			
		||||
                --with-dri-drivers=... \
 | 
			
		||||
                --with-gallium-drivers=...
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>The main library and OpenGL is enabled by default.  The first two options
 | 
			
		||||
above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>.  The last two
 | 
			
		||||
options enables the listed classic and and Gallium drivers respectively.</p>
 | 
			
		||||
 | 
			
		||||
</li>
 | 
			
		||||
 | 
			
		||||
<li>Build and install Mesa as usual.</li>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
<p>In the given example, it will build and install <code>libEGL</code>,
 | 
			
		||||
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>, and one
 | 
			
		||||
or more EGL drivers.</p>
 | 
			
		||||
 | 
			
		||||
<h3>Configure Options</h3>
 | 
			
		||||
 | 
			
		||||
<p>There are several options that control the build of EGL at configuration
 | 
			
		||||
time</p>
 | 
			
		||||
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>--enable-egl</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>By default, EGL is enabled.  When disabled, the main library and the drivers
 | 
			
		||||
will not be built.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--with-egl-driver-dir</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>The directory EGL drivers should be installed to.  If not specified, EGL
 | 
			
		||||
drivers will be installed to <code>${libdir}/egl</code>.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--enable-gallium-egl</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>Enable the optional <code>egl_gallium</code> driver.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--with-egl-platforms</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>List the platforms (window systems) to support.  Its argument is a comma
 | 
			
		||||
separated string such as <code>--with-egl-platforms=x11,drm</code>.  It decides
 | 
			
		||||
the platforms a driver may support.  The first listed platform is also used by
 | 
			
		||||
the main library to decide the native platform: the platform the EGL native
 | 
			
		||||
types such as <code>EGLNativeDisplayType</code> or
 | 
			
		||||
<code>EGLNativeWindowType</code> defined for.</p>
 | 
			
		||||
 | 
			
		||||
<p>The available platforms are <code>x11</code>, <code>drm</code>,
 | 
			
		||||
<code>fbdev</code>, and <code>gdi</code>.  The <code>gdi</code> platform can
 | 
			
		||||
only be built with SCons.  Unless for special needs, the build system should
 | 
			
		||||
select the right platforms automatically.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--enable-gles1</code></dt>
 | 
			
		||||
<dt><code>--enable-gles2</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>These options enable OpenGL ES support in OpenGL.  The result is one big
 | 
			
		||||
internal library that supports multiple APIs.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--enable-shared-glapi</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
 | 
			
		||||
This options makes <code>libGL</code> use the shared <code>libglapi</code>.  This
 | 
			
		||||
is required if applications mix OpenGL and OpenGL ES.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>--enable-openvg</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>OpenVG must be explicitly enabled by this option.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
<h2>Use EGL</h2>
 | 
			
		||||
 | 
			
		||||
<h3>Demos</h3>
 | 
			
		||||
 | 
			
		||||
<p>There are demos for the client APIs supported by EGL.  They can be found in
 | 
			
		||||
mesa/demos repository.</p>
 | 
			
		||||
 | 
			
		||||
<h3>Environment Variables</h3>
 | 
			
		||||
 | 
			
		||||
<p>There are several environment variables that control the behavior of EGL at
 | 
			
		||||
runtime</p>
 | 
			
		||||
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>EGL_DRIVERS_PATH</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>By default, the main library will look for drivers in the directory where
 | 
			
		||||
the drivers are installed to.  This variable specifies a list of
 | 
			
		||||
colon-separated directories where the main library will look for drivers, in
 | 
			
		||||
addition to the default directory.  This variable is ignored for setuid/setgid
 | 
			
		||||
binaries.</p>
 | 
			
		||||
 | 
			
		||||
<p>This variable is usually set to test an uninstalled build.  For example, one
 | 
			
		||||
may set</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  $ export LD_LIBRARY_PATH=$mesa/lib
 | 
			
		||||
  $ export EGL_DRIVERS_PATH=$mesa/lib/egl
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>to test a build without installation</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>EGL_DRIVER</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>This variable specifies a full path to or the name of an EGL driver.  It
 | 
			
		||||
forces the specified EGL driver to be loaded.  It comes in handy when one wants
 | 
			
		||||
to test a specific driver.  This variable is ignored for setuid/setgid
 | 
			
		||||
binaries.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>EGL_PLATFORM</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>This variable specifies the native platform.  The valid values are the same
 | 
			
		||||
as those for <code>--with-egl-platforms</code>.  When the variable is not set,
 | 
			
		||||
the main library uses the first platform listed in
 | 
			
		||||
<code>--with-egl-platforms</code> as the native platform.</p>
 | 
			
		||||
 | 
			
		||||
<p>Extensions like <code>EGL_MESA_drm_display</code> define new functions to
 | 
			
		||||
create displays for non-native platforms.  These extensions are usually used by
 | 
			
		||||
applications that support non-native platforms.  Setting this variable is
 | 
			
		||||
probably required only for some of the demos found in mesa/demo repository.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>EGL_LOG_LEVEL</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>This changes the log level of the main library and the drivers.  The valid
 | 
			
		||||
values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
 | 
			
		||||
<code>fatal</code>.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>EGL_SOFTWARE</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>For drivers that support both hardware and software rendering, setting this
 | 
			
		||||
variable to true forces the use of software rendering.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
</dl>
 | 
			
		||||
 | 
			
		||||
<h2>EGL Drivers</h2>
 | 
			
		||||
 | 
			
		||||
<dl>
 | 
			
		||||
<dt><code>egl_dri2</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
 | 
			
		||||
It functions as a DRI driver loader.  For <code>x11</code> support, it talks to
 | 
			
		||||
the X server directly using (XCB-)DRI2 protocol.</p>
 | 
			
		||||
 | 
			
		||||
<p>This driver can share DRI drivers with <code>libGL</code>.</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<dt><code>egl_gallium</code></dt>
 | 
			
		||||
<dd>
 | 
			
		||||
 | 
			
		||||
<p>This driver is based on Gallium3D.  It supports all rendering APIs and
 | 
			
		||||
hardware supported by Gallium3D.  It is the only driver that supports OpenVG.
 | 
			
		||||
The supported platforms are X11, DRM, FBDEV, and GDI.</p>
 | 
			
		||||
 | 
			
		||||
<p>This driver comes with its own hardware drivers
 | 
			
		||||
(<code>pipe_<hw></code>) and client API modules
 | 
			
		||||
(<code>st_<api></code>).</p>
 | 
			
		||||
 | 
			
		||||
</dd>
 | 
			
		||||
 | 
			
		||||
<h2>Packaging</h2>
 | 
			
		||||
 | 
			
		||||
<p>The ABI between the main library and its drivers are not stable.  Nor is
 | 
			
		||||
there a plan to stabilize it at the moment.  Of the EGL drivers,
 | 
			
		||||
<code>egl_gallium</code> has its own hardware drivers and client API modules.
 | 
			
		||||
They are considered internal to <code>egl_gallium</code> and there is also no
 | 
			
		||||
stable ABI between them.  These should be kept in mind when packaging for
 | 
			
		||||
distribution.</p>
 | 
			
		||||
 | 
			
		||||
<p>Generally, <code>egl_dri2</code> is preferred over <code>egl_gallium</code>
 | 
			
		||||
when the system already has DRI drivers.  As <code>egl_gallium</code> is loaded
 | 
			
		||||
before <code>egl_dri2</code> when both are available, <code>egl_gallium</code>
 | 
			
		||||
is disabled by default.</p>
 | 
			
		||||
 | 
			
		||||
<h2>Developers</h2>
 | 
			
		||||
 | 
			
		||||
<p>The sources of the main library and the classic drivers can be found at
 | 
			
		||||
<code>src/egl/</code>.  The sources of the <code>egl</code> state tracker can
 | 
			
		||||
be found at <code>src/gallium/state_trackers/egl/</code>.</p>
 | 
			
		||||
 | 
			
		||||
<h3>Lifetime of Display Resources</h3>
 | 
			
		||||
 | 
			
		||||
<p>Contexts and surfaces are examples of display resources.  They might live
 | 
			
		||||
longer than the display that creates them.</p>
 | 
			
		||||
 | 
			
		||||
<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all
 | 
			
		||||
display resources should be destroyed.  Similarly, when a thread is released
 | 
			
		||||
through <code>eglReleaseThread</code>, all current display resources should be
 | 
			
		||||
released.  Another way to destroy or release resources is through functions
 | 
			
		||||
such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p>
 | 
			
		||||
 | 
			
		||||
<p>When a resource that is current to some thread is destroyed, the resource
 | 
			
		||||
should not be destroyed immediately.  EGL requires the resource to live until
 | 
			
		||||
it is no longer current.  A driver usually calls
 | 
			
		||||
<code>eglIs<Resource>Bound</code> to check if a resource is bound
 | 
			
		||||
(current) to any thread in the destroy callbacks.  If it is still bound, the
 | 
			
		||||
resource is not destroyed.</p>
 | 
			
		||||
 | 
			
		||||
<p>The main library will mark destroyed current resources as unlinked.  In a
 | 
			
		||||
driver's <code>MakeCurrent</code> callback,
 | 
			
		||||
<code>eglIs<Resource>Linked</code> can then be called to check if a newly
 | 
			
		||||
released resource is linked to a display.  If it is not, the last reference to
 | 
			
		||||
the resource is removed and the driver should destroy the resource.  But it
 | 
			
		||||
should be careful here because <code>MakeCurrent</code> might be called with an
 | 
			
		||||
uninitialized display.</p>
 | 
			
		||||
 | 
			
		||||
<p>This is the only mechanism provided by the main library to help manage the
 | 
			
		||||
resources.  The drivers are responsible to the correct behavior as defined by
 | 
			
		||||
EGL.</p>
 | 
			
		||||
 | 
			
		||||
<h3><code>EGL_RENDER_BUFFER</code></h3>
 | 
			
		||||
 | 
			
		||||
<p>In EGL, the color buffer a context should try to render to is decided by the
 | 
			
		||||
binding surface.  It should try to render to the front buffer if the binding
 | 
			
		||||
surface has <code>EGL_RENDER_BUFFER</code> set to
 | 
			
		||||
<code>EGL_SINGLE_BUFFER</code>;  If the same context is later bound to a
 | 
			
		||||
surface with <code>EGL_RENDER_BUFFER</code> set to
 | 
			
		||||
<code>EGL_BACK_BUFFER</code>, the context should try to render to the back
 | 
			
		||||
buffer.  However, the context is allowed to make the final decision as to which
 | 
			
		||||
color buffer it wants to or is able to render to.</p>
 | 
			
		||||
 | 
			
		||||
<p>For pbuffer surfaces, the render buffer is always
 | 
			
		||||
<code>EGL_BACK_BUFFER</code>.  And for pixmap surfaces, the render buffer is
 | 
			
		||||
always <code>EGL_SINGLE_BUFFER</code>.  Unlike window surfaces, EGL spec
 | 
			
		||||
requires their <code>EGL_RENDER_BUFFER</code> values to be honored.  As a
 | 
			
		||||
result, a driver should never set <code>EGL_PIXMAP_BIT</code> or
 | 
			
		||||
<code>EGL_PBUFFER_BIT</code> bits of a config if the contexts created with the
 | 
			
		||||
config won't be able to honor the <code>EGL_RENDER_BUFFER</code> of pixmap or
 | 
			
		||||
pbuffer surfaces.</p>
 | 
			
		||||
 | 
			
		||||
<p>It should also be noted that pixmap and pbuffer surfaces are assumed to be
 | 
			
		||||
single-buffered, in that <code>eglSwapBuffers</code> has no effect on them.  It
 | 
			
		||||
is desirable that a driver allocates a private color buffer for each pbuffer
 | 
			
		||||
surface created.  If the window system the driver supports has native pbuffers,
 | 
			
		||||
or if the native pixmaps have more than one color buffers, the driver should
 | 
			
		||||
carefully attach the native color buffers to the EGL surfaces, re-route them if
 | 
			
		||||
required.</p>
 | 
			
		||||
 | 
			
		||||
<p>There is no defined behavior as to, for example, how
 | 
			
		||||
<code>glDrawBuffer</code> interacts with <code>EGL_RENDER_BUFFER</code>.  Right
 | 
			
		||||
now, it is desired that the draw buffer in a client API be fixed for pixmap and
 | 
			
		||||
pbuffer surfaces.  Therefore, the driver is responsible to guarantee that the
 | 
			
		||||
client API renders to the specified render buffer for pixmap and pbuffer
 | 
			
		||||
surfaces.</p>
 | 
			
		||||
 | 
			
		||||
<h3><code>EGLDisplay</code> Mutex</h3>
 | 
			
		||||
 | 
			
		||||
The <code>EGLDisplay</code> will be locked before calling any of the dispatch
 | 
			
		||||
functions (well, except for GetProcAddress which does not take an
 | 
			
		||||
<code>EGLDisplay</code>).  This guarantees that the same dispatch function will
 | 
			
		||||
not be called with the sample display at the same time.  If a driver has access
 | 
			
		||||
to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
 | 
			
		||||
should as well lock the display before using it.
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,238 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Environment Variables</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Environment Variables</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Normally, no environment variables need to be set.  Most of the environment
 | 
			
		||||
variables used by Mesa/Gallium are for debugging purposes, but they can
 | 
			
		||||
sometimes be useful for debugging end-user issues.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>LibGL environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
 | 
			
		||||
   If set to 'verbose' additional information will be printed.
 | 
			
		||||
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
 | 
			
		||||
<li>LIBGL_ALWAYS_INDIRECT - forces an indirect rendering context/connection.
 | 
			
		||||
<li>LIBGL_ALWAYS_SOFTWARE - if set, always use software rendering
 | 
			
		||||
<li>LIBGL_NO_DRAWARRAYS - if set do not use DrawArrays GLX protocol (for debugging)
 | 
			
		||||
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
 | 
			
		||||
    calls per second.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Core Mesa environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>MESA_NO_ASM - if set, disables all assembly language optimizations
 | 
			
		||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
 | 
			
		||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
 | 
			
		||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
 | 
			
		||||
<li>MESA_DEBUG - if set, error messages are printed to stderr.  For example,
 | 
			
		||||
   if the application generates a GL_INVALID_ENUM error, a corresponding error
 | 
			
		||||
   message indicating where the error occurred, and possibly why, will be
 | 
			
		||||
   printed to stderr.<br>
 | 
			
		||||
   If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will
 | 
			
		||||
   generate exceptions.
 | 
			
		||||
<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
 | 
			
		||||
etc., rather than stderr
 | 
			
		||||
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
 | 
			
		||||
fragment programs (intended for developers only)
 | 
			
		||||
<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
 | 
			
		||||
operations with vertex programs (intended for developers only).
 | 
			
		||||
Setting this variable automatically sets the MESA_TEX_PROG variable as well.
 | 
			
		||||
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
 | 
			
		||||
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
 | 
			
		||||
and disable the GL_EXT_bar extension.
 | 
			
		||||
<li>MESA_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted
 | 
			
		||||
by extension year.
 | 
			
		||||
If this variable is set to year X, only extensions defined on or before year
 | 
			
		||||
X will be reported.
 | 
			
		||||
This is to work-around a bug in some games where the extension string is
 | 
			
		||||
copied into a fixed-size buffer without truncating.
 | 
			
		||||
If the extension string is too long, the buffer overrun can cause the game
 | 
			
		||||
to crash.
 | 
			
		||||
This is a work-around for that.
 | 
			
		||||
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
 | 
			
		||||
glGetString(GL_VERSION) and possibly the GL API type.
 | 
			
		||||
<ul>
 | 
			
		||||
<li> The format should be MAJOR.MINOR[FC]
 | 
			
		||||
<li> FC is an optional suffix that indicates a forward compatible context.
 | 
			
		||||
This is only valid for versions >= 3.0.
 | 
			
		||||
<li> GL versions < 3.0 are set to a compatibility (non-Core) profile
 | 
			
		||||
<li> GL versions = 3.0, see below
 | 
			
		||||
<li> GL versions > 3.0 are set to a Core profile
 | 
			
		||||
<li> Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
 | 
			
		||||
<ul>
 | 
			
		||||
<li> 2.1 - select a compatibility (non-Core) profile with GL version 2.1
 | 
			
		||||
<li> 3.0 - select a compatibility (non-Core) profile with GL version 3.0
 | 
			
		||||
<li> 3.0FC - select a Core+Forward Compatible profile with GL version 3.0
 | 
			
		||||
<li> 3.1 - select a Core profile with GL version 3.1
 | 
			
		||||
<li> 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
 | 
			
		||||
</ul>
 | 
			
		||||
<li> Mesa may not really implement all the features of the given version.
 | 
			
		||||
(for developers only)
 | 
			
		||||
</ul>
 | 
			
		||||
<li>MESA_GLSL_VERSION_OVERRIDE - changes the value returned by
 | 
			
		||||
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
 | 
			
		||||
"130".  Mesa will not really implement all the features of the given language version
 | 
			
		||||
if it's higher than what's normally reported. (for developers only)
 | 
			
		||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Mesa Xlib driver environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The following are only applicable to the Mesa Xlib software driver.
 | 
			
		||||
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
 | 
			
		||||
<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode
 | 
			
		||||
<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer,
 | 
			
		||||
    either "pixmap" or "ximage"
 | 
			
		||||
<li>MESA_GAMMA - gamma correction coefficients for red, green, blue channels
 | 
			
		||||
<li>MESA_XSYNC - enable synchronous X behavior (for debugging only)
 | 
			
		||||
<li>MESA_GLX_FORCE_CI - if set, force GLX to treat 8bpp visuals as CI visuals
 | 
			
		||||
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
 | 
			
		||||
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
 | 
			
		||||
<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware.
 | 
			
		||||
   This is useful for debugging hangs, etc.</li>
 | 
			
		||||
<li>INTEL_DEBUG - a comma-separated list of named flags, which do various things:
 | 
			
		||||
<ul>
 | 
			
		||||
   <li>tex - emit messages about textures.</li>
 | 
			
		||||
   <li>state - emit messages about state flag tracking</li>
 | 
			
		||||
   <li>blit - emit messages about blit operations</li>
 | 
			
		||||
   <li>miptree - emit messages about miptrees</li>
 | 
			
		||||
   <li>perf - emit messages about performance issues</li>
 | 
			
		||||
   <li>perfmon - emit messages about AMD_performance_monitor</li>
 | 
			
		||||
   <li>bat - emit batch information</li>
 | 
			
		||||
   <li>pix - emit messages about pixel operations</li>
 | 
			
		||||
   <li>buf - emit messages about buffer objects</li>
 | 
			
		||||
   <li>reg - emit messages about regions</li>
 | 
			
		||||
   <li>fbo - emit messages about framebuffers</li>
 | 
			
		||||
   <li>fs - dump shader assembly for fragment shaders</li>
 | 
			
		||||
   <li>gs - dump shader assembly for geometry shaders</li>
 | 
			
		||||
   <li>sync - emit messages about synchronization</li>
 | 
			
		||||
   <li>prim - emit messages about drawing primitives</li>
 | 
			
		||||
   <li>vert - emit messages about vertex assembly</li>
 | 
			
		||||
   <li>dri - emit messages about the DRI interface</li>
 | 
			
		||||
   <li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
 | 
			
		||||
   <li>stats - enable statistics counters. you probably actually want perfmon or intel_gpu_top instead.</li>
 | 
			
		||||
   <li>urb - emit messages about URB setup</li>
 | 
			
		||||
   <li>vs - dump shader assembly for vertex shaders</li>
 | 
			
		||||
   <li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
 | 
			
		||||
   <li>aub - dump batches into an AUB trace for use with simulation tools</li>
 | 
			
		||||
   <li>shader_time - record how much GPU time is spent in each shader</li>
 | 
			
		||||
   <li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
 | 
			
		||||
   <li>blorp - emit messages about the blorp operations (blits & clears)</li>
 | 
			
		||||
   <li>nodualobj - suppress generation of dual-object geometry shader code</li>
 | 
			
		||||
</ul>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>RADEON_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>EGL environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa EGL supports different sets of environment variables.  See the
 | 
			
		||||
<a href="egl.html">Mesa EGL</a> page for the details.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Gallium environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GALLIUM_HUD - draws various information on the screen, like framerate,
 | 
			
		||||
    cpu load, driver statistics, performance counters, etc.
 | 
			
		||||
    Set GALLIUM_HUD=help and run e.g. glxgears for more info.
 | 
			
		||||
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
 | 
			
		||||
    rather than stderr.
 | 
			
		||||
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
 | 
			
		||||
    variables which are used, and their current values.
 | 
			
		||||
<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
 | 
			
		||||
<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
 | 
			
		||||
    print any errors to stderr.
 | 
			
		||||
<LI>DRAW_FSE - ???
 | 
			
		||||
<LI>DRAW_NO_FSE - ???
 | 
			
		||||
<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
 | 
			
		||||
    shaders, vertex fetch, etc.
 | 
			
		||||
<li>ST_DEBUG - controls debug output from the Mesa/Gallium state tracker.
 | 
			
		||||
Setting to "tgsi", for example, will print all the TGSI shaders.
 | 
			
		||||
See src/mesa/state_tracker/st_debug.c for other options.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h3>Softpipe driver environment variables</h3>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
 | 
			
		||||
    to stderr
 | 
			
		||||
<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
 | 
			
		||||
    to stderr
 | 
			
		||||
<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd.  For profiling purposes.
 | 
			
		||||
<li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for
 | 
			
		||||
    vertex shading processing.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h3>LLVMpipe driver environment variables</h3>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
 | 
			
		||||
<li>LP_DEBUG - a comma-separated list of debug options is accepted.  See the
 | 
			
		||||
    source code for details.
 | 
			
		||||
<li>LP_PERF - a comma-separated list of options to selectively no-op various
 | 
			
		||||
    parts of the driver.  See the source code for details.
 | 
			
		||||
<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
 | 
			
		||||
    Zero turns of threading completely.  The default value is the number of CPU
 | 
			
		||||
    cores present.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h3>VMware SVGA driver environment variables</h3>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>SVGA_FORCE_SWTNL - force use of software vertex transformation
 | 
			
		||||
<li>SVGA_NO_SWTNL - don't allow software vertex transformation fallbacks
 | 
			
		||||
(will often result in incorrect rendering).
 | 
			
		||||
<li>SVGA_DEBUG - for dumping shaders, constant buffers, etc.  See the code
 | 
			
		||||
for details.
 | 
			
		||||
<li>See the driver code for other, lesser-used variables.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Other Gallium drivers have their own environment variables.  These may change
 | 
			
		||||
frequently so the source code should be consulted for details.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,51 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Extensions</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa Extensions</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
A number of extensions have been developed especially for Mesa.
 | 
			
		||||
The specifications follow.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="specs/MESA_agp_offset.spec">MESA_agp_offset.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_drm_image.spec">MESA_drm_image.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_multithread_makecurrent.spec">MESA_multithread_makecurrent.spec</a>
 | 
			
		||||
<li><a href="specs/OLD/MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</a> (obsolete)
 | 
			
		||||
<li><a href="specs/MESA_pack_invert.spec">MESA_pack_invert.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</a>
 | 
			
		||||
<li><a href="specs/OLD/MESA_program_debug.spec">MESA_program_debug.spec</a> (obsolete)
 | 
			
		||||
<li><a href="specs/MESA_release_buffers.spec">MESA_release_buffers.spec</a>
 | 
			
		||||
<li><a href="specs/OLD/MESA_resize_buffers.spec">MESA_resize_buffers.spec</a> (obsolete)
 | 
			
		||||
<li><a href="specs/MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_shader_debug.spec">MESA_shader_debug.spec</a>
 | 
			
		||||
<li><a href="specs/OLD/MESA_sprite_point.spec">MESA_sprite_point.spec</a> (obsolete)
 | 
			
		||||
<li><a href="specs/MESA_swap_control.spec">MESA_swap_control.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_swap_frame_usage.spec">MESA_swap_frame_usage.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_texture_array.spec">MESA_texture_array.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</a>
 | 
			
		||||
<li><a href="specs/OLD/MESA_trace.spec">MESA_trace.spec</a> (obsolete)
 | 
			
		||||
<li><a href="specs/MESA_window_pos.spec">MESA_window_pos.spec</a>
 | 
			
		||||
<li><a href="specs/MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</a>
 | 
			
		||||
<li><a href="specs/WL_bind_wayland_display.spec">WL_bind_wayland_display.spec</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										405
									
								
								docs/faq.html
									
									
									
									
									
								
							
							
						
						
									
										405
									
								
								docs/faq.html
									
									
									
									
									
								
							@@ -1,405 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa FAQ</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<center>
 | 
			
		||||
<h1>Mesa Frequently Asked Questions</h1>
 | 
			
		||||
Last updated: 9 October 2012
 | 
			
		||||
</center>
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
<h2>Index</h2>
 | 
			
		||||
<a href="#part1">1. High-level Questions and Answers</a>
 | 
			
		||||
<br>
 | 
			
		||||
<a href="#part2">2. Compilation and Installation Problems</a>
 | 
			
		||||
<br>
 | 
			
		||||
<a href="#part3">3. Runtime / Rendering Problems</a>
 | 
			
		||||
<br>
 | 
			
		||||
<a href="#part4">4. Developer Questions</a>
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="part1">1. High-level Questions and Answers</h1>
 | 
			
		||||
 | 
			
		||||
<h2>1.1 What is Mesa?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa is an open-source implementation of the OpenGL specification.
 | 
			
		||||
OpenGL is a programming library for writing interactive 3D applications.
 | 
			
		||||
See the <a href="http://www.opengl.org/">OpenGL website</a> for more
 | 
			
		||||
information.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 9.x supports the OpenGL 3.1 specification.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Yes.  Specifically, Mesa serves as the OpenGL core for the open-source DRI
 | 
			
		||||
drivers for X.org.
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>See the <a href="http://dri.freedesktop.org/">DRI website</a>
 | 
			
		||||
  for more information.</li>
 | 
			
		||||
  <li>See <a href="http://intellinuxgraphics.org">intellinuxgraphics.org</a>
 | 
			
		||||
  for more information about Intel drivers.</li>
 | 
			
		||||
  <li>See <a href="http://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
 | 
			
		||||
  for more information about Nouveau drivers.</li>
 | 
			
		||||
  <li>See <a href="http://www.x.org/wiki/RadeonFeature">www.x.org/wiki/RadeonFeature</a>
 | 
			
		||||
  for more information about Radeon drivers.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>1.3 What purpose does Mesa serve today?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Hardware-accelerated OpenGL implementations are available for most popular
 | 
			
		||||
operating systems today.
 | 
			
		||||
Still, Mesa serves at least these purposes:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Mesa is used as the core of the open-source X.org DRI
 | 
			
		||||
    hardware drivers.
 | 
			
		||||
</li>
 | 
			
		||||
<li>Mesa is quite portable and allows OpenGL to be used on systems
 | 
			
		||||
    that have no other OpenGL solution.
 | 
			
		||||
</li>
 | 
			
		||||
<li>Software rendering with Mesa serves as a reference for validating the
 | 
			
		||||
    hardware drivers.
 | 
			
		||||
</li>
 | 
			
		||||
<li>A software implementation of OpenGL is useful for experimentation,
 | 
			
		||||
    such as testing new rendering techniques.
 | 
			
		||||
</li>
 | 
			
		||||
<li>Mesa can render images with deep color channels: 16-bit integer
 | 
			
		||||
    and 32-bit floating point color channels are supported.
 | 
			
		||||
    This capability is only now appearing in hardware.
 | 
			
		||||
</li>
 | 
			
		||||
<li>Mesa's internal limits (max lights, clip planes, texture size, etc) can be
 | 
			
		||||
    changed for special needs (hardware limits are hard to overcome).
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>1.4 What's the difference between "Stand-Alone" Mesa and the DRI drivers?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
 | 
			
		||||
On systems running the X Window System it does all its rendering through
 | 
			
		||||
the Xlib API:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>The GLX API is supported, but it's really just an emulation of the
 | 
			
		||||
     real thing.
 | 
			
		||||
<li>The GLX wire protocol is not supported and there's no OpenGL extension
 | 
			
		||||
    loaded by the X server.
 | 
			
		||||
<li>There is no hardware acceleration.
 | 
			
		||||
<li>The OpenGL library, libGL.so, contains everything (the programming API,
 | 
			
		||||
    the GLX functions and all the rendering code).
 | 
			
		||||
</ul>
 | 
			
		||||
<p>
 | 
			
		||||
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
 | 
			
		||||
within the DRI (Direct Rendering Infrastructure):
 | 
			
		||||
<ul>
 | 
			
		||||
<li>The libGL.so library provides the GL and GLX API functions, a GLX
 | 
			
		||||
    protocol encoder, and a device driver loader.
 | 
			
		||||
<li>The device driver modules (such as r200_dri.so) contain a built-in
 | 
			
		||||
    copy of the core Mesa code.
 | 
			
		||||
<li>The X server loads the GLX module.
 | 
			
		||||
    The GLX module decodes incoming GLX protocol and dispatches the commands
 | 
			
		||||
    to a rendering module.
 | 
			
		||||
    For the DRI, this module is basically a software Mesa renderer.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
This wasn't easy in the past.
 | 
			
		||||
Now, the DRI drivers are included in the Mesa tree and can be compiled
 | 
			
		||||
separately from the X server.
 | 
			
		||||
Just follow the Mesa <a href="install.html">compilation instructions</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html">
 | 
			
		||||
OpenGL Sample Implementation (SI)</a> is available.
 | 
			
		||||
The SI was written during the time that OpenGL was originally designed.
 | 
			
		||||
Unfortunately, development of the SI has stagnated.
 | 
			
		||||
Mesa is much more up to date with modern features and extensions.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://sourceforge.net/projects/ogl-es/">Vincent</a> is
 | 
			
		||||
an open-source implementation of OpenGL ES for mobile devices.
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://www.dsbox.com/minigl.html">miniGL</a>
 | 
			
		||||
is a subset of OpenGL for PalmOS devices.
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://bellard.org/TinyGL/">TinyGL</a>
 | 
			
		||||
is a subset of OpenGL.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://sourceforge.net/projects/softgl/">SoftGL</a>
 | 
			
		||||
is an OpenGL subset for mobile devices.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://chromium.sourceforge.net/">Chromium</a>
 | 
			
		||||
isn't a conventional OpenGL implementation (it's layered upon OpenGL),
 | 
			
		||||
but it does export the OpenGL API.  It allows tiled rendering, sort-last
 | 
			
		||||
rendering, etc.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<a href="http://www.ticalc.org/archives/files/fileinfo/361/36173.html">ClosedGL</a>
 | 
			
		||||
is an OpenGL subset library for TI graphing calculators.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
There may be other open OpenGL implementations, but Mesa is the most
 | 
			
		||||
popular and feature-complete.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="part2">2. Compilation and Installation Problems</h1>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>2.1 What's the easiest way to install Mesa?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
If you're using a Linux-based system, your distro CD most likely already
 | 
			
		||||
has Mesa packages (like RPM or DEB) which you can easily install.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h2>
 | 
			
		||||
<p>
 | 
			
		||||
You're application is written in IRIS GL, not OpenGL.
 | 
			
		||||
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
 | 
			
		||||
entirely.
 | 
			
		||||
Mesa's not the solution.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>2.3 Where is the GLUT library?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
 | 
			
		||||
If you don't already have GLUT installed, you should grab 
 | 
			
		||||
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>2.4 Where is the GLw library?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
GLw (OpenGL widget library) is now available from a separate <a href="http://cgit.freedesktop.org/mesa/glw/">git repository</a>.  Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>2.5 What's the proper place for the libraries and headers?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
On Linux-based systems you'll want to follow the
 | 
			
		||||
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html">Linux ABI</a> standard.
 | 
			
		||||
Basically you'll want the following:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>/usr/include/GL/gl.h - the main OpenGL header
 | 
			
		||||
</li><li>/usr/include/GL/glu.h - the OpenGL GLU (utility) header
 | 
			
		||||
</li><li>/usr/include/GL/glx.h - the OpenGL GLX header
 | 
			
		||||
</li><li>/usr/include/GL/glext.h - the OpenGL extensions header
 | 
			
		||||
</li><li>/usr/include/GL/glxext.h - the OpenGL GLX extensions header
 | 
			
		||||
</li><li>/usr/include/GL/osmesa.h - the Mesa off-screen rendering header
 | 
			
		||||
</li><li>/usr/lib/libGL.so - a symlink to libGL.so.1
 | 
			
		||||
</li><li>/usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
 | 
			
		||||
</li><li>/usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library.  xyz denotes the
 | 
			
		||||
Mesa version number.
 | 
			
		||||
</li></ul>
 | 
			
		||||
<p>
 | 
			
		||||
When configuring Mesa, there are three autoconf options that affect the install
 | 
			
		||||
location that you should take care with: <code>--prefix</code>,
 | 
			
		||||
<code>--libdir</code>, and <code>--with-dri-driverdir</code>. To install Mesa
 | 
			
		||||
into the system location where it will be available for all programs to use, set
 | 
			
		||||
<code>--prefix=/usr</code>. Set <code>--libdir</code> to where your Linux
 | 
			
		||||
distribution installs system libraries, usually either <code>/usr/lib</code> or
 | 
			
		||||
<code>/usr/lib64</code>. Set <code>--with-dri-driverdir</code> to the directory
 | 
			
		||||
where your Linux distribution installs DRI drivers. To find your system's DRI
 | 
			
		||||
driver directory, try executing <code>find /usr -type d -name dri</code>. For
 | 
			
		||||
example, if the <code>find</code> command listed <code>/usr/lib64/dri</code>,
 | 
			
		||||
then set <code>--with-dri-driverdir=/usr/lib64/dri</code>.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
After determining the correct values for the install location, configure Mesa
 | 
			
		||||
with <code>./configure --prefix=/usr --libdir=xxx --with-dri-driverdir=xxx</code>
 | 
			
		||||
and then install with <code>sudo make install</code>.
 | 
			
		||||
</p>
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="part3">3. Runtime / Rendering Problems</h1>
 | 
			
		||||
 | 
			
		||||
<h2>3.1 Rendering is slow / why isn't my graphics hardware being used?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
 | 
			
		||||
(eg. classic swrast, softpipe or llvmpipe)
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
You can run the <code>glxinfo</code> program to learn about your OpenGL
 | 
			
		||||
library.
 | 
			
		||||
Look for the <code>OpenGL vendor</code> and <code>OpenGL renderer</code> values.
 | 
			
		||||
That will identify who's OpenGL library with which driver you're using and what sort of
 | 
			
		||||
hardware it has detected.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
If you're using a hardware accelerated driver you want <code>direct rendering: Yes</code>.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
If your DRI-based driver isn't working, go to the
 | 
			
		||||
<a href="http://dri.freedesktop.org/">DRI website</a> for trouble-shooting information.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>3.2 I'm seeing errors in depth (Z) buffering.  Why?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Make sure the ratio of the far to near clipping planes isn't too great.
 | 
			
		||||
Look
 | 
			
		||||
<a href="http://www.opengl.org/resources/faq/technical/depthbuffer.htm#0040">here</a>
 | 
			
		||||
for details.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa uses a 16-bit depth buffer by default which is smaller and faster
 | 
			
		||||
to clear than a 32-bit buffer but not as accurate.
 | 
			
		||||
If you need a deeper you can modify the parameters to
 | 
			
		||||
<code> glXChooseVisual</code> in your code.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>3.3 Why Isn't depth buffering working at all?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Be sure you're requesting a depth buffered-visual.  If you set the MESA_DEBUG
 | 
			
		||||
environment variable it will warn you about trying to enable depth testing
 | 
			
		||||
when you don't have a depth buffer.
 | 
			
		||||
</p>
 | 
			
		||||
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
 | 
			
		||||
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
 | 
			
		||||
called with a non-zero value for GLX_DEPTH_SIZE.
 | 
			
		||||
</p>
 | 
			
		||||
<p>This discussion applies to stencil buffers, accumulation buffers and
 | 
			
		||||
alpha channels too.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>3.4 Why does glGetString() always return NULL?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Be sure you have an active/current OpenGL rendering context before
 | 
			
		||||
calling glGetString.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>3.5 GL_POINTS and GL_LINES don't touch the right pixels</h2>
 | 
			
		||||
<p>
 | 
			
		||||
If you're trying to draw a filled region by using GL_POINTS or GL_LINES
 | 
			
		||||
and seeing holes or gaps it's because of a float-to-int rounding problem.
 | 
			
		||||
But this is not a bug.
 | 
			
		||||
See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips".
 | 
			
		||||
Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
 | 
			
		||||
will fix the problem.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>3.6 How can I change the maximum framebuffer size in Mesa's
 | 
			
		||||
<tt>swrast</tt> backend?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
These can be overridden by using the <tt>--with-max-width</tt> and
 | 
			
		||||
<tt>--with-max-height</tt> options.  The two need not be equal.
 | 
			
		||||
</p><p>
 | 
			
		||||
Do note that Mesa uses these values to size some internal buffers,
 | 
			
		||||
so increasing these sizes will cause Mesa to require additional
 | 
			
		||||
memory.  Furthermore, increasing these limits beyond <tt>4096</tt>
 | 
			
		||||
may introduce rasterization artifacts; see the leading comments in
 | 
			
		||||
<tt>src/mesa/swrast/s_tritemp.h</tt>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="part4">4. Developer Questions</h1>
 | 
			
		||||
 | 
			
		||||
<h2>4.1 How can I contribute?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
First, join the <a href="lists.html">mesa-dev mailing list</a>.
 | 
			
		||||
That's where Mesa development is discussed.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The <a href="http://www.opengl.org/documentation">
 | 
			
		||||
OpenGL Specification</a> is the bible for OpenGL implementation work.
 | 
			
		||||
You should read it.
 | 
			
		||||
</p>
 | 
			
		||||
<p>Most of the Mesa development work involves implementing new OpenGL
 | 
			
		||||
extensions, writing hardware drivers (for the DRI), and code optimization.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>4.2 How do I write a new device driver?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Unfortunately, writing a device driver isn't easy.
 | 
			
		||||
It requires detailed understanding of OpenGL, the Mesa code, and your
 | 
			
		||||
target hardware/operating system.
 | 
			
		||||
3D graphics are not simple.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The best way to get started is to use an existing driver as your starting
 | 
			
		||||
point.
 | 
			
		||||
For a classic hardware driver, the i965 driver is a good example.
 | 
			
		||||
For a Gallium3D hardware driver, the r300g, r600g and the i915g are good examples.
 | 
			
		||||
</p>
 | 
			
		||||
<p>The DRI website has more information about writing hardware drivers.
 | 
			
		||||
The process isn't well document because the Mesa driver interface changes
 | 
			
		||||
over time, and we seldom have spare time for writing documentation.
 | 
			
		||||
That being said, many people have managed to figure out the process.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Joining the appropriate mailing lists and asking questions (and searching
 | 
			
		||||
the archives) is a good way to get information.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?</h2>
 | 
			
		||||
<p>
 | 
			
		||||
The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt">specification for the extension</a>
 | 
			
		||||
indicates that there are intellectual property (IP) and/or patent issues
 | 
			
		||||
to be dealt with.
 | 
			
		||||
</p>
 | 
			
		||||
<p>We've been unsuccessful in getting a response from S3 (or whoever owns
 | 
			
		||||
the IP nowadays) to indicate whether or not an open source project can
 | 
			
		||||
implement the extension (specifically the compression/decompression
 | 
			
		||||
algorithms).
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
In the mean time, a 3rd party <a href="http://dri.freedesktop.org/wiki/S3TC">
 | 
			
		||||
plug-in library</a> is available.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								docs/gears.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/gears.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 3.4 KiB  | 
@@ -1,105 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Help Wanted</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Help Wanted / To-Do List</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
We can always use more help with the Mesa project.
 | 
			
		||||
Here are some specific ideas and areas where help would be appreciated:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li>
 | 
			
		||||
<b>Driver patching and testing.</b>
 | 
			
		||||
Patches are often posted to the <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev mailing list</a>, but aren't
 | 
			
		||||
immediately checked into git because not enough people are testing them.
 | 
			
		||||
Just applying patches, testing and reporting back is helpful.
 | 
			
		||||
<li>
 | 
			
		||||
<b>Driver debugging.</b>
 | 
			
		||||
There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa">bug database</a>.
 | 
			
		||||
<li>
 | 
			
		||||
<b>Remove aliasing warnings.</b>
 | 
			
		||||
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
 | 
			
		||||
issues in the code.
 | 
			
		||||
<li>
 | 
			
		||||
<b>Windows driver building, testing and maintenance.</b>
 | 
			
		||||
Fixing MSVC builds.
 | 
			
		||||
<li>
 | 
			
		||||
<b>Contribute more tests to
 | 
			
		||||
<a href="http://piglit.freedesktop.org/">Piglit</a>.</b>
 | 
			
		||||
<li>
 | 
			
		||||
<b>Automatic testing.
 | 
			
		||||
</b>
 | 
			
		||||
It would be great if someone would set up an automated system for grabbing
 | 
			
		||||
the latest Mesa code and run tests (such as piglit) then report issues to
 | 
			
		||||
the mailing list.
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
You can find some further To-do lists here:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<b>Common To-Do lists:</b>
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt">
 | 
			
		||||
    <b>GL3.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
 | 
			
		||||
  <li><a href="http://dri.freedesktop.org/wiki/MissingFunctionality">
 | 
			
		||||
    <b>MissingFunctionality</b></a> - Detailed information about missing OpenGL features.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<b>Driver specific To-Do lists:</b>
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/docs/llvm-todo.txt">
 | 
			
		||||
    <b>LLVMpipe</b></a> - Software driver using LLVM for runtime code generation.</li>
 | 
			
		||||
  <li><a href="http://dri.freedesktop.org/wiki/RadeonsiToDo">
 | 
			
		||||
    <b>radeonsi</b></a> - Driver for AMD Southern Island.</li>
 | 
			
		||||
  <li><a href="http://dri.freedesktop.org/wiki/R600ToDo">
 | 
			
		||||
    <b>r600g</b></a> - Driver for ATI/AMD R600 - Northern Island.</li>
 | 
			
		||||
  <li><a href="http://dri.freedesktop.org/wiki/R300ToDo">
 | 
			
		||||
    <b>r300g</b></a> - Driver for ATI R300 - R500.</li>
 | 
			
		||||
  <li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/i915/TODO">
 | 
			
		||||
    <b>i915g</b></a> - Driver for Intel i915/i945.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
If you want to do something new in Mesa, first join the Mesa developer's
 | 
			
		||||
mailing list.
 | 
			
		||||
Then post a message to propose what you want to do, just to make sure
 | 
			
		||||
there's no issues.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Anyone is welcome to contribute code to the Mesa project.
 | 
			
		||||
By doing so, it's assumed that you agree to the code's licensing terms.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Finally:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li>Try to write high-quality code that follows the existing style.
 | 
			
		||||
<li>Use uniform indentation, write comments, use meaningful identifiers, etc.
 | 
			
		||||
<li>Test your code thoroughly.  Include test programs if appropriate.
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										1643
									
								
								docs/index.html
									
									
									
									
									
								
							
							
						
						
									
										1643
									
								
								docs/index.html
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,216 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Compiling and Installing</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Compiling and Installing</h1>
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li><a href="#prereq-general">Prerequisites for building</a>
 | 
			
		||||
  <ul>
 | 
			
		||||
  <li><a href="#prereq-general">General prerequisites</a>
 | 
			
		||||
  <li><a href="#prereq-dri">For DRI and hardware acceleration</a>
 | 
			
		||||
  </ul>
 | 
			
		||||
<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
 | 
			
		||||
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
 | 
			
		||||
<li><a href="#other">Building for other systems</a>
 | 
			
		||||
<li><a href="#libs">Library Information</a>
 | 
			
		||||
<li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="prereq-general">1. Prerequisites for building</h1>
 | 
			
		||||
 | 
			
		||||
<h2>1.1 General</h2>
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="http://www.python.org/">Python</a> - Python is required.
 | 
			
		||||
Version 2.6.4 or later should work.
 | 
			
		||||
</li>
 | 
			
		||||
<br>
 | 
			
		||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
 | 
			
		||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
 | 
			
		||||
</li>
 | 
			
		||||
<br>
 | 
			
		||||
<li>lex / yacc - for building the GLSL compiler.
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
On Linux systems, flex and bison are used.
 | 
			
		||||
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
On Windows with MinGW, install flex and bison with:
 | 
			
		||||
<pre>mingw-get install msys-flex msys-bison</pre>
 | 
			
		||||
For MSVC on Windows, you can find flex/bison programs on the
 | 
			
		||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/windows-utils/">Mesa ftp site</a>.
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h3 id="prereq-dri">1.2 For DRI and hardware acceleration</h3>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The following are required for DRI-based hardware acceleration with Mesa:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">
 | 
			
		||||
dri2proto</a> version 2.6 or later
 | 
			
		||||
<li><a href="http://dri.freedesktop.org/libdrm/">libDRM</a>
 | 
			
		||||
version 2.4.33 or later
 | 
			
		||||
<li>Xorg server version 1.5 or later
 | 
			
		||||
<li>Linux 2.6.28 or later
 | 
			
		||||
</ul>
 | 
			
		||||
<p>
 | 
			
		||||
If you're using a fedora distro the following command should install all
 | 
			
		||||
the needed dependencies:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
  sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \
 | 
			
		||||
  gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \
 | 
			
		||||
  expat-devel llvm-devel
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The primary method to build Mesa on Unix systems is with autoconf.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The general approach is the standard:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
  ./configure
 | 
			
		||||
  make
 | 
			
		||||
  sudo make install
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
But please read the <a href="autoconf.html">detailed autoconf instructions</a>
 | 
			
		||||
for more details.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To build Mesa with SCons on Linux or Windows do
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
    scons
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
The build output will be placed in
 | 
			
		||||
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
 | 
			
		||||
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
 | 
			
		||||
by -debug for debug builds.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
    scons platform=windows toolchain=crossmingw machine=x86 mesagdi libgl-gdi
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
This will create:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>build/windows-x86-debug/mesa/drivers/windows/gdi/opengl32.dll — Mesa + swrast, binary compatible with Windows's opengl32.dll
 | 
			
		||||
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll
 | 
			
		||||
</ul>
 | 
			
		||||
<p>
 | 
			
		||||
Put them all in the same directory to test them.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="other">4. Building for other systems</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Documentation for other environments (some may be very out of date):
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="README.VMS">README.VMS</a> - VMS
 | 
			
		||||
<li><a href="README.CYGWIN">README.CYGWIN</a> - Cygwin
 | 
			
		||||
<li><a href="README.WIN32">README.WIN32</a> - Win32
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="libs">5. Library Information</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When compilation has finished, look in the top-level <code>lib/</code>
 | 
			
		||||
(or <code>lib64/</code>) directory.
 | 
			
		||||
You'll see a set of library files similar to this:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
lrwxrwxrwx    1 brian    users          10 Mar 26 07:53 libGL.so -> libGL.so.1*
 | 
			
		||||
lrwxrwxrwx    1 brian    users          19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
 | 
			
		||||
-rwxr-xr-x    1 brian    users     3375861 Mar 26 07:53 libGL.so.1.5.060100*
 | 
			
		||||
lrwxrwxrwx    1 brian    users          14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
 | 
			
		||||
lrwxrwxrwx    1 brian    users          23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
 | 
			
		||||
-rwxr-xr-x    1 brian    users       23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
 | 
			
		||||
<br>
 | 
			
		||||
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
If you built the DRI hardware drivers, you'll also see the DRI drivers:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
-rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i915_dri.so
 | 
			
		||||
-rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i965_dri.so
 | 
			
		||||
-rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
 | 
			
		||||
-rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
If you built with Gallium support, look in lib/gallium/ for Gallium-based
 | 
			
		||||
versions of libGL and device drivers.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Running <code>make install</code> will install package configuration files
 | 
			
		||||
for the pkg-config utility.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When compiling your OpenGL application you can use pkg-config to determine
 | 
			
		||||
the proper compiler and linker flags.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
For example, compiling and linking a GLUT application can be done with:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										355
									
								
								docs/intro.html
									
									
									
									
									
								
							
							
						
						
									
										355
									
								
								docs/intro.html
									
									
									
									
									
								
							@@ -1,355 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Introduction</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Introduction</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa is an open-source implementation of the
 | 
			
		||||
<a href="http://www.opengl.org/">OpenGL</a> specification -
 | 
			
		||||
a system for rendering interactive 3D graphics.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
A variety of device drivers allows Mesa to be used in many different
 | 
			
		||||
environments ranging from software emulation to complete hardware acceleration
 | 
			
		||||
for modern GPUs.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa ties into several other open-source projects: the 
 | 
			
		||||
<a href="http://dri.freedesktop.org/">Direct Rendering 
 | 
			
		||||
Infrastructure</a> and <a href="http://x.org">X.org</a> to 
 | 
			
		||||
provide OpenGL support to users of X on Linux, FreeBSD and other operating 
 | 
			
		||||
systems.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Project History</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Mesa project was originally started by Brian Paul.
 | 
			
		||||
Here's a short history of the project.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
August, 1993: I begin working on Mesa in my spare time.  The project
 | 
			
		||||
has no name at that point.  I was simply interested in writing a simple
 | 
			
		||||
3D graphics library that used the then-new OpenGL API.  I was partially
 | 
			
		||||
inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL.
 | 
			
		||||
I had been programming with IRIS GL since 1991.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
November 1994: I contact SGI to ask permission to distribute my OpenGL-like
 | 
			
		||||
graphics library on the internet.  SGI was generally receptive to the
 | 
			
		||||
idea and after negotiations with SGI's legal department, I get permission
 | 
			
		||||
to release it.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
February 1995: Mesa 1.0 is released on the internet.  I expected that
 | 
			
		||||
a few people would be interested in it, but not thousands.
 | 
			
		||||
I was soon receiving patches, new features and thank-you notes on a
 | 
			
		||||
daily basis.  That encouraged me to continue working on Mesa.  The
 | 
			
		||||
name Mesa just popped into my head one day.  SGI had asked me not to use
 | 
			
		||||
the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't
 | 
			
		||||
want to make up a new acronym.  Later, I heard of the Mesa programming
 | 
			
		||||
language and the Mesa spreadsheet for NeXTStep.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
In the early days, OpenGL wasn't available on too many systems.
 | 
			
		||||
It even took a while for SGI to support it across their product line.
 | 
			
		||||
Mesa filled a big hole during that time.
 | 
			
		||||
For a lot of people, Mesa was their first introduction to OpenGL.
 | 
			
		||||
I think SGI recognized that Mesa actually helped to promote
 | 
			
		||||
the OpenGL API, so they didn't feel threatened by the project.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
1995-1996: I continue working on Mesa both during my spare time and during
 | 
			
		||||
my work hours at the Space Science and Engineering Center at the University
 | 
			
		||||
of Wisconsin in Madison.  My supervisor, Bill Hibbard, lets me do this because
 | 
			
		||||
Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html">Vis5D</a> project.
 | 
			
		||||
</p><p>
 | 
			
		||||
October 1996: Mesa 2.0 is released.  It implements the OpenGL 1.1 specification.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
March 1997: Mesa 2.2 is released.  It supports the new 3dfx Voodoo graphics
 | 
			
		||||
card via the Glide library.  It's the first really popular hardware OpenGL
 | 
			
		||||
implementation for Linux.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
September 1998: Mesa 3.0 is released.  It's the first publicly-available
 | 
			
		||||
implementation of the OpenGL 1.2 API.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
March 1999: I attend my first OpenGL ARB meeting.  I contribute to the
 | 
			
		||||
development of several official OpenGL extensions over the years.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
September 1999: I'm hired by Precision Insight, Inc.  Mesa is a key
 | 
			
		||||
component of 3D hardware acceleration in the new DRI project for XFree86.
 | 
			
		||||
Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
October 2001: Mesa 4.0 is released.
 | 
			
		||||
It implements the OpenGL 1.3 specification.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
 | 
			
		||||
Jens Owen, David Dawes and Frank LaMonica.
 | 
			
		||||
Tungsten Graphics was acquired by VMware in December 2008.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
November 2002: Mesa 5.0 is released.
 | 
			
		||||
It implements the OpenGL 1.4 specification.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
January 2003: Mesa 6.0 is released.  It implements the OpenGL 1.5
 | 
			
		||||
specification as well as the GL_ARB_vertex_program and
 | 
			
		||||
GL_ARB_fragment_program extensions.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
 | 
			
		||||
and OpenGL Shading Language.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
2008: Keith Whitwell and other Tungsten Graphics employees develop
 | 
			
		||||
<a href="http://en.wikipedia.org/wiki/Gallium3D">Gallium</a>
 | 
			
		||||
- a new GPU abstraction layer.  The latest Mesa drivers are based on
 | 
			
		||||
Gallium and other APIs such as OpenVG are implemented on top of Gallium.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
February 2012: Mesa 8.0 is released, implementing the OpenGL 3.0 specification
 | 
			
		||||
and version 1.30 of the OpenGL Shading Language.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Ongoing: Mesa is the OpenGL implementation for several types of hardware
 | 
			
		||||
made by Intel, AMD and NVIDIA, plus the VMware virtual GPU.
 | 
			
		||||
There's also several software-based renderers: swrast (the legacy
 | 
			
		||||
Mesa rasterizer), softpipe (a gallium reference driver) and llvmpipe
 | 
			
		||||
(LLVM/JIT-based high-speed rasterizer).
 | 
			
		||||
Work continues on the drivers and core Mesa to implement newer versions
 | 
			
		||||
of the OpenGL specification.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Major Versions</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
This is a summary of the major versions of Mesa.
 | 
			
		||||
Mesa's major version number has been incremented whenever a new version
 | 
			
		||||
of the OpenGL specification is implemented.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 9.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 9.x of Mesa implements the OpenGL 3.1 API.
 | 
			
		||||
While the driver for Intel Sandy Bridge and Ivy Bridge is the only
 | 
			
		||||
driver to support OpenGL 3.1, many developers across the open-source
 | 
			
		||||
community contributed features required for OpenGL 3.1.  The primary
 | 
			
		||||
features added since the Mesa 8.0 release are
 | 
			
		||||
GL_ARB_texture_buffer_object and GL_ARB_uniform_buffer_object.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 8.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 8.x of Mesa implements the OpenGL 3.0 API.
 | 
			
		||||
The developers at Intel deserve a lot of credit for implementing most
 | 
			
		||||
of the OpenGL 3.0 features in core Mesa, the GLSL compiler as well as
 | 
			
		||||
the i965 driver.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 7.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 7.x of Mesa implements the OpenGL 2.1 API.  The main feature
 | 
			
		||||
of OpenGL 2.x is the OpenGL Shading Language.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 6.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
 | 
			
		||||
extensions incorporated as standard features:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_ARB_occlusion_query
 | 
			
		||||
<li>GL_ARB_vertex_buffer_object
 | 
			
		||||
<li>GL_EXT_shadow_funcs
 | 
			
		||||
</ul>
 | 
			
		||||
<p>
 | 
			
		||||
Also note that several OpenGL tokens were renamed in OpenGL 1.5
 | 
			
		||||
for the sake of consistency.
 | 
			
		||||
The old tokens are still available.
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
New Token                   Old Token
 | 
			
		||||
------------------------------------------------------------
 | 
			
		||||
GL_FOG_COORD_SRC            GL_FOG_COORDINATE_SOURCE
 | 
			
		||||
GL_FOG_COORD                GL_FOG_COORDINATE
 | 
			
		||||
GL_CURRENT_FOG_COORD        GL_CURRENT_FOG_COORDINATE
 | 
			
		||||
GL_FOG_COORD_ARRAY_TYPE     GL_FOG_COORDINATE_ARRAY_TYPE
 | 
			
		||||
GL_FOG_COORD_ARRAY_STRIDE   GL_FOG_COORDINATE_ARRAY_STRIDE
 | 
			
		||||
GL_FOG_COORD_ARRAY_POINTER  GL_FOG_COORDINATE_ARRAY_POINTER
 | 
			
		||||
GL_FOG_COORD_ARRAY          GL_FOG_COORDINATE_ARRAY
 | 
			
		||||
GL_SRC0_RGB                 GL_SOURCE0_RGB
 | 
			
		||||
GL_SRC1_RGB                 GL_SOURCE1_RGB
 | 
			
		||||
GL_SRC2_RGB                 GL_SOURCE2_RGB
 | 
			
		||||
GL_SRC0_ALPHA               GL_SOURCE0_ALPHA
 | 
			
		||||
GL_SRC1_ALPHA               GL_SOURCE1_ALPHA
 | 
			
		||||
GL_SRC2_ALPHA               GL_SOURCE2_ALPHA
 | 
			
		||||
</pre>
 | 
			
		||||
<p>
 | 
			
		||||
See the
 | 
			
		||||
<a href="http://www.opengl.org/documentation/spec.html">
 | 
			
		||||
OpenGL specification</a> for more details.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 5.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
 | 
			
		||||
extensions incorporated as standard features:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_ARB_depth_texture
 | 
			
		||||
<li>GL_ARB_shadow
 | 
			
		||||
<li>GL_ARB_texture_env_crossbar
 | 
			
		||||
<li>GL_ARB_texture_mirror_repeat
 | 
			
		||||
<li>GL_ARB_window_pos
 | 
			
		||||
<li>GL_EXT_blend_color
 | 
			
		||||
<li>GL_EXT_blend_func_separate
 | 
			
		||||
<li>GL_EXT_blend_logic_op
 | 
			
		||||
<li>GL_EXT_blend_minmax
 | 
			
		||||
<li>GL_EXT_blend_subtract
 | 
			
		||||
<li>GL_EXT_fog_coord
 | 
			
		||||
<li>GL_EXT_multi_draw_arrays
 | 
			
		||||
<li>GL_EXT_point_parameters
 | 
			
		||||
<li>GL_EXT_secondary_color
 | 
			
		||||
<li>GL_EXT_stencil_wrap
 | 
			
		||||
<li>GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
 | 
			
		||||
<li>GL_SGIS_generate_mipmap
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 4.x features</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
 | 
			
		||||
extensions incorporated as standard features:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_ARB_multisample
 | 
			
		||||
<li>GL_ARB_multitexture
 | 
			
		||||
<li>GL_ARB_texture_border_clamp
 | 
			
		||||
<li>GL_ARB_texture_compression
 | 
			
		||||
<li>GL_ARB_texture_cube_map
 | 
			
		||||
<li>GL_ARB_texture_env_add
 | 
			
		||||
<li>GL_ARB_texture_env_combine
 | 
			
		||||
<li>GL_ARB_texture_env_dot3
 | 
			
		||||
<li>GL_ARB_transpose_matrix
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Version 3.x features</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
 | 
			
		||||
features:
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>BGR, BGRA and packed pixel formats
 | 
			
		||||
<li>New texture border clamp mode
 | 
			
		||||
<li>glDrawRangeElements()
 | 
			
		||||
<li>standard 3-D texturing
 | 
			
		||||
<li>advanced MIPMAP control
 | 
			
		||||
<li>separate specular color interpolation
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Version 2.x features</h2>
 | 
			
		||||
<p>
 | 
			
		||||
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
 | 
			
		||||
features.
 | 
			
		||||
</p>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Texture mapping:
 | 
			
		||||
	<ul>
 | 
			
		||||
	<li>glAreTexturesResident
 | 
			
		||||
	<li>glBindTexture
 | 
			
		||||
	<li>glCopyTexImage1D
 | 
			
		||||
	<li>glCopyTexImage2D
 | 
			
		||||
	<li>glCopyTexSubImage1D
 | 
			
		||||
	<li>glCopyTexSubImage2D
 | 
			
		||||
	<li>glDeleteTextures
 | 
			
		||||
	<li>glGenTextures
 | 
			
		||||
	<li>glIsTexture
 | 
			
		||||
	<li>glPrioritizeTextures
 | 
			
		||||
	<li>glTexSubImage1D
 | 
			
		||||
	<li>glTexSubImage2D
 | 
			
		||||
	</ul>
 | 
			
		||||
<li>Vertex Arrays:
 | 
			
		||||
	<ul>
 | 
			
		||||
	<li>glArrayElement
 | 
			
		||||
	<li>glColorPointer
 | 
			
		||||
	<li>glDrawElements
 | 
			
		||||
	<li>glEdgeFlagPointer
 | 
			
		||||
	<li>glIndexPointer
 | 
			
		||||
	<li>glInterleavedArrays
 | 
			
		||||
	<li>glNormalPointer
 | 
			
		||||
	<li>glTexCoordPointer
 | 
			
		||||
	<li>glVertexPointer
 | 
			
		||||
	</ul>
 | 
			
		||||
<li>Client state management:
 | 
			
		||||
	<ul>
 | 
			
		||||
	<li>glDisableClientState
 | 
			
		||||
	<li>glEnableClientState
 | 
			
		||||
	<li>glPopClientAttrib
 | 
			
		||||
	<li>glPushClientAttrib
 | 
			
		||||
	</ul>
 | 
			
		||||
<li>Misc:
 | 
			
		||||
	<ul>
 | 
			
		||||
	<li>glGetPointer
 | 
			
		||||
	<li>glIndexub
 | 
			
		||||
	<li>glIndexubv
 | 
			
		||||
	<li>glPolygonOffset
 | 
			
		||||
	</ul>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										197
									
								
								docs/libGL.txt
									
									
									
									
									
								
							
							
						
						
									
										197
									
								
								docs/libGL.txt
									
									
									
									
									
								
							@@ -1,197 +0,0 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Introduction
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
This document describes the implementation of the XFree86 4.0 libGL.so
 | 
			
		||||
library defined by the Linux/OpenGL Base specification found at
 | 
			
		||||
http://reality.sgi.com/opengl/linux/linuxbase.html.
 | 
			
		||||
 | 
			
		||||
The documentation is divided into two sections:
 | 
			
		||||
    User's Guide
 | 
			
		||||
    Driver Developer's Guide
 | 
			
		||||
 | 
			
		||||
Author:  Brian Paul     (brian@precisioninsight.com)
 | 
			
		||||
Date:    February 2000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
User's Guide
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Using libGL.so
 | 
			
		||||
 | 
			
		||||
The libGL.so library defines the gl- and glX-prefixed functions needed to
 | 
			
		||||
run OpenGL programs.  OpenGL client applications should link with the
 | 
			
		||||
-lGL option to use it.
 | 
			
		||||
 | 
			
		||||
libGL.so serves two primary functions: GLX protocol generation for indirect
 | 
			
		||||
rendering and loading/management of hardware drivers for direct rendering.
 | 
			
		||||
 | 
			
		||||
When libGL.so initializes itself it uses the DRI to determine the
 | 
			
		||||
appropriate hardware driver for each screen on the local X display.
 | 
			
		||||
The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
 | 
			
		||||
directory.  Drivers are named with the convention <name>_dri.so where
 | 
			
		||||
<name> is a driver such as "radeon", "i965", "nouveau", etc.
 | 
			
		||||
 | 
			
		||||
The LIBGL_DRIVERS_DIR environment variable may be used to specify a
 | 
			
		||||
different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
 | 
			
		||||
This environment variable is ignored in setuid programs for security
 | 
			
		||||
reasons.
 | 
			
		||||
 | 
			
		||||
When libGL.so is unable to locate appropriate hardware drivers it will
 | 
			
		||||
fall back to using indirect GLX rendering.
 | 
			
		||||
 | 
			
		||||
To aid in solving problems, libGL.so will print diagnostic messages to
 | 
			
		||||
stderr if the LIBGL_DEBUG environment variable is defined.
 | 
			
		||||
 | 
			
		||||
libGL.so is thread safe.  The overhead of thread safety for common,
 | 
			
		||||
single-thread clients is negligible.  However, the overhead of thread
 | 
			
		||||
safety for multi-threaded clients is significant.  Each GL API call
 | 
			
		||||
requires two calls to pthread_get_specific() which can noticably
 | 
			
		||||
impact performance.  Warning:  libGL.so is thread safe but individual
 | 
			
		||||
DRI drivers may not be.  Please consult the documentation for a driver
 | 
			
		||||
to learn if it is thread safe.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Indirect Rendering
 | 
			
		||||
 | 
			
		||||
You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
 | 
			
		||||
environment variable.  Hardware acceleration will not be used.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
libGL.so Extensibility
 | 
			
		||||
 | 
			
		||||
libGL.so is designed to be extended without upgrading.  That is,
 | 
			
		||||
drivers may install new OpenGL extension functions into libGL.so
 | 
			
		||||
without requiring libGL.so to be replaced.  Clients of libGL.so should
 | 
			
		||||
use the glXGetProcAddressEXT() function to obtain the address of
 | 
			
		||||
functions by name.  For more details of GLX_ARB_get_proc_address see
 | 
			
		||||
http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
 | 
			
		||||
 | 
			
		||||
libGL.so is also designed with flexibility such that it may be used
 | 
			
		||||
with many generations of hardware drivers to come.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Driver Developer's Guide
 | 
			
		||||
------------------------
 | 
			
		||||
 | 
			
		||||
This section describes the requirements to make an XFree86 4.0
 | 
			
		||||
libGL.so-compatible hardware driver.  It is not intended for end
 | 
			
		||||
users of libGL.so.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
XFree86 source files
 | 
			
		||||
 | 
			
		||||
libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
 | 
			
		||||
Specifically, libGL.so is built from:
 | 
			
		||||
 | 
			
		||||
	xc/lib/GL/glx/*.c
 | 
			
		||||
	xc/lib/dri/XF86dri.c
 | 
			
		||||
	xc/lib/dri/dri_glx.c
 | 
			
		||||
	xc/lib/GL/mesa/src/glapi.c
 | 
			
		||||
	xc/lib/GL/mesa/src/glapitemp.h
 | 
			
		||||
	xc/lib/GL/mesa/src/glapitable.h
 | 
			
		||||
	xc/lib/GL/mesa/src/glapioffsets.h
 | 
			
		||||
	xc/lib/GL/mesa/src/glapinoop.c
 | 
			
		||||
	xc/lib/GL/mesa/src/glheader.h
 | 
			
		||||
	xc/lib/GL/mesa/src/glthread.c
 | 
			
		||||
	xc/lib/GL/mesa/src/glthread.h
 | 
			
		||||
	xc/lib/GL/mesa/src/X86/glapi_x86.S
 | 
			
		||||
	xc/lib/GL/mesa/src/X86/assyntax.h
 | 
			
		||||
 | 
			
		||||
Understand that the mesa/src/gl*.[ch] files are not tied to Mesa.  They
 | 
			
		||||
have no dependencies on the rest of Mesa and are designed to be reusable
 | 
			
		||||
in a number of projects.
 | 
			
		||||
 | 
			
		||||
The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
 | 
			
		||||
of GL functions.  They are not required; C-based dispatch can be used
 | 
			
		||||
instead, with a slight performance penalty.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Driver loading and binding
 | 
			
		||||
 | 
			
		||||
When libGL.so initializes itself (via the __glXInitialize function) a
 | 
			
		||||
call is made to driCreateDisplay().  This function uses DRI facilities
 | 
			
		||||
to determine the driver file appropriate for each screen on the local
 | 
			
		||||
display.  Each screen's driver is then opened with dlopen() and asked
 | 
			
		||||
for its __driCreateScreen() function.  The pointers to the __driCreateScreen()
 | 
			
		||||
functions are kept in an array, indexed by screen number, in the
 | 
			
		||||
__DRIdisplayRec struct.
 | 
			
		||||
 | 
			
		||||
When a driver's __driCreateScreen() function is called, it must initialize
 | 
			
		||||
a __DRIscreenRec struct.  This struct acts as the root of a tree of
 | 
			
		||||
function pointers which are called to create and destroy contexts and
 | 
			
		||||
drawables and perform all the operations needed by the GLX interface.
 | 
			
		||||
See the xc/lib/GL/glx/glxclient.h file for details.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Dynamic Extension Function Registration
 | 
			
		||||
 | 
			
		||||
In order to provide forward compatibility with future drivers, libGL.so
 | 
			
		||||
allows drivers to register new OpenGL extension functions which weren't
 | 
			
		||||
known when libGL.so was built.
 | 
			
		||||
 | 
			
		||||
The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
 | 
			
		||||
as soon as libGL.so is loaded.  This is done with gcc's constructor
 | 
			
		||||
attribute.  This mechanism will likely have to be changed for other compilers.
 | 
			
		||||
 | 
			
		||||
register_extensions() loops over all local displays and screens, determines
 | 
			
		||||
the DRI driver for each, and calls the driver's __driRegisterExtensions()
 | 
			
		||||
function, if present.
 | 
			
		||||
 | 
			
		||||
The __driRegisterExtensions() function can add new entrypoints to libGL
 | 
			
		||||
by calling:
 | 
			
		||||
 | 
			
		||||
    GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
 | 
			
		||||
 | 
			
		||||
The parameters are the name of the function (such as "glFoobarEXT") and the
 | 
			
		||||
offset of the dispatch slot in the API dispatch table.  The return value
 | 
			
		||||
indicates success (GL_TRUE) or failure (GL_FALSE).
 | 
			
		||||
 | 
			
		||||
_glapi_add_entrypoint() will synthesize entrypoint code in assembly
 | 
			
		||||
language.  Assembly languages is required since parameter passing
 | 
			
		||||
can't be handled correctly using a C-based solution.
 | 
			
		||||
 | 
			
		||||
The address of the new entrypoint is obtained by calling the
 | 
			
		||||
glXGetProcAddressARB() function.
 | 
			
		||||
 | 
			
		||||
The dispatch offset number MUST be a number allocated by SGI in the same
 | 
			
		||||
manner in which new GL_* constants are allocated.  Using an arbitrary
 | 
			
		||||
offset number will result in many problems.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Dispatch Management
 | 
			
		||||
 | 
			
		||||
When a GL context is made current, the driver must install its dispatch
 | 
			
		||||
table as the current dispatch table.  This is done by calling
 | 
			
		||||
 | 
			
		||||
	void _glapi_set_dispatch(struct _glapi_table *dispatch);
 | 
			
		||||
 | 
			
		||||
This will install the named dispatch table for the calling thread.
 | 
			
		||||
The current dispatch table for a thread can be obtained by calling
 | 
			
		||||
 | 
			
		||||
	struct _glapi_table *_glapi_get_dispatch(void);
 | 
			
		||||
 | 
			
		||||
For higher performance in the common single-thread case, the global
 | 
			
		||||
variable _glapi_Dispatch will point to the current dispatch table.
 | 
			
		||||
This variable will be NULL when in multi-thread mode.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Context Management
 | 
			
		||||
 | 
			
		||||
libGL.so uses the XFree86 xthreads package to manage a thread-specific
 | 
			
		||||
current context pointer.  See __glXGet/SetCurrentContext() in glext.c
 | 
			
		||||
 | 
			
		||||
Drivers may use the _glapi_set/get_context() functions to maintain
 | 
			
		||||
a private thread-specific context pointer.
 | 
			
		||||
 | 
			
		||||
@@ -1,117 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>License / Copyright Information</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Disclaimer</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa is a 3-D graphics library with an API which is very similar to
 | 
			
		||||
that of <a href="http://www.opengl.org/">OpenGL</a>.*
 | 
			
		||||
To the extent that Mesa utilizes the OpenGL command syntax or state
 | 
			
		||||
machine, it is being used with authorization from <a
 | 
			
		||||
href="http://www.sgi.com/">Silicon Graphics,
 | 
			
		||||
Inc.</a>(SGI). However, the author does not possess an OpenGL license
 | 
			
		||||
from SGI, and makes no claim that Mesa is in any way a compatible
 | 
			
		||||
replacement for OpenGL or associated with SGI. Those who want a
 | 
			
		||||
licensed implementation of OpenGL should contact a licensed
 | 
			
		||||
vendor.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Please do not refer to the library as <em>MesaGL</em> (for legal
 | 
			
		||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
 | 
			
		||||
library</em>. <br>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
* OpenGL is a trademark of <a href="http://www.sgi.com/"
 | 
			
		||||
>Silicon Graphics Incorporated</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>License / Copyright Information</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Mesa distribution consists of several components.  Different copyrights
 | 
			
		||||
and licenses apply to different components.  For example, some demo programs
 | 
			
		||||
are copyrighted by SGI, some of the Mesa device drivers are copyrighted by
 | 
			
		||||
their authors.  See below for a list of Mesa's main components and the license
 | 
			
		||||
for each.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The core Mesa library is licensed according to the terms of the MIT license.
 | 
			
		||||
This allows integration with the XFree86, Xorg and DRI projects.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The default Mesa license is as follows:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
to deal in the Software without restriction, including without limitation
 | 
			
		||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included
 | 
			
		||||
in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
			
		||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Attention, Contributors</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When contributing to the Mesa project you must agree to the licensing terms
 | 
			
		||||
of the component to which you're contributing.
 | 
			
		||||
The following section lists the primary components of the Mesa distribution
 | 
			
		||||
and their respective licenses.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Mesa Component Licenses</h1>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
Component         Location               License
 | 
			
		||||
------------------------------------------------------------------
 | 
			
		||||
Main Mesa code    src/mesa/              Mesa (MIT)
 | 
			
		||||
 | 
			
		||||
Device drivers    src/mesa/drivers/*     MIT, generally
 | 
			
		||||
 | 
			
		||||
Ext headers       include/GL/glext.h     Khronos
 | 
			
		||||
                  include/GL/glxext.h
 | 
			
		||||
 | 
			
		||||
C11 thread        include/c11/threads*.h Boost (permissive)
 | 
			
		||||
emulation
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
In general, consult the source files for license terms.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,97 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Mailing Lists</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mailing Lists</h1>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>There are four Mesa 3D / DRI mailing lists:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-users">mesa-users</a>
 | 
			
		||||
- intended for end-users of Mesa and DRI drivers. Newbie questions are OK,
 | 
			
		||||
but please try the general OpenGL resources and Mesa/DRI documentation first.</p>
 | 
			
		||||
</li>
 | 
			
		||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">mesa-dev</a>
 | 
			
		||||
- for Mesa, Gallium and DRI development
 | 
			
		||||
discussion.  Not for beginners.</p>
 | 
			
		||||
</li>
 | 
			
		||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit">mesa-commit</a>
 | 
			
		||||
- relays git check-in messages (for developers).
 | 
			
		||||
In general, people should not post to this list.</p>
 | 
			
		||||
</li>
 | 
			
		||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-announce">mesa-announce</a>
 | 
			
		||||
- announcements of new Mesa
 | 
			
		||||
versions are sent to this list.  Very low traffic.</p>
 | 
			
		||||
</li>
 | 
			
		||||
<li><p><a href="http://lists.freedesktop.org/mailman/listinfo/piglit">piglit</a>
 | 
			
		||||
- for Piglit (OpenGL driver testing framework) discussion.</p>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<b>NOTE</b>: You <b>must</b> subscribe to these lists in order to post to them.
 | 
			
		||||
If you try to post to a list and you're not a subscriber (or if you try to post
 | 
			
		||||
from a different email address than you subscribed with) your posting will be
 | 
			
		||||
held for an indefinite period or may be discarded entirely.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Follow the links above for list archives.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The old Mesa lists hosted at SourceForge are no longer in use.
 | 
			
		||||
The archives are still available, however:
 | 
			
		||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce">mesa3d-announce</a>,
 | 
			
		||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users">mesa3d-users</a>,
 | 
			
		||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev">mesa3d-dev</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD 
 | 
			
		||||
kernels, see the
 | 
			
		||||
<a href="http://dri.freedesktop.org/wiki/MailingLists">DRI wiki</a>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>IRC</h1>
 | 
			
		||||
 | 
			
		||||
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
 | 
			
		||||
on <a href="http://webchat.freenode.net/">irc.freenode.net</a>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>OpenGL Forums</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Here are some other OpenGL-related forums you might find useful:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi">OpenGL discussion forums</a>
 | 
			
		||||
at www.opengl.org</li>
 | 
			
		||||
<li>Usenet newsgroups:
 | 
			
		||||
<ul>
 | 
			
		||||
<li>comp.graphics.algorithms</li>
 | 
			
		||||
<li>comp.graphics.api.opengl</li>
 | 
			
		||||
<li>comp.os.linux.x</li>
 | 
			
		||||
</ul>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,296 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>llvmpipe</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Introduction</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
 | 
			
		||||
do runtime code generation.
 | 
			
		||||
Shaders, point/line/triangle rasterization and vertex processing are
 | 
			
		||||
implemented with LLVM IR which is translated to x86 or x86-64 machine
 | 
			
		||||
code.
 | 
			
		||||
Also, the driver is multithreaded to take advantage of multiple CPU cores
 | 
			
		||||
(up to 8 at this time).
 | 
			
		||||
It's the fastest software rasterizer for Mesa.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Requirements</h1>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>
 | 
			
		||||
   <p>An x86 or amd64 processor; 64-bit mode recommended.</p>
 | 
			
		||||
   <p>
 | 
			
		||||
   Support for SSE2 is strongly encouraged.  Support for SSSE3 and SSE4.1 will
 | 
			
		||||
   yield the most efficient code.  The fewer features the CPU has the more
 | 
			
		||||
   likely is that you run into underperforming, buggy, or incomplete code.
 | 
			
		||||
   </p>
 | 
			
		||||
   <p>
 | 
			
		||||
   See /proc/cpuinfo to know what your CPU supports.
 | 
			
		||||
   </p>
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
   <p>LLVM: version 3.4 recommended; 3.1 or later required.</p>
 | 
			
		||||
   <p>
 | 
			
		||||
   For Linux, on a recent Debian based distribution do:
 | 
			
		||||
   </p>
 | 
			
		||||
<pre>
 | 
			
		||||
     aptitude install llvm-dev
 | 
			
		||||
</pre>
 | 
			
		||||
   <p>
 | 
			
		||||
   For a RPM-based distribution do:
 | 
			
		||||
   </p>
 | 
			
		||||
<pre>
 | 
			
		||||
     yum install llvm-devel
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
   <p>
 | 
			
		||||
	 For Windows you will need to build LLVM from source with MSVC or MINGW
 | 
			
		||||
	 (either natively or through cross compilers) and CMake, and set the LLVM
 | 
			
		||||
	 environment variable to the directory you installed it to.
 | 
			
		||||
 | 
			
		||||
   LLVM will be statically linked, so when building on MSVC it needs to be
 | 
			
		||||
   built with a matching CRT as Mesa, and you'll need to pass
 | 
			
		||||
   -DLLVM_USE_CRT_RELEASE=MTd for debug and checked builds,
 | 
			
		||||
   -DLLVM_USE_CRT_RELEASE=MTd for profile and release builds.
 | 
			
		||||
 | 
			
		||||
   You can build only the x86 target by passing -DLLVM_TARGETS_TO_BUILD=X86
 | 
			
		||||
   to cmake.
 | 
			
		||||
   </p>
 | 
			
		||||
</li>
 | 
			
		||||
 | 
			
		||||
<li>
 | 
			
		||||
   <p>scons (optional)</p>
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Building</h1>
 | 
			
		||||
 | 
			
		||||
To build everything on Linux invoke scons as:
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  scons build=debug libgl-xlib
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
Alternatively, you can build it with GNU make, if you prefer, by invoking it as
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  make linux-llvm
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
but the rest of these instructions assume that scons is used.
 | 
			
		||||
 | 
			
		||||
For Windows the procedure is similar except the target:
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  scons platform=windows build=debug libgl-gdi
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Using</h1>
 | 
			
		||||
 | 
			
		||||
<h2>Linux</h2>
 | 
			
		||||
 | 
			
		||||
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  build/foo/gallium/targets/libgl-xlib/libGL.so
 | 
			
		||||
</pre>
 | 
			
		||||
or
 | 
			
		||||
<pre>
 | 
			
		||||
  lib/gallium/libGL.so
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
 | 
			
		||||
 | 
			
		||||
<p>For performance evaluation pass build=release to scons, and use the corresponding
 | 
			
		||||
lib directory without the "-debug" suffix.</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Windows</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
On Windows, building will create
 | 
			
		||||
<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
 | 
			
		||||
which is a drop-in alternative for system's <code>opengl32.dll</code>.  To use
 | 
			
		||||
it put it in the same directory as your application.  It can also be used by
 | 
			
		||||
replacing the native ICD driver, but it's quite an advanced usage, so if you
 | 
			
		||||
need to ask, don't even try it.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
There is however an easy way to replace the OpenGL software renderer that comes
 | 
			
		||||
with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
 | 
			
		||||
any OpenGL drivers):
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
  <li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
 | 
			
		||||
  <li><p>load this registry settings:</p>
 | 
			
		||||
  <pre>REGEDIT4
 | 
			
		||||
 | 
			
		||||
; http://technet.microsoft.com/en-us/library/cc749368.aspx
 | 
			
		||||
; http://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
 | 
			
		||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
 | 
			
		||||
"DLL"="mesadrv.dll"
 | 
			
		||||
"DriverVersion"=dword:00000001
 | 
			
		||||
"Flags"=dword:00000001
 | 
			
		||||
"Version"=dword:00000002
 | 
			
		||||
</pre>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>Ditto for 64 bits drivers if you need them.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Profiling</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To profile llvmpipe you should build as
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
  scons build=profile <same-as-before>
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
This will ensure that frame pointers are used both in C and JIT functions, and
 | 
			
		||||
that no tail call optimizations are done by gcc.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>Linux perf integration</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
On Linux, it is possible to have symbol resolution of JIT code with <a href="http://perf.wiki.kernel.org/">Linux perf</a>:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
	perf record -g /my/application
 | 
			
		||||
	perf report
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When run inside Linux perf, llvmpipe will create a /tmp/perf-XXXXX.map file with
 | 
			
		||||
symbol address table.  It also dumps assembly code to /tmp/perf-XXXXX.map.asm,
 | 
			
		||||
which can be used by the bin/perf-annotate-jit script to produce disassembly of
 | 
			
		||||
the generated code annotated with the samples.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>You can obtain a call graph via
 | 
			
		||||
<a href="http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#linux_perf">Gprof2Dot</a>.</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Unit testing</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Building will also create several unit tests in
 | 
			
		||||
build/linux-???-debug/gallium/drivers/llvmpipe:
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li> lp_test_blend: blending
 | 
			
		||||
<li> lp_test_conv: SIMD vector conversion
 | 
			
		||||
<li> lp_test_format: pixel unpacking/packing
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Some of this tests can output results and benchmarks to a tab-separated-file
 | 
			
		||||
for posterior analysis, e.g.:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
  build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Development Notes</h1>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>
 | 
			
		||||
  When looking to this code by the first time start in lp_state_fs.c, and 
 | 
			
		||||
  then skim through the lp_bld_* functions called in there, and the comments
 | 
			
		||||
  at the top of the lp_bld_*.c functions.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
  The driver-independent parts of the LLVM / Gallium code are found in
 | 
			
		||||
  src/gallium/auxiliary/gallivm/.  The filenames and function prefixes
 | 
			
		||||
  need to be renamed from "lp_bld_" to something else though.
 | 
			
		||||
</li>
 | 
			
		||||
<li>
 | 
			
		||||
  We use LLVM-C bindings for now. They are not documented, but follow the C++
 | 
			
		||||
  interfaces very closely, and appear to be complete enough for code
 | 
			
		||||
  generation. See 
 | 
			
		||||
  <a href="http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
 | 
			
		||||
  this stand-alone example</a>.  See the llvm-c/Core.h file for reference.
 | 
			
		||||
</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h1 id="recommended_reading">Recommended Reading</h1>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>Rasterization</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://www.cs.unc.edu/~olano/papers/2dh-tri/">Triangle Scan Conversion using 2D Homogeneous Coordinates</a></li>
 | 
			
		||||
      <li><a href="http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602">Rasterization on Larrabee</a> (<a href="http://devmaster.net/posts/2887/rasterization-on-larrabee">DevMaster copy</a>)</li>
 | 
			
		||||
      <li><a href="http://devmaster.net/posts/6133/rasterization-using-half-space-functions">Rasterization using half-space functions</a></li>
 | 
			
		||||
      <li><a href="http://devmaster.net/posts/6145/advanced-rasterization">Advanced Rasterization</a></li>
 | 
			
		||||
      <li><a href="http://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/">Optimizing Software Occlusion Culling</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>Texture sampling</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://chrishecker.com/Miscellaneous_Technical_Articles#Perspective_Texture_Mapping">Perspective Texture Mapping</a></li>
 | 
			
		||||
      <li><a href="http://www.flipcode.com/archives/Texturing_As_In_Unreal.shtml">Texturing As In Unreal</a></li>
 | 
			
		||||
      <li><a href="http://www.gamasutra.com/view/feature/3301/runtime_mipmap_filtering.php">Run-Time MIP-Map Filtering</a></li>
 | 
			
		||||
      <li><a href="http://alt.3dcenter.org/artikel/2003/10-26_a_english.php">Will "brilinear" filtering persist?</a></li>
 | 
			
		||||
      <li><a href="http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html">Trilinear filtering</a></li>
 | 
			
		||||
      <li><a href="http://devmaster.net/posts/12785/texture-swizzling">Texture Swizzling</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>SIMD</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://www.cdl.uni-saarland.de/projects/wfv/#header4">Whole-Function Vectorization</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>Optimization</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807">Optimizing Pixomatic For Modern x86 Processors</a></li>
 | 
			
		||||
      <li><a href="http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html">Intel 64 and IA-32 Architectures Optimization Reference Manual</a></li>
 | 
			
		||||
      <li><a href="http://www.agner.org/optimize/">Software optimization resources</a></li>
 | 
			
		||||
      <li><a href="http://software.intel.com/en-us/articles/intel-intrinsics-guide">Intel Intrinsics Guide</a><li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>LLVM</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://llvm.org/docs/LangRef.html">LLVM Language Reference Manual</a></li>
 | 
			
		||||
      <li><a href="http://npcontemplation.blogspot.co.uk/2008/06/secret-of-llvm-c-bindings.html">The secret of LLVM C bindings</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
  <li>
 | 
			
		||||
    <p>General</p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li><a href="http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/">A trip through the Graphics Pipeline</a></li>
 | 
			
		||||
      <li><a href="http://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture">WARP Architecture and Performance</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,38 +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>Function Name Mangling</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Function Name Mangling</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
If you want to use both Mesa and another OpenGL library in the same
 | 
			
		||||
application at the same time you may find it useful to compile Mesa with
 | 
			
		||||
<i>name mangling</i>.
 | 
			
		||||
This results in all the Mesa functions being prefixed with
 | 
			
		||||
<b>mgl</b> instead of <b>gl</b>.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
To do this, recompile Mesa with the compiler flag -DUSE_MGL_NAMESPACE.
 | 
			
		||||
Add the flag to CFLAGS in the configuration file which you want to use.
 | 
			
		||||
For example:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
CFLAGS += -DUSE_MGL_NAMESPACE
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,63 +0,0 @@
 | 
			
		||||
/* Mesa CSS */
 | 
			
		||||
body {
 | 
			
		||||
	background-color: #ffffff;
 | 
			
		||||
	font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
 | 
			
		||||
	color: black;
 | 
			
		||||
 	link: #111188;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1 {
 | 
			
		||||
	font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h2 {
 | 
			
		||||
	font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
code {
 | 
			
		||||
	font-family: monospace;
 | 
			
		||||
	font-size: 10pt;
 | 
			
		||||
	color: black;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pre {
 | 
			
		||||
	/*font-family: monospace;*/
 | 
			
		||||
	font-size: 10pt;
 | 
			
		||||
	/*color: black;*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
iframe {
 | 
			
		||||
  width: 19em;
 | 
			
		||||
  height: 80em;
 | 
			
		||||
  border: none;
 | 
			
		||||
  float: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 20em;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  overflow: hidden
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header {
 | 
			
		||||
  background: black url('gears.png') 15px no-repeat;
 | 
			
		||||
  margin:0;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  clear:both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.header h1 {
 | 
			
		||||
  background: url('gears.png') right no-repeat;
 | 
			
		||||
  color: white;
 | 
			
		||||
  font: x-large sans-serif;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 50px;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  padding-top: 30px;
 | 
			
		||||
}
 | 
			
		||||
@@ -1,70 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>OpenGL ES</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>OpenGL ES</h1>
 | 
			
		||||
 | 
			
		||||
<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0.  More information about
 | 
			
		||||
OpenGL ES can be found at <a href="http://www.khronos.org/opengles/">
 | 
			
		||||
http://www.khronos.org/opengles/</a>.</p>
 | 
			
		||||
 | 
			
		||||
<p>OpenGL ES depends on a working EGL implementation.  Please refer to
 | 
			
		||||
<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
 | 
			
		||||
 | 
			
		||||
<h2>Build the Libraries</h2>
 | 
			
		||||
<ol>
 | 
			
		||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code> and enable the Gallium driver for your hardware.</li>
 | 
			
		||||
<li>Build and install Mesa as usual.</li>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
Alternatively, if XCB-DRI2 is installed on the system, one can use
 | 
			
		||||
<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
 | 
			
		||||
 | 
			
		||||
<ol>
 | 
			
		||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code>.</li>
 | 
			
		||||
<li>Build and install Mesa as usual.</li>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
 | 
			
		||||
EGL drivers for your hardware.</p>
 | 
			
		||||
 | 
			
		||||
<h2>Run the Demos</h2>
 | 
			
		||||
 | 
			
		||||
<p>There are some demos in <code>mesa/demos</code> repository.</p>
 | 
			
		||||
 | 
			
		||||
<h2>Developers</h2>
 | 
			
		||||
 | 
			
		||||
<h3>Dispatch Table</h3>
 | 
			
		||||
 | 
			
		||||
<p>OpenGL ES has an additional indirection when dispatching functions</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  Mesa:       glFoo() --> _mesa_Foo()
 | 
			
		||||
  OpenGL ES:  glFoo() --> _es_Foo() --> _mesa_Foo()
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>The indirection serves several purposes</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
 | 
			
		||||
<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
 | 
			
		||||
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,59 +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>OpenVG State Tracker</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>OpenVG State Tracker</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The current version of the OpenVG state tracker implements OpenVG 1.1.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
More information about OpenVG can be found at
 | 
			
		||||
<a href="http://www.khronos.org/openvg/">
 | 
			
		||||
http://www.khronos.org/openvg/</a> .
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
The OpenVG state tracker depends on the Gallium architecture and a working EGL implementation.
 | 
			
		||||
Please refer to <a href="egl.html">Mesa EGL</a> for more information about EGL.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Building the library</h2>
 | 
			
		||||
<ol>
 | 
			
		||||
<li>Run <code>configure</code> with <code>--enable-openvg</code> and
 | 
			
		||||
<code>--enable-gallium-egl</code>.  If you do not need OpenGL, you can add
 | 
			
		||||
<code>--disable-opengl</code> to save the compilation time.</li>
 | 
			
		||||
 | 
			
		||||
<li>Build and install Mesa as usual.</li>
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
<h3>Sample build</h3>
 | 
			
		||||
A sample build looks as follows:
 | 
			
		||||
<pre>
 | 
			
		||||
  $ ./configure --disable-opengl --enable-openvg --enable-gallium-egl
 | 
			
		||||
  $ make
 | 
			
		||||
  $ make install
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>It will install <code>libOpenVG.so</code>, <code>libEGL.so</code>, and one
 | 
			
		||||
or more EGL drivers.</p>
 | 
			
		||||
 | 
			
		||||
<h2>OpenVG Demos</h2>
 | 
			
		||||
 | 
			
		||||
<p>OpenVG demos can be found in mesa/demos repository.</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,81 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Off-screen Rendering</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Off-screen Rendering</h1>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa's off-screen interface is used for rendering into user-allocated memory
 | 
			
		||||
without any sort of window system or operating system dependencies.
 | 
			
		||||
That is, the GL_FRONT colorbuffer is actually a buffer in main memory,
 | 
			
		||||
rather than a window on your display.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The OSMesa API provides three basic functions for making off-screen
 | 
			
		||||
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
 | 
			
		||||
OSMesaDestroyContext().  See the Mesa/include/GL/osmesa.h header for
 | 
			
		||||
more information about the API functions.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The OSMesa interface may be used with any of three software renderers:
 | 
			
		||||
</p>
 | 
			
		||||
<ol>
 | 
			
		||||
<li>llvmpipe - this is the high-performance Gallium LLVM driver
 | 
			
		||||
<li>softpipe - this it the reference Gallium software driver
 | 
			
		||||
<li>swrast - this is the legacy Mesa software rasterizer
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
There are several examples of OSMesa in the mesa/demos repository.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h1>Building OSMesa</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Configure and build Mesa with something like:
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
configure --enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast
 | 
			
		||||
make
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Make sure you have LLVM installed first if you want to use the llvmpipe driver.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When the build is complete you should find:
 | 
			
		||||
</p>
 | 
			
		||||
<pre>
 | 
			
		||||
lib/libOSMesa.so  (swrast-based OSMesa)
 | 
			
		||||
lib/gallium/libOSMsea.so  (gallium-based OSMesa)
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Set your LD_LIBRARY_PATH to point to one directory or the other to select
 | 
			
		||||
the library you want to use.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
When you link your application, link with -lOSMesa
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
ARB_texture_float:
 | 
			
		||||
 | 
			
		||||
    Silicon Graphics, Inc. owns US Patent #6,650,327, issued November 18,
 | 
			
		||||
    2003 [1].
 | 
			
		||||
 | 
			
		||||
    SGI believes this patent contains necessary IP for graphics systems
 | 
			
		||||
    implementing floating point rasterization and floating point
 | 
			
		||||
    framebuffer capabilities described in ARB_texture_float extension, and
 | 
			
		||||
    will discuss licensing on RAND terms, on an individual basis with
 | 
			
		||||
    companies wishing to use this IP in the context of conformant OpenGL
 | 
			
		||||
    implementations [2].
 | 
			
		||||
 | 
			
		||||
    The source code to implement ARB_texture_float extension is included
 | 
			
		||||
    and can be toggled on at compile time, for those who purchased a
 | 
			
		||||
    license from SGI, or are in a country where the patent does not apply,
 | 
			
		||||
    etc.
 | 
			
		||||
 | 
			
		||||
    The software is provided "as is", without warranty of any kind, express
 | 
			
		||||
    or implied, including but not limited to the warranties of
 | 
			
		||||
    merchantability, fitness for a particular purpose and noninfringement.
 | 
			
		||||
    In no event shall the authors or copyright holders be liable for any
 | 
			
		||||
    claim, damages or other liability, whether in an action of contract,
 | 
			
		||||
    tort or otherwise, arising from, out of or in connection with the
 | 
			
		||||
    software or the use or other dealings in the software.
 | 
			
		||||
 | 
			
		||||
    You should contact a lawyer or SGI's legal department if you want to
 | 
			
		||||
    enable this extension.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[1] http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327
 | 
			
		||||
[2] http://www.opengl.org/registry/specs/ARB/texture_float.txt
 | 
			
		||||
@@ -1,76 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Performance Tips</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Performance Tips</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Performance tips for software rendering:
 | 
			
		||||
</p>
 | 
			
		||||
<ol>
 | 
			
		||||
 | 
			
		||||
<li> Turn off smooth shading when you don't need it (glShadeModel)
 | 
			
		||||
<li> Turn off depth buffering when you don't need it.
 | 
			
		||||
<li> Turn off dithering when not needed.
 | 
			
		||||
<li> Use double buffering as it's often faster than single buffering
 | 
			
		||||
<li> Compile in the X Shared Memory extension option if it's supported
 | 
			
		||||
      on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
 | 
			
		||||
      your system in the Make-config file.
 | 
			
		||||
<li> Recompile Mesa with more optimization if possible.
 | 
			
		||||
<li> Try to maximize the amount of drawing done between glBegin/glEnd pairs.
 | 
			
		||||
<li> Use the MESA_BACK_BUFFER variable to find best performance in double
 | 
			
		||||
      buffered mode.  (X users only)
 | 
			
		||||
<li> Optimized polygon rasterizers are employed when:
 | 
			
		||||
         rendering into back buffer which is an XImage
 | 
			
		||||
         RGB mode, not grayscale, not monochrome
 | 
			
		||||
         depth buffering is GL_LESS, or disabled
 | 
			
		||||
         flat or smooth shading
 | 
			
		||||
         dithered or non-dithered
 | 
			
		||||
         no other rasterization operations enabled (blending, stencil, etc)
 | 
			
		||||
<li> Optimized line drawing is employed when:
 | 
			
		||||
         rendering into back buffer which is an XImage
 | 
			
		||||
         RGB mode, not grayscale, not monochrome
 | 
			
		||||
         depth buffering is GL_LESS or disabled
 | 
			
		||||
         flat shading
 | 
			
		||||
         dithered or non-dithered
 | 
			
		||||
         no other rasterization operations enabled (blending, stencil, etc)
 | 
			
		||||
<li> Textured polygons are fastest when:
 | 
			
		||||
         using a 3-component (RGB), 2-D texture
 | 
			
		||||
         minification and magnification filters are GL_NEAREST
 | 
			
		||||
         texture coordinate wrap modes for S and T are GL_REPEAT
 | 
			
		||||
         GL_DECAL environment mode
 | 
			
		||||
         glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
 | 
			
		||||
         depth buffering is GL_LESS or disabled
 | 
			
		||||
<li> Lighting is fastest when:
 | 
			
		||||
         Two-sided lighting is disabled
 | 
			
		||||
         GL_LIGHT_MODEL_LOCAL_VIEWER is false
 | 
			
		||||
         GL_COLOR_MATERIAL is disabled
 | 
			
		||||
         No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
 | 
			
		||||
         No local lights are used (all position W's are 0.0)
 | 
			
		||||
         All material and light coefficients are >= zero
 | 
			
		||||
<li> XFree86 users:  if you want to use 24-bit color try starting your
 | 
			
		||||
      X server in 32-bit per pixel mode for better performance.  That is,
 | 
			
		||||
      start your X server with
 | 
			
		||||
         startx -- -bpp 32
 | 
			
		||||
      instead of
 | 
			
		||||
         startx -- -bpp 24
 | 
			
		||||
<li> Try disabling dithering with the MESA_NO_DITHER environment variable.
 | 
			
		||||
      If this env var is defined Mesa will disable dithering and the
 | 
			
		||||
      command glEnable(GL_DITHER) will be ignored.
 | 
			
		||||
</ol>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,64 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Gallium Post-processing</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Gallium Post-processing</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The Gallium drivers support user-defined image post-processing.
 | 
			
		||||
At the end of drawing a frame a post-processing filter can be applied to
 | 
			
		||||
the rendered image.
 | 
			
		||||
Example filters include morphological antialiasing and cell shading.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The filters can be toggled per-app via driconf, or per-session via the
 | 
			
		||||
corresponding environment variables.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Multiple filters can be used together.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>PP environment variables</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>PP_DEBUG - If defined debug information will be printed to stderr.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Current filters</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>pp_nored, pp_nogreen, pp_noblue - set to 1 to remove the corresponding color channel.
 | 
			
		||||
These are basic filters for easy testing of the PP queue.
 | 
			
		||||
<li>pp_jimenezmlaa, pp_jimenezmlaa_color -
 | 
			
		||||
<a href="http://www.iryokufx.com/mlaa/" target=_blank>Jimenez's MLAA</a>
 | 
			
		||||
is a morphological antialiasing filter.
 | 
			
		||||
The two versions use depth and color data, respectively.
 | 
			
		||||
Which works better depends on the app - depth will not blur text, but it will
 | 
			
		||||
miss transparent textures for example.
 | 
			
		||||
Set to a number from 2 to 32, roughly corresponding to quality.
 | 
			
		||||
Numbers higher than 8 see minimizing gains.
 | 
			
		||||
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<br>
 | 
			
		||||
<br>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,29 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Precompiled libraries</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Precompiled Libraries</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
In general, precompiled Mesa libraries are not available.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
However, some Linux distros (such as Ubuntu) seem to closely track
 | 
			
		||||
Mesa and often have the latest Mesa release available as an update.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,146 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Release Notes</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
The release notes summarize what's new or changed in each Mesa release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.2.html">10.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.1.html">10.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.4.html">10.0.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.3.html">10.0.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.2.html">10.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.1.html">10.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/10.0.html">10.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.5.html">9.2.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.4.html">9.2.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.3.html">9.2.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.2.html">9.2.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.1.html">9.2.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.2.html">9.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.7.html">9.1.7 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.6.html">9.1.6 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.5.html">9.1.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.4.html">9.1.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.3.html">9.1.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.2.html">9.1.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.1.html">9.1.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.1.html">9.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.0.3.html">9.0.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.0.2.html">9.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.0.1.html">9.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/9.0.html">9.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.5.html">8.0.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.4.html">8.0.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.3.html">8.0.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.2.html">8.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.1.html">8.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/8.0.html">8.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.11.2.html">7.11.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.11.1.html">7.11.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.11.html">7.11 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.10.3.html">7.10.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.10.2.html">7.10.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.10.1.html">7.10.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.10.html">7.10 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.9.2.html">7.9.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.9.1.html">7.9.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.9.html">7.9 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.8.3.html">7.8.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.8.2.html">7.8.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.8.1.html">7.8.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.8.html">7.8 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.7.1.html">7.7.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.7.html">7.7 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.6.1.html">7.6.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.6.html">7.6 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.5.2.html">7.5.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.5.1.html">7.5.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.5.html">7.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.4.4.html">7.4.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.4.3.html">7.4.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.4.2.html">7.4.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.4.1.html">7.4.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.4.html">7.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.3.html">7.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.2.html">7.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.1.html">7.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.0.4.html">7.0.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.0.3.html">7.0.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.0.2.html">7.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.0.1.html">7.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/7.0.html">7.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.5.3.html">6.5.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.5.2.html">6.5.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.5.1.html">6.5.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.5.html">6.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.4.2.html">6.4.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.4.1.html">6.4.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.4.html">6.4 release notes</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Versions of Mesa prior to 6.4 are summarized in the
 | 
			
		||||
<a href="versions.html">versions file</a> and the following release notes.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li><a href="relnotes/6.3.2">6.3.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.3.1">6.3.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.3">6.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.2.1">6.2.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.2">6.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.1">6.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.0.1">6.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/6.0">6.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/5.1">5.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/5.0.2">5.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/5.0.1">5.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/5.0">5.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/4.1">4.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/4.0.3">4.0.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/4.0.2">4.0.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/4.0.1">4.0.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/4.0">4.0 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.5">3.5 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.4.2">3.4.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.4.1">3.4.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.4">3.4 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.3">3.3 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.2.1">3.2.1 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.2">3.2 release notes</a>
 | 
			
		||||
<li><a href="relnotes/3.1">3.1 release notes</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,150 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0.1 Release Notes / (December 12, 2013)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.1 is a bug fix release which fixes bugs found since the 10.0 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.1 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
0a72ca5b36046a658bf6038326ff32ed  MesaLib-10.0.1.tar.bz2
 | 
			
		||||
01bde35c912e504ba62caf1ef9f7022c  MesaLib-10.0.1.tar.gz
 | 
			
		||||
59a174a11a89e6b1b8ee9c3f7e3c388c  MesaLib-10.0.1.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64323">Bug 64323</a> - Severe misrendering in Left 4 Dead 2</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68838">Bug 68838</a> - GLSL: struct declarations produce a "empty declaration warning" in 9.2</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69155">Bug 69155</a> - [NV50 gallium] [piglit] bin/varying-packing-simple triggers memory corruption/failures</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70250">Bug 70250</a> - weston-terminal rendering corrupted with output transform 90 and 270</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70601">Bug 70601</a> - [SNB Bisected]Piglit spec/ARB_texture_float/multisample-formats 2 GL_ARB_texture_float fails</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72230">Bug 72230</a> - Unable to extract MesaLib-10.0.0.tar.{gz,bz2} with bsdtar</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72325">Bug 72325</a> - [swrast] piglit glean fbo regression</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72327">Bug 72327</a> - [swrast] piglit glean pointSprite regression</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>The full set of changes can be viewed by using the following git command:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  git log mesa-10.0..mesa-10.0.1
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>Axel Davy (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>egl/wayland: Flush the wl_display at the end of SwapBuffers</li>
 | 
			
		||||
  <li>Enable throttling in SwapBuffers</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chad Versace (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs</li>
 | 
			
		||||
  <li>i965: Add extra-alignment for non-msrt fast color clear for all hw (v2)</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Dave Airlie (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>swrast: fix readback regression since inversion fix</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>automake: include only one copy VERSION in tarball</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add 10.0 release md5sums</li>
 | 
			
		||||
  <li>Remove a057b83 from the pick list</li>
 | 
			
		||||
  <li>glsl: Don't emit empty declaration warning for a struct specifier</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: don't leak performance monitors on context destroy</li>
 | 
			
		||||
  <li>nv50: Fix GPU_READING/WRITING bit removal</li>
 | 
			
		||||
  <li>nouveau: avoid leaking fences while waiting</li>
 | 
			
		||||
  <li>nv50: wait on the buf's fence before sticking it into pushbuf</li>
 | 
			
		||||
  <li>nv50: enable h264 and mpeg4 for nv98+ (vp3, vp4.0)</li>
 | 
			
		||||
  <li>nouveau/video: update h264 picparm field names based on usage</li>
 | 
			
		||||
  <li>nouveau/video: update a few more h264 picparm field names</li>
 | 
			
		||||
  <li>nv50: report 15 max inputs for fragment programs</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jordan Justen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>dri megadriver_stub: add compatibility for older DRI loaders</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kristian Høgsberg (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers</li>
 | 
			
		||||
  <li>egl/wayland: Send commit after flushing the driver context</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Maarten Lankhorst (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nouveau: Fix compiler warning regression</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Berry (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/gen6: Fix multisample resolve blits for luminance/intensity 32F formats.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Hellstrom (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/xa: Bump major version number to 2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r300/compiler/tests: Fix segfault</li>
 | 
			
		||||
  <li>r300/compiler/tests: Fix line length check in test parser</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,161 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0.2 Release Notes / (January 9, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.2 is a bug fix release which fixes bugs found since the 10.0.1 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.2 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
de7d14baf0101b697c140d2f47ef27e9  MesaLib-10.0.2.tar.gz
 | 
			
		||||
8544c0ab3e438a08b5103421ea15b6d2  MesaLib-10.0.2.tar.bz2
 | 
			
		||||
181b0d6c1afca38e98a930d0e564ed90  MesaLib-10.0.2.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70740">Bug 70740</a> - HiZ on SNB causes GPU hang with WebGL web app</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72026">Bug 72026</a> - SIGSEGV in fs_visitor::visit(ir_dereference_variable*)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72264">Bug 72264</a> - GLSL error reporting</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72369">Bug 72369</a> - glitches in serious sam 3 with the sb shader backend</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>The full set of changes can be viewed by using the following git command:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  git log mesa-10.0.1..mesa-10.0.2
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>Aaron Watry (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>clover: Remove unused variable</li>
 | 
			
		||||
  <li>pipe_loader/sw: close dev->lib when initialization fails</li>
 | 
			
		||||
  <li>radeon/compute: Stop leaking LLVMContexts in radeon_llvm_parse_bitcode</li>
 | 
			
		||||
  <li>r600/compute: Free compiled kernels when deleting compute state</li>
 | 
			
		||||
  <li>r600/compute: Use the correct FREE macro when deleting compute state</li>
 | 
			
		||||
  <li>radeon/llvm: Free target data at end of optimization</li>
 | 
			
		||||
  <li>st/vdpau: Destroy context when initialization fails</li>
 | 
			
		||||
  <li>r600/pipe: Stop leaking context->start_compute_cs_cmd.buf on EG/CM</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Alex Deucher (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g: fix SUMO2 pci id</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Alexander von Gluck IV (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>Haiku: Add in public GL kit headers</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix error code generation in glBeginConditionalRender()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add md5sums for the 10.0.1 release.</li>
 | 
			
		||||
  <li>Update version to 10.0.2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chad Versace (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/gen6: Fix HiZ hang in WebGL Google Maps</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Erik Faye-Lund (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glcpp: error on multiple #else/#elif directives</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Henri Verbeet (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i915: Add support for gl_FragData[0] reads.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50: fix a small leak on context destroy</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jonathan Liu (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: use pipe_sampler_view_release()</li>
 | 
			
		||||
  <li>llvmpipe: use pipe_sampler_view_release() to avoid segfault</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet creation.</li>
 | 
			
		||||
  <li>Revert "mesa: Remove GLXContextID typedef from glx.h."</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kevin Rogovin (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>Use line number information from entire function expression</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kristian Høgsberg (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>dri_util: Don't assume __DRIcontext->driverPrivate is a gl_context</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix interpretation of glClearBuffer(drawbuffer)</li>
 | 
			
		||||
  <li>st/mesa: fix glClear with multiple colorbuffers and different formats</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Berry (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Teach ir_variable_refcount about ir_loop::counter variables.</li>
 | 
			
		||||
  <li>glsl: Fix inconsistent assumptions about ir_loop::counter.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Vadim Girlin (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g/sb: fix stack size computation on evergreen</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,206 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0.3 Release Notes / (February 3, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.3 is a bug fix release which fixes bugs found since the 10.0.2 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.3 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
5f9f463ef08129f6762106b434910adb  MesaLib-10.0.3.tar.bz2
 | 
			
		||||
fb3997b6500e153bc32370cb3fc4ca9e  MesaLib-10.0.3.tar.gz
 | 
			
		||||
a07b4b6b9eb449b88a6cb5061e51c331  MesaLib-10.0.3.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72708">Bug 72708</a> - Master fails to build with older gcc due to -msse4.1</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72926">Bug 72926</a> - [REGRESSION,swrast] Memory-related crash with anti-aliasing enabled</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73096">Bug 73096</a> - Query GL_RGBA_SIGNED_COMPONENTS_EXT missing</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73100">Bug 73100</a> - Please use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73418">Bug 73418</a> - OpenCL hangs graphics on CAYMAN</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73473">Bug 73473</a> - Potential crash bug in src/gallium/auxiliary/rtasm/rtasm_execmem.c</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73915">Bug 73915</a> - sample shading + centroid broken since f5cfb4a</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73956">Bug 73956</a> - SIGSEGV when passing GL_NONE to glReadBuffer</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74026">Bug 74026</a> - Compiler rejects chained assignments involving array dereferences</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>The full set of changes can be viewed by using the following git command:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  git log mesa-10.0.2..mesa-10.0.3
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>Aaron Watry (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup</li>
 | 
			
		||||
  <li>st/dri: prevent leak of dri option default values</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Andreas Fänger (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>swrast: fix delayed texel buffer allocation regression for OpenMP</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Disable ARB_texture_rectangle in shader version 100.</li>
 | 
			
		||||
  <li>i965: Use sample barycentric coordinates with per sample shading</li>
 | 
			
		||||
  <li>i965: Ignore 'centroid' interpolation qualifier in case of persample shading</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: implement missing glGet(GL_RGBA_SIGNED_COMPONENTS_EXT) query</li>
 | 
			
		||||
  <li>st/mesa: fix glReadBuffer(GL_NONE) segfault</li>
 | 
			
		||||
  <li>draw: fix incorrect vertex size computation in LLVM drawing code</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>Add md5sums for 10.0.2. release.</li>
 | 
			
		||||
  <li>cherry-ignore: Ignore several patches not yet ready for the stable branch</li>
 | 
			
		||||
  <li>Drop another couple of patches.</li>
 | 
			
		||||
  <li>cherry-ignore: Ignore 4 patches at teh request of the author, (Anuj).</li>
 | 
			
		||||
  <li>Update version to 10.0.3</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chad Versace (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/gen6/blorp: Emit more flushes to workaround hangs</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chris Forbes (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: fold offset into coord for textureOffset(gsampler2DRect)</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
 | 
			
		||||
  <li>st/mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
 | 
			
		||||
  <li>nv50: access only the available amount of textures</li>
 | 
			
		||||
  <li>nv50: access only the available amount of constbuf</li>
 | 
			
		||||
  <li>gallium/rtasm: handle mmap failures appropriately</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix handling of MESA_pack_invert in blit (PBO) readpixels.</li>
 | 
			
		||||
  <li>i965: Don't do the temporary-and-blit-copy for INVALIDATE_RANGE maps.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Add COMPRESSED_RGBA_S3TC_DXT1_EXT to COMPRESSED_TEXTURE_FORMATS for GLES</li>
 | 
			
		||||
  <li>radeon / r200: Pass the API into _mesa_initialize_context</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix GL_COLOR_SUM enum for drivers without ARB_vertex_program</li>
 | 
			
		||||
  <li>st/vdpau: don't return a device if the screen doesn't support NPOT</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Use IROUND instead of roundf.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Rename "expr" to "lhs_expr" in vector_extract munging code.</li>
 | 
			
		||||
  <li>glsl: Fix chained assignments of vector channels.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Lauri Kasanen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix build to properly check for supported compiler flags</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: use sRGB formats for MSAA resolving if destination is sRGB</li>
 | 
			
		||||
  <li>gallium/util: util_format_srgb should not return FORMAT_NONE for sRGB formats</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glcpp: Define GL_EXT_shader_integer_mix in both GL and ES.</li>
 | 
			
		||||
  <li>glx: Update glxext.h to revision 24777.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michał Górny (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>Use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Berry (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Ensure that all necessary state is re-emitted if we run out of aperture.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Seidler (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>build: move ARCH_LIBS definition outside of ASM definition</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Sondergaard (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Preliminary support for MSVC_VERSION=12.0</li>
 | 
			
		||||
  <li>mesa: Fix compile error with MSVC 2013</li>
 | 
			
		||||
  <li>mesa: Work around internal compiler error</li>
 | 
			
		||||
  <li>mesa: Namespace qualify fma to override ambiguity with fma from math.h</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g/compute: Emit DEALLOC_STATE on cayman after dispatching a compute shader.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,191 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0.4 Release Notes / (March 12, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.4 is a bug fix release which fixes bugs found since the 10.0.3 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.4 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
5a3c5b90776ec8a9fcd777c99e0607e2  MesaLib-10.0.4.tar.gz
 | 
			
		||||
8b148869d2620b0720c8a8d2b7eb3e38  MesaLib-10.0.4.tar.bz2
 | 
			
		||||
da2418d25bfbc273660af7e755fb367e  MesaLib-10.0.4.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71870">Bug 71870</a> - Metro: Last Light rendering issues</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72895">Bug 72895</a> - Missing trees in flightgear 2.12.1 with mesa 10.0.1</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74251">Bug 74251</a> - Segfault in st_finalize_texture with Texture Buffer</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74723">Bug 74723</a> - main/shaderapi.c:407: detach_shader: Assertion `shProg->Shaders[j]->Type == 0x8B31 || shProg->Shaders[j]->Type == 0x8B30' failed.</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>The full set of changes can be viewed by using the following git command:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  git log mesa-10.0.3..mesa-10.0.4
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Generate correct error code in glDrawBuffers()</li>
 | 
			
		||||
  <li>mesa: Add GL_TEXTURE_CUBE_MAP_ARRAY to legal_get_tex_level_parameter_target()</li>
 | 
			
		||||
  <li>glsl: Fix condition to generate shader link error</li>
 | 
			
		||||
  <li>i965: Fix the region's pitch condition to use blitter</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r200: move driContextSetFlags(ctx) call after ctx var is initialized</li>
 | 
			
		||||
  <li>radeon: move driContextSetFlags(ctx) call after ctx var is initialized</li>
 | 
			
		||||
  <li>gallium/auxiliary/indices: replace free() with FREE()</li>
 | 
			
		||||
  <li>draw: fix incorrect color of flat-shaded clipped lines</li>
 | 
			
		||||
  <li>st/mesa: avoid sw fallback for getting/decompressing textures</li>
 | 
			
		||||
  <li>mesa: update assertion in detach_shader() for geom shaders</li>
 | 
			
		||||
  <li>mesa: do depth/stencil format conversion in glGetTexImage</li>
 | 
			
		||||
  <li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add md5sums for 10.0.3 release</li>
 | 
			
		||||
  <li>main: Avoid double-free of shader Label</li>
 | 
			
		||||
  <li>get-pick-list: Update to only find patches nominated for the 10.0 branch</li>
 | 
			
		||||
  <li>Update version to 10.0.4</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chris Forbes (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Validate (and resolve) all the bound textures.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Christian König (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon/uvd: fix feedback buffer handling v2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Daniel Kurtz (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Add locking to builtin_builder singleton</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>dri/nouveau: Pass the API into _mesa_initialize_context</li>
 | 
			
		||||
  <li>nv50: correctly calculate the number of vertical blocks during transfer map</li>
 | 
			
		||||
  <li>dri/i9*5: correctly calculate the amount of system memory</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Fredrik Höglund (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Preserve the NewArrays state when copying a VAO</li>
 | 
			
		||||
  <li>glx: Fix the default values for GLXFBConfig attributes</li>
 | 
			
		||||
  <li>glx: Fix the GLXFBConfig attrib sort priorities</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Hans (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>util: don't define isfinite(), isnan() for MSVC >= 1800</li>
 | 
			
		||||
  <li>mesa: don't define c99 math functions for MSVC >= 1800</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (6):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>meta: Release resources used by decompress_texture_image</li>
 | 
			
		||||
  <li>meta: Release resources used by _mesa_meta_DrawPixels</li>
 | 
			
		||||
  <li>meta: Fallback to software for GetTexImage of compressed GL_TEXTURE_CUBE_MAP_ARRAY</li>
 | 
			
		||||
  <li>meta: Consistenly use non-Apple VAO functions</li>
 | 
			
		||||
  <li>glcpp: Only warn for macro names containing __</li>
 | 
			
		||||
  <li>glsl: Only warn for macro names containing __</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv30: report 8 maximum inputs</li>
 | 
			
		||||
  <li>nouveau/video: make sure that firmware is present when checking caps</li>
 | 
			
		||||
  <li>nouveau: fix chipset checks for nv1a by using the oclass instead</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Julien Cristau (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glx/dri2: fix build failure on HURD</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Don't lose precision qualifiers when encountering "centroid".</li>
 | 
			
		||||
  <li>i965: Create a hardware context before initializing state module.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kusanagi Kouichi (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>targets/vdpau: Always use c++ to link</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: fix crash when a shader uses a TBO and it's not bound</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Initialize ubo_binding_mask flags to zero.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Berry (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Make condition_to_hir() callable from outside ast_iteration_statement.</li>
 | 
			
		||||
  <li>glsl: Fix continue statements in do-while loops.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g/compute: PIPE_CAP_COMPUTE should be false for pre-evergreen GPUs</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Topi Pohjolainen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/blorp: do not use unnecessary hw-blending support</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,173 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0.5 Release Notes / April 18, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.5 is a bug fix release which fixes bugs found since the 10.0.4 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0.5 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
db606aadd0fe321f3664099677d159bc  MesaLib-10.0.5.tar.gz
 | 
			
		||||
e6009ccd8898d7104bb325b6af9ec354  MesaLib-10.0.5.tar.bz2
 | 
			
		||||
c8ab9e502542bf32299a4df85b0b704d  MesaLib-10.0.5.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=58660">Bug 58660</a> - CAYMAN broken with HyperZ on</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64471">Bug 64471</a> - Radeon HD6570 lockup in Brütal Legend with HyperZ</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66352">Bug 66352</a> - GPU lockup in L4D2 on TURKS with HyperZ</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68799">Bug 68799</a> - [APITRACE] Hyper-Z lockup with Falcon BMS 4.32u6 on CAYMAN</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71547">Bug 71547</a> - compilation failure :#error "SSE4.1 instruction set not enabled"</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72685">Bug 72685</a> - [radeonsi hyperz] Artifacts in Unigine Sanctuary</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73088">Bug 73088</a> - [HyperZ] Juniper (6770): Gone Home / Unigine Heaven 4.0 lock up system after several minutes of use</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74428">Bug 74428</a> - hyperz causes gpu hang in Counter-strike: Source</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74803">Bug 74803</a> - [r600g] HyperZ broken on RV630 (Cogs shadows are broken)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74863">Bug 74863</a> - [r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees corruption) bisected!</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74892">Bug 74892</a> - HyperZ GPU lockup with radeonsi 7970M PITCAIRN and Distance Alpha game</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74988">Bug 74988</a> - Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark 3.0 Manhattan</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75279">Bug 75279</a> - XCloseDisplay() takes one minute around nouveau_dri.so, freezing Firefox startup</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77102">Bug 77102</a> - gallium nouveau has no profile in vdpau and libva</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77207">Bug 77207</a> - [ivb/hsw] batch overwritten with garbage</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>The full set of changes can be viewed by using the following git command:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
  git log mesa-10.0.4..mesa-10.0.5
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<p>Alex Deucher (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon: reverse DBG_NO_HYPERZ logic</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (9):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: add unpacking code for MESA_FORMAT_Z32_FLOAT_S8X24_UINT</li>
 | 
			
		||||
  <li>mesa: fix copy & paste bugs in pack_ubyte_SARGB8()</li>
 | 
			
		||||
  <li>mesa: fix copy & paste bugs in pack_ubyte_SRGB8()</li>
 | 
			
		||||
  <li>mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up</li>
 | 
			
		||||
  <li>st/mesa: add null pointer checking in query object functions</li>
 | 
			
		||||
  <li>mesa: fix glMultiDrawArrays inside a display list</li>
 | 
			
		||||
  <li>cso: fix sampler view count in cso_set_sampler_views()</li>
 | 
			
		||||
  <li>svga: replace sampler assertion with conditional</li>
 | 
			
		||||
  <li>svga: move LIST_INITHEAD(dirty_buffers) earlier in svga_context_create()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add md5sums for the 10.0.4 release.</li>
 | 
			
		||||
  <li>Ignore patches which don't apply.</li>
 | 
			
		||||
  <li>Update version to 10.0.5</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Christian König (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: recreate sampler view on context change v3</li>
 | 
			
		||||
  <li>st/mesa: fix sampler view handling with shared textures v4</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Courtney Goeltzenleuchter (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: add bounds checking to eliminate buffer overrun</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li>
 | 
			
		||||
  <li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (6):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nouveau: fix fence waiting logic in screen destroy</li>
 | 
			
		||||
  <li>nv50: adjust blit_3d handling of ms output textures</li>
 | 
			
		||||
  <li>mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture</li>
 | 
			
		||||
  <li>nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list</li>
 | 
			
		||||
  <li>nouveau: there may not have been a texture if the fbo was incomplete</li>
 | 
			
		||||
  <li>nouveau: fix firmware check on nvd7/nvd9</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Johannes Nixdorf (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure.ac: fix the detection of expat with pkg-config</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jonathan Gray (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallium: add endian detection for OpenBSD</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Paul Berry (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/gen7: Prefer vertical alignment of 4 when possible.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,146 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.0 Release Notes / (November 30th, 2013)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0 is a new development release.
 | 
			
		||||
People who are concerned with stability and reliability should stick
 | 
			
		||||
with a previous release or wait for Mesa 10.0.1.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.0 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
b38626b96c664db67a534d7859682436  MesaLib-10.0.0.tar.gz
 | 
			
		||||
f3fe55d9735bea158bbe97ed9a0da819  MesaLib-10.0.0.tar.bz2
 | 
			
		||||
c6ee1ce51e3bf35947d2978b872daf51  MesaLib-10.0.0.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Note: some of the new features are only available with certain drivers.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_AMD_seamless_cubemap_per_texture on i965.</li>
 | 
			
		||||
<li>GL_ARB_conservative_depth on i965.</li>
 | 
			
		||||
<li>GL_ARB_texture_gather on i965.</li>
 | 
			
		||||
<li>GL_ARB_texture_query_levels on i965.</li>
 | 
			
		||||
<li>GL_ARB_texture_mirror_clamp_to_edge.</li>
 | 
			
		||||
<li>GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, and GL_ARB_transform_feedback_instanced on i965/Gen7 (with appropriate kernel support).</li>
 | 
			
		||||
<li>GL_ARB_sample_shading on i965.</li>
 | 
			
		||||
<li>GL_ARB_shader_atomic_counters on i965.</li>
 | 
			
		||||
<li>GL_ARB_vertex_attrib_binding</li>
 | 
			
		||||
<li>GL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g</li>
 | 
			
		||||
<li>GL_KHR_debug</li>
 | 
			
		||||
<li>GLX_MESA_query_renderer</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Attempts have been made to <b>not</b> include bugs fixed in previous 9.2
 | 
			
		||||
releases or bugs that were regressions during 10.0 development. This list is
 | 
			
		||||
likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=47755">Bug 47755</a> - [glsl-compiler] no error checking when Interpolation qualifier for built-in variable is different in vertex and fragment shader</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=52171">Bug 52171</a> - [gallium/r600/clover] Simple benchmarks failed to run</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=53077">Bug 53077</a> - [IVB] Output error with msaa when both of framebuffer and source color's alpha are not 1</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54867">Bug 54867</a> - bug in r300 compiler</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60929">Bug 60929</a> - [r600-llvm] mono games with opengl are blocking on start</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62142">Bug 62142</a> - Mesa/demo mipmap_limits upside down with running by SOFTWARE</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62698">Bug 62698</a> - [bisected] WebGL demo "Consumed": texstate.c:628: update_texture_state: Assertion „__builtin_popcount(enabledTargets) == 1“ failed.</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64225">Bug 64225</a> - bfgminer --scyte generates Segmentation Fault on Northern Island</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64226">Bug 64226</a> - python-opencl package generate segmentation fault at pipe_r600.so</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64261">Bug 64261</a> - [SNB Bisected]Ogles3conform GL3Tests_color_buffer_float_color_buffer_float_clamp_fixed.test fail</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66213">Bug 66213</a> - Certain Mesa Demos Rendering Inverted (vertically)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66806">Bug 66806</a> - [softpipe] glxgears floating point exception</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67921">Bug 67921</a> - [bisected commit 883987] crosscompiling fails with util/u_cpu_detect.c:247:4: error: 'asm' undeclared (first use in this function)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68162">Bug 68162</a> - [radeonsi] texture rendering is broken in Source-Engine games</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68451">Bug 68451</a> - Texture flicker in native Dota2 in mesa 9.2.0rc1</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68503">Bug 68503</a> - Graphical glitches in Serious Sam 3 when SB is enabled</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68792">Bug 68792</a> - Problems during playback of h264 files using UVD and VLC on AMD E-350 CPU</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68845">Bug 68845</a> - VDPAU/UVD regression</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69078">Bug 69078</a> - Modern Warfare (1, 2 and 3) broken in Wine on SNB</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69321">Bug 69321</a> - starting openCL crashes/boots system</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70042">Bug 70042</a> - Major texture flickering in Dota 2 (r600g on HD 6950)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70088">Bug 70088</a> - Glamor on r600g crashes Xserver</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70123">Bug 70123</a> - Freeze caused by 'winsys/radeon: remove cs_queue_empty' commit</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70327">Bug 70327</a> - Casting floating point variable to integer not working properly while constant gets converted properly</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70891">Bug 70891</a> - CL_INVALID_BUILD_OPTIONS results in CL_INVALID_DEVICE when asking for build log</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70913">Bug 70913</a> - [PIGLIT,radeonsi] crash in "spec/EXT_framebuffer_multisample/sample-alpha-to-coverage 4 depth" (buffer overflow)</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71022">Bug 71022</a> - configure: error: Expat required for DRI.</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71110">Bug 71110</a> - xorg_driver.c:1030:2: error: too many arguments to function ‘DamageUnregister’</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71172">Bug 71172</a> - Segfault when running glxinfo. NV25GL [Quadro4 900 XGL]</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71512">Bug 71512</a> - dlopen.h:54: undefined reference to `dlopen'</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71870">Bug 71870</a> - Metro: Last Light rendering issues</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Removed X.Org state tracker (unmaintained and broken)</li>
 | 
			
		||||
<li>Removed the video-accel r300 targets</li>
 | 
			
		||||
<li>Removed the video-accel softpipe targets</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,254 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.1 Release Notes / April 18, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.1 is a bug fix release which fixes bugs found since the 10.1 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.1 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
96e63674ccfa98e7ec6eb4fee3f770c3  MesaLib-10.1.1.tar.gz
 | 
			
		||||
1fde7ed079df7aeb9b6a744ca033de8d  MesaLib-10.1.1.tar.bz2
 | 
			
		||||
e64d0a562638664b13d2edf22321df59  MesaLib-10.1.1.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71547">Bug 71547</a> - compilation failure :#error "SSE4.1 instruction set not enabled"</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74868">Bug 74868</a> - r600g: Diablo III Crashes After a few minutes</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74988">Bug 74988</a> - Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark 3.0 Manhattan</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75279">Bug 75279</a> - XCloseDisplay() takes one minute around nouveau_dri.so, freezing Firefox startup</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75543">Bug 75543</a> - OSMesa Gallium OSMesaMakeCurrent</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75660">Bug 75660</a> - u_inlines.h:277:pipe_buffer_map_range: Assertion `length' failed.</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76323">Bug 76323</a> - GLSL compiler ignores layout(binding=N) on uniform blocks</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76377">Bug 76377</a> - DRI3 should only be enabled on Linux due to a udev dependency</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76749">Bug 76749</a> - [HSW] DOTA world lighting has no effect</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77102">Bug 77102</a> - gallium nouveau has no profile in vdpau and libva</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77207">Bug 77207</a> - [ivb/hsw] batch overwritten with garbage</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Aaron Watry (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallium/util: Fix memory leak</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Alexander von Gluck IV (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>haiku: Fix build through scons corrections and viewport fixes</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Set initial internal format of a texture to GL_RGBA</li>
 | 
			
		||||
  <li>mesa: Allow GL_DEPTH_COMPONENT and GL_DEPTH_STENCIL combinations in glTexImage{123}D()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (12):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li>
 | 
			
		||||
  <li>mesa: don't call ctx->Driver.ClearBufferSubData() if size==0</li>
 | 
			
		||||
  <li>st/osmesa: check buffer size when searching for buffers</li>
 | 
			
		||||
  <li>mesa: fix copy & paste bugs in pack_ubyte_SARGB8()</li>
 | 
			
		||||
  <li>mesa: fix copy & paste bugs in pack_ubyte_SRGB8()</li>
 | 
			
		||||
  <li>c11/threads: don't include assert.h if the assert macro is already defined</li>
 | 
			
		||||
  <li>mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up</li>
 | 
			
		||||
  <li>st/mesa: add null pointer checking in query object functions</li>
 | 
			
		||||
  <li>mesa: fix glMultiDrawArrays inside a display list</li>
 | 
			
		||||
  <li>cso: fix sampler view count in cso_set_sampler_views()</li>
 | 
			
		||||
  <li>svga: replace sampler assertion with conditional</li>
 | 
			
		||||
  <li>svga: move LIST_INITHEAD(dirty_buffers) earlier in svga_context_create()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>cherry-ignore: Ignore a few patches</li>
 | 
			
		||||
  <li>glsl: Allow explicit binding on atomics again</li>
 | 
			
		||||
  <li>Update VERSION to 10.1.1</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chia-I Wu (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/vec4: fix record clearing in copy propagation</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Christian König (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: recreate sampler view on context change v3</li>
 | 
			
		||||
  <li>st/mesa: fix sampler view handling with shared textures v4</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Courtney Goeltzenleuchter (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: add bounds checking to eliminate buffer overrun</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50: add missing brackets when handling the samplers array</li>
 | 
			
		||||
  <li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li>
 | 
			
		||||
  <li>configure: enable dri3 only for linux</li>
 | 
			
		||||
  <li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li>
 | 
			
		||||
  <li>configure: cleanup libudev handling</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Hans (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>util: don't define isfinite(), isnan() for MSVC >= 1800</li>
 | 
			
		||||
  <li>mesa: don't define c99 math functions for MSVC >= 1800</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (7):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>linker: Split set_uniform_binding into separate functions for blocks and samplers</li>
 | 
			
		||||
  <li>linker: Various trivial clean-ups in set_sampler_binding</li>
 | 
			
		||||
  <li>linker: Fold set_uniform_binding into call site</li>
 | 
			
		||||
  <li>linker: Clean up "unused parameter" warnings</li>
 | 
			
		||||
  <li>linker: Set block bindings based on UniformBlocks rather than UniformStorage</li>
 | 
			
		||||
  <li>linker: Set binding for all elements of UBO array</li>
 | 
			
		||||
  <li>glsl: Propagate explicit binding information from the AST all the way to the linker</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nouveau: fix fence waiting logic in screen destroy</li>
 | 
			
		||||
  <li>nv50: adjust blit_3d handling of ms output textures</li>
 | 
			
		||||
  <li>loader: add special logic to distinguish nouveau from nouveau_vieux</li>
 | 
			
		||||
  <li>mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture</li>
 | 
			
		||||
  <li>nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list</li>
 | 
			
		||||
  <li>nouveau: there may not have been a texture if the fbo was incomplete</li>
 | 
			
		||||
  <li>nvc0/ir: move sample id to second source arg to fix sampler2DMS</li>
 | 
			
		||||
  <li>nouveau: fix firmware check on nvd7/nvd9</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Johannes Nixdorf (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure.ac: fix the detection of expat with pkg-config</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jonathan Gray (7):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallium: add endian detection for OpenBSD</li>
 | 
			
		||||
  <li>loader: use 0 instead of FALSE which isn't defined</li>
 | 
			
		||||
  <li>loader: don't limit the non-udev path to only android</li>
 | 
			
		||||
  <li>megadriver_stub.c: don't use _GNU_SOURCE to gate the compat code</li>
 | 
			
		||||
  <li>egl/dri2: don't require libudev to build drm/wayland platforms</li>
 | 
			
		||||
  <li>egl/dri2: use drm macros to construct device name</li>
 | 
			
		||||
  <li>configure: don't require libudev for gbm or egl drm/wayland</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>c11/threads: Fix nano to milisecond conversion.</li>
 | 
			
		||||
  <li>mapi/u_thread: Use GetCurrentThreadId</li>
 | 
			
		||||
  <li>c11/threads: Don't implement thrd_current on Windows.</li>
 | 
			
		||||
  <li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/fs: Fix register comparisons in saturate propagation.</li>
 | 
			
		||||
  <li>glsl: Fix lack of i2u in lower_ubo_reference.</li>
 | 
			
		||||
  <li>i965: Stop advertising GL_MESA_ycbcr_texture.</li>
 | 
			
		||||
  <li>glsl: Try vectorizing when seeing a repeated assignment to a channel.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (13):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g: fix texelFetchOffset GLSL functions</li>
 | 
			
		||||
  <li>r600g: fix blitting the last 2 mipmap levels for Evergreen</li>
 | 
			
		||||
  <li>mesa: fix the format of glEdgeFlagPointer</li>
 | 
			
		||||
  <li>r600g,radeonsi: fix MAX_TEXTURE_3D_LEVELS and MAX_TEXTURE_ARRAY_LAYERS limits</li>
 | 
			
		||||
  <li>st/mesa: fix per-vertex edge flags and GLSL support (v2)</li>
 | 
			
		||||
  <li>mesa: mark GL_RGB9_E5 as not color-renderable</li>
 | 
			
		||||
  <li>mesa: fix texture border handling for cube arrays</li>
 | 
			
		||||
  <li>mesa: allow generating mipmaps for cube arrays</li>
 | 
			
		||||
  <li>mesa: fix software fallback for generating mipmaps for cube arrays</li>
 | 
			
		||||
  <li>mesa: fix software fallback for generating mipmaps for 3D textures</li>
 | 
			
		||||
  <li>st/mesa: fix generating mipmaps for cube arrays</li>
 | 
			
		||||
  <li>st/mesa: drop the lowering of quad strips to triangle strips</li>
 | 
			
		||||
  <li>r600g: implement edge flags</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li>
 | 
			
		||||
  <li>i965/fs: Fix off-by-one in saturate propagation.</li>
 | 
			
		||||
  <li>i965/fs: Don't propagate saturate modifiers into partial writes.</li>
 | 
			
		||||
  <li>i965/fs: Don't propagate saturation modifiers if there are source modifiers.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g: Don't leak bytecode on shader compile failure</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Mike Stroyan (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Avoid dependency hints on math opcodes</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Hellstrom (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>winsys/svga: Replace the query mm buffer pool with a slab pool v3</li>
 | 
			
		||||
  <li>winsys/svga: Update the vmwgfx_drm.h header to latest version from kernel</li>
 | 
			
		||||
  <li>winsys/svga: Fix prime surface references also for guest-backed surfaces</li>
 | 
			
		||||
  <li>st/xa: Bind destination before setting new state</li>
 | 
			
		||||
  <li>st/xa: Make sure unused samplers are set to NULL</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: Use LLVM shared libraries by default</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,179 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.2 Release Notes / (May 5, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.2 is a bug fix release which fixes bugs found since the 10.1.1 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.2 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
37d79f94b1f41852a89d1fc3900bea76  MesaLib-10.1.2.tar.gz
 | 
			
		||||
28b60d15ac9f364da1e0155911eaf44e  MesaLib-10.1.2.tar.bz2
 | 
			
		||||
05300039085a65fc53c5472c4bb5747a  MesaLib-10.1.2.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27499">Bug 27499</a> - [855GM i915] GL_LINE_STIPPLE displays incorrect colors</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75723">Bug 75723</a> - (regression since Linux 3.14?) brw_get_graphics_reset_status: Assertion `brw->hw_ctx != ((void *)0)' failed</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76894">Bug 76894</a> - Piglit/spec/EXT_framebuffer_object/fbo-bind-renderbuffer failed</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77702">Bug 77702</a> - [i965 Bisected]Piglit spec/NV_conditional_render_blitframebuffer fails</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Ander Conselvan de Oliveira (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gbm/dri: Fix out-of-memory error path in dri_device_create()</li>
 | 
			
		||||
  <li>egl: Protect use of gbm_dri with ifdef HAVE_DRM_PLATFORM</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (27):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix glGetVertexAttribi(GL_VERTEX_ATTRIB_ARRAY_SIZE)</li>
 | 
			
		||||
  <li>swrast: Add glBlitFramebuffer to commands affected by conditional rendering</li>
 | 
			
		||||
  <li>mesa: Fix error condition for multisample proxy texture targets</li>
 | 
			
		||||
  <li>i965: Put an assertion to check valid varying_to_slot[varying]</li>
 | 
			
		||||
  <li>i965: Fix component mask and varying_to_slot mapping for gl_Layer</li>
 | 
			
		||||
  <li>i965: Fix component mask and varying_to_slot mapping for gl_ViewportIndex</li>
 | 
			
		||||
  <li>mesa: Add helper function _mesa_is_format_integer()</li>
 | 
			
		||||
  <li>mesa: Add error condition for integer formats in glGetTexImage()</li>
 | 
			
		||||
  <li>mesa: Add an error condition in glGetFramebufferAttachmentParameteriv()</li>
 | 
			
		||||
  <li>mesa: Fix error code generation in glReadPixels()</li>
 | 
			
		||||
  <li>glsl: Allow overlapping locations for vertex input attributes</li>
 | 
			
		||||
  <li>mesa: Fix querying location of nth element of an array variable</li>
 | 
			
		||||
  <li>mesa: Use location VERT_ATTRIB_GENERIC0 for vertex attribute 0</li>
 | 
			
		||||
  <li>glsl: Compile error if fs defines conflicting qualifiers for gl_FragCoord</li>
 | 
			
		||||
  <li>glsl: Compile error if fs uses gl_FragCoord before first redeclaration</li>
 | 
			
		||||
  <li>mesa: Add entry for extension ARB_texture_stencil8</li>
 | 
			
		||||
  <li>mesa: Add error condition for format=STENCIL_INDEX in glGetTexImage()</li>
 | 
			
		||||
  <li>i965: Fix crash in do_blit_readpixels()</li>
 | 
			
		||||
  <li>mesa: Add missing types in _mesa_texstore_xx_xx() functions</li>
 | 
			
		||||
  <li>mesa: Allow srcFormat=GL_DEPTH_STENCIL in _mesa_texstore_xx_xx() functions</li>
 | 
			
		||||
  <li>mesa: Add new helper function _mesa_unpack_depth_stencil_row()</li>
 | 
			
		||||
  <li>mesa: Add support to unpack depth-stencil texture in to FLOAT_32_UNSIGNED_INT_24_8_REV</li>
 | 
			
		||||
  <li>mesa: Allow FLOAT_32_UNSIGNED_INT_24_8_REV in get_tex_depth_stencil()</li>
 | 
			
		||||
  <li>i965: Add glBlitFramebuffer to commands affected by conditional rendering</li>
 | 
			
		||||
  <li>glsl: Use switch to allow adding more shader types</li>
 | 
			
		||||
  <li>glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord</li>
 | 
			
		||||
  <li>glsl: Apply the link error conditions to GL_ARB_fragment_coord_conventions</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Benjamin Bellec (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix GetStringi error message with correct function name</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>swrast: allocate swrast_texture_image::ImageSlices array if needed</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add the MD5 sums for the 10.1.1 release tar files.</li>
 | 
			
		||||
  <li>cherry-ignore: Ignore a patch causing a regression</li>
 | 
			
		||||
  <li>cherry-ignore: Drop an ignored patch now that piglit has been updated.</li>
 | 
			
		||||
  <li>Update VERSION to 10.1.2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Chris Forbes (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: Only allow `invariant` on shader in/out between stages.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix render-to-texture in non-FinishRenderTexture cases.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>dri3: Enable GLX_MESA_query_renderer on DRI3 too</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Don't enable reset notification support on Gen4-5.</li>
 | 
			
		||||
  <li>i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (10):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r300g: don't crash when getting NULL colorbuffers</li>
 | 
			
		||||
  <li>st/mesa: remove trailing NULL colorbuffers</li>
 | 
			
		||||
  <li>r600g: fix edge flags and layered rendering on R600-R700</li>
 | 
			
		||||
  <li>r600g: disable async DMA on R700</li>
 | 
			
		||||
  <li>r600g: fix MSAA resolve on R6xx when the destination is 1D-tiled</li>
 | 
			
		||||
  <li>r600g: fix flushing on RV670, RS780, RS880 again</li>
 | 
			
		||||
  <li>r600g: fix buffer copying on R600-R700</li>
 | 
			
		||||
  <li>r600g: fix for broken CULL_FRONT behavior on R6xx</li>
 | 
			
		||||
  <li>r600g: fix for an MSAA hang on RV770</li>
 | 
			
		||||
  <li>r600g: fix hang on RV740 by using DX_RASTERIZATION_KILL instead of SX_MISC</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>r600g: Disable LLVM by default at runtime for graphics</li>
 | 
			
		||||
  <li>st/mesa: Fix NULL pointer dereference for incomplete framebuffers</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Neil Roberts (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>wayland: Fix the logic in disabling the prime capability</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Samuel Iglesias Gonsalvez (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix check for dummy renderbuffer in _mesa_FramebufferRenderbufferEXT()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Hellstrom (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/xa: Cache render target surface</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>nick (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>swrast: Fix vertex color in _swsetup_Translate()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,90 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.3 Release Notes / (May 9, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.3 is a bug fix release which fixes bugs found since the 10.1.2 release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Note: Mesa 10.1.3 is being released sooner than originally scheduled to make
 | 
			
		||||
available a fix for a performance rgression that was inadvertently introduced
 | 
			
		||||
to Mesa 10.1.2. The performance regression is reported to make vmware
 | 
			
		||||
swapbuffers fall back to software. 
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.3 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
665fe1656aaa2c37b32042068aff92cb  MesaLib-10.1.3.tar.gz
 | 
			
		||||
ba6dbe2b9cab0b4de840c996b9b6a3ad  MesaLib-10.1.3.tar.bz2
 | 
			
		||||
4e6f26330a63d3c47e62ac4bdead39e8  MesaLib-10.1.3.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77245">Bug 77245</a> - Bogus GL_ARB_explicit_attrib_location layout identifier warnings</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add MD5 sums for Mesa 10.1.2</li>
 | 
			
		||||
  <li>get-pick-list.sh: Require explicit "10.1" for nominating stable patches</li>
 | 
			
		||||
  <li>VERSION: Update to 10.1.3</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix MaxNumLayers for 1D array textures.</li>
 | 
			
		||||
  <li>i965: Fix depth (array slices) computation for 1D_ARRAY render targets.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tapani Pälli (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: fix bogus layout qualifier warnings</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Hellstrom (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/xa: Fix performance regression introduced by commit "Cache render target surface"</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,100 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.4 Release Notes / (May 20, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.4 is a bug fix release which fixes bugs found since the 10.1.3 release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.4 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
e934365d77f384bfaec844999440bef8  MesaLib-10.1.4.tar.gz
 | 
			
		||||
6fddee101f49b7409cd29994c34ddee7  MesaLib-10.1.4.tar.bz2
 | 
			
		||||
ba5f48e7d5e373922c804c2651fec6c1  MesaLib-10.1.4.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78225">Bug 78225</a> - Compile error due to undefined reference to `gbm_dri_backend', fix attached</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78537">Bug 78537</a> - no anisotropic filtering in a native Half-Life 2</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix double-freeing of dispatch tables inside glBegin/End.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add MD5 sums for 10.1.3</li>
 | 
			
		||||
  <li>cherry-ignore: Roland and Michel agreed to drop these patches.</li>
 | 
			
		||||
  <li>VERSION: Update to 10.1.4</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: error out if building GBM without dri</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/vs: Use samplers for UBOs in the VS like we do for non-UBO pulls.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: make sure to reverse cond codes on all the OP_SET variants</li>
 | 
			
		||||
  <li>nv50: fix setting of texture ms info to be per-stage</li>
 | 
			
		||||
  <li>nv50/ir: fix integer mul lowering for u32 x u32 -> high u32</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeonsi: Fix anisotropic filtering state setup</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure.ac: Add LLVM_VERSION_PATCH to DEFINES</li>
 | 
			
		||||
  <li>radeonsi: Enable geometry shaders with LLVM 3.4.1</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,105 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.5 Release Notes / (June 6, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.5 is a bug fix release which fixes bugs found since the 10.1.4 release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.5 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
b0aceaa75bc9a9b2d9215a113e2ad488b5cf85c99005a7624f8cf7c37c5d0eaa  MesaLib-10.1.5.tar.gz
 | 
			
		||||
bc6c5ec7836f254a49d055a29d9aa34c97c54c038f47ad3a00fa57a5fef15bbc  MesaLib-10.1.5.tar.bz2
 | 
			
		||||
78b7255cab0af7918945452a84de7989096ebcdd27e99b31c56c0589274cbc77  MesaLib-10.1.5.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79115">Bug 79115</a> - </li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79421">Bug 79421</a> - </li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glsl: fix use-after free bug/crash in ast_declarator_list::hir()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add md5sums for 10.1.4 release</li>
 | 
			
		||||
  <li>Merge remote-tracking branch 'origin/10.1' into 10.1</li>
 | 
			
		||||
  <li>cherry-ignore: Ignore two commits.</li>
 | 
			
		||||
  <li>Ignore a patch that is not needed for the 10.1 branch.</li>
 | 
			
		||||
  <li>Update version to 10.1.5</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glx: do not leak dri3Display</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: fix s32 x s32 -> high s32 multiply logic</li>
 | 
			
		||||
  <li>nv50/ir: fix constant folding for OP_MUL subop HIGH</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>James Legg (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix unbinding GL_DEPTH_STENCIL_ATTACHMENT</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jeremy Huddleston Sequoia (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glapi: Avoid heap corruption in _glapi_table</li>
 | 
			
		||||
  <li>darwin: Fix test for kCGLPFAOpenGLProfile support at runtime</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Pavel Popov (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Properly return *RESET* status in glGetGraphicsResetStatusARB</li>
 | 
			
		||||
  <li>i965: Fix Line Stipple enable bit in 3DSTATE_SF for Haswell.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Roland Scheidegger (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>llvmpipe: fix crash when not all attachments are populated in a fb</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,138 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1.6 Release Notes / (June 24, 2014)</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.6 is a bug fix release which fixes bugs found since the 10.1.5 release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1.6 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
cde60e06b340d7598802fe4a4484b3fb8befd714f9ab9caabe1f27d3149e8815  MesaLib-10.1.6.tar.bz2
 | 
			
		||||
e4e726d7805a442f7ed07d12f71335e6126796ec85328a5989eb5348a8042d00  MesaLib-10.1.6.tar.gz
 | 
			
		||||
bf7e3f721a7ad0c2057a034834b6fea688e64f26a66cf8d1caa2827e405e72dd  MesaLib-10.1.6.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - </li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Adrian Negreanu (7):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>add megadriver_stub_FILES</li>
 | 
			
		||||
  <li>android: adapt to the megadriver mechanism</li>
 | 
			
		||||
  <li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
 | 
			
		||||
  <li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
 | 
			
		||||
  <li>android, egl: add correct drm include for libmesa_egl_dri2</li>
 | 
			
		||||
  <li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
 | 
			
		||||
  <li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Beren Minor (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>egl/main: Fix eglMakeCurrent when releasing context from current thread.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add SHA256 checksums for the 10.1.5 release</li>
 | 
			
		||||
  <li>cherry-ignore: Add a patch to ignore</li>
 | 
			
		||||
  <li>Update VERSION to 10.1.6</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Daniel Manjarres (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: error out when building opencl without LLVM</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Iago Toral Quiroga (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa/main: Make get_hash.c values constant.</li>
 | 
			
		||||
  <li>mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA.</li>
 | 
			
		||||
  <li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kristian Høgsberg (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Remove glClear optimization based on drawable size</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Neil Roberts (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Set the fast clear color value for texture surfaces</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Roland Scheidegger (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>draw: (trivial) fix clamping of viewport index</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tobias Klausmann (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: clear subop when folding constant expressions</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
 | 
			
		||||
  <li>clover: Don't use llvm's global context</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,75 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.1 Release Notes / March 4, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1 is a new development release.
 | 
			
		||||
People who are concerned with stability and reliability should stick
 | 
			
		||||
with a previous release or wait for Mesa 10.1.1.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.1 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
3ec43f79dbcd9aa2a4a27bf1f51655b6  MesaLib-10.1.0.tar.bz2
 | 
			
		||||
08e796ec7122aa299d32d4f67a254315  MesaLib-10.1.0.tar.gz
 | 
			
		||||
bd365356543f4b38e57c1ddf7a317c40  MesaLib-10.1.0.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Note: some of the new features are only available with certain drivers.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_ARB_draw_indirect on i965.</li>
 | 
			
		||||
<li>GL_ARB_clear_buffer_object</li>
 | 
			
		||||
<li>GL_ARB_viewport_array on i965.</li>
 | 
			
		||||
<li>GL_ARB_map_buffer_alignment on all drivers that did not previously support
 | 
			
		||||
it.</li>
 | 
			
		||||
<li>GL_AMD_shader_trinary_minmax.</li>
 | 
			
		||||
<li>GL_EXT_framebuffer_blit on r200 and radeon.</li>
 | 
			
		||||
<li>Reduced memory usage for display lists.</li>
 | 
			
		||||
<li>OpenGL 3.3 support on nv50, nvc0, r600 and radeonsi</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
TBD.
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Removed support for the GL_MESA_texture_array extension.  This extension
 | 
			
		||||
  enabled the use of texture array with fixed-function and assembly fragment
 | 
			
		||||
  shaders.  No applications are known to use this extension.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,61 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.1 Release Notes / June 6, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.1 is a bug fix release which fixes bugs found since the 10.2 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.1 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
96f892dae2d0bb14ac9c2113f586c909  MesaLib-10.2.1.tar.gz
 | 
			
		||||
093f9b5d077e5f6061dcd7b01b7aa51a  MesaLib-10.2.1.tar.bz2
 | 
			
		||||
6ab76c1608e5deed1eb8b54c62d7a48a  MesaLib-10.2.1.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2 had a build problem in the radeonsi driver due to an error resolving
 | 
			
		||||
conflicts in a patch cherry-pick from master.  The build error is fixed.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add MD5 checksum, etc. for 10.1 release</li>
 | 
			
		||||
  <li>radeonsi: Fix build error introduced in 5ab9a9c</li>
 | 
			
		||||
  <li>Bump version to 10.2.1</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,181 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
38c4a40364000f89cddaa1694f6f3cfb444981d1110238ce603093585477399c  MesaLib-10.2.2.tar.bz2
 | 
			
		||||
2af2ec8b4db624c352e961eefbcce6c8d1f86d44c5542f6f378c50e1b958d453  MesaLib-10.2.2.tar.gz
 | 
			
		||||
d4c0372da59367a344d62ebcdf5cf61039c9cae6925f40f2dab8f8d95cf22da9  MesaLib-10.2.2.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Adrian Negreanu (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>add megadriver_stub_FILES</li>
 | 
			
		||||
  <li>android: adapt to the megadriver mechanism</li>
 | 
			
		||||
  <li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
 | 
			
		||||
  <li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
 | 
			
		||||
  <li>android, egl: add correct drm include for libmesa_egl_dri2</li>
 | 
			
		||||
  <li>android, egl: typo dri2_fallback_pixmap_surface -> dri2_fallback_create_pixmap_surface</li>
 | 
			
		||||
  <li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
 | 
			
		||||
  <li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>Update VERSION to 10.2.2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Daniel Manjarres (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Emil Velikov (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>targets/xa: limit the amount of exported symbols</li>
 | 
			
		||||
  <li>configure: error out when building opencl without LLVM</li>
 | 
			
		||||
  <li>configure: correctly autodetect xvmc/vdpau/omx</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Grigori Goronzy (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Iago Toral Quiroga (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add initial 10.2.1 release notes</li>
 | 
			
		||||
  <li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
 | 
			
		||||
  <li>meta: Respect the driver's maximum number of draw buffers</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (7):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gk110/ir: emit saturate flag on fadd when needed</li>
 | 
			
		||||
  <li>gk110/ir: fix emitting constbuf file index</li>
 | 
			
		||||
  <li>gk110/ir: fix bfind emission</li>
 | 
			
		||||
  <li>nv50: make sure to mark first scissor dirty after blit</li>
 | 
			
		||||
  <li>nv30: plug some memory leaks on screen destroy and shader compile</li>
 | 
			
		||||
  <li>nv30: avoid dangling references to deleted contexts</li>
 | 
			
		||||
  <li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jason Ekstrand (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (9):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
 | 
			
		||||
  <li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
 | 
			
		||||
  <li>i965/vec4: Fix dead code elimination for VGRFs of size > 1.</li>
 | 
			
		||||
  <li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
 | 
			
		||||
  <li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
 | 
			
		||||
  <li>i965: Add missing newlines to a few perf_debug messages.</li>
 | 
			
		||||
  <li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
 | 
			
		||||
  <li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
 | 
			
		||||
  <li>i965: Save meta stencil blit programs in the context.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kristian Høgsberg (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Remove glClear optimization based on drawable size</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Neil Roberts (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Set the fast clear color value for texture surfaces</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
 | 
			
		||||
  <li>clover: Don't use llvm's global context</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ville Syrjälä (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i915: Fix gen2 texblend setup</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,130 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.3 Release Notes / July 7, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.3 is a bug fix release which fixes bugs found since the 10.2.2 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.3 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
e482a96170c98b17d6aba0d6e4dda4b9a2e61c39587bb64ac38cadfa4aba4aeb  MesaLib-10.2.3.tar.bz2
 | 
			
		||||
96cffacaa1c52ae659b3b0f91be2eebf5528b748934256751261fb79ea3d6636  MesaLib-10.2.3.tar.gz
 | 
			
		||||
82cab6ff14c8038ee39842dbdea0d447a78d119efd8d702d1497bc7c246434e9  MesaLib-10.2.3.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - </li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - </li>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - </li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Aaron Watry (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon/llvm: Allocate space for kernel metadata operands</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add sha256 sums for the 10.2.2 release</li>
 | 
			
		||||
  <li>cherry-ignore: Add a patch that's been rejected</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nouveau: dup fd before passing it to device</li>
 | 
			
		||||
  <li>nv50: disable dedicated ubo upload method</li>
 | 
			
		||||
  <li>nv50: do an explicit flush on draw when there are persistent buffers</li>
 | 
			
		||||
  <li>nvc0: add a memory barrier when there are persistent UBOs</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jasper St. Pierre (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>glxext: Send the Drawable's ID in the GLX_BufferSwapComplete event</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.</li>
 | 
			
		||||
  <li>i965: Include marketing names for Broadwell GPUs.</li>
 | 
			
		||||
  <li>i965/disasm: Fix INTEL_DEBUG=fs on Broadwell for ARB_fp applications.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Michel Dänzer (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeon/llvm: Use the llvm.rsq.clamped intrinsic for RSQ</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Rob Clark (9):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>xa: fix segfault</li>
 | 
			
		||||
  <li>freedreno: use OUT_RELOCW when buffer is written</li>
 | 
			
		||||
  <li>freedreno/a3xx: fix depth/stencil GMEM positioning</li>
 | 
			
		||||
  <li>freedreno/a3xx: fix depth/stencil gmem restore</li>
 | 
			
		||||
  <li>freedreno/a3xx: fix blend opcode</li>
 | 
			
		||||
  <li>freedreno: few caps fixes</li>
 | 
			
		||||
  <li>freedreno/a3xx: texture fixes</li>
 | 
			
		||||
  <li>freedreno: fix for null textures</li>
 | 
			
		||||
  <li>freedreno/a3xx: vtx formats</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Roland Scheidegger (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>draw: (trivial) fix clamping of viewport index</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Takashi Iwai (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>llvmpipe: Fix zero-division in llvmpipe_texture_layout()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thomas Hellstrom (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/xa: Don't close the drm fd on failure v2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tobias Klausmann (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: allow gl_ViewportIndex to work on non-provoking vertices</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,127 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.4 Release Notes / July 18, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.4 is a bug fix release which fixes bugs found since the 10.2.3 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.4 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
06a2341244eb85c283f59f70161e06ded106f835ed9b6be1ef0243bd9344811a  MesaLib-10.2.4.tar.bz2
 | 
			
		||||
33e3c8b4343503e7d7d17416c670438860a2fd99ec93ea3327f73c3abe33b5e4  MesaLib-10.2.4.tar.gz
 | 
			
		||||
e26791a4a62a61b82e506e6ba031812d09697d1a831e8239af67e5722a8ee538  MesaLib-10.2.4.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Abdiel Janulgue (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/fs: Refactor check for potential copy propagated instructions.</li>
 | 
			
		||||
  <li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
 | 
			
		||||
  <li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix geometry shader memory leaks</li>
 | 
			
		||||
  <li>st/mesa: fix geometry shader memory leak</li>
 | 
			
		||||
  <li>gallium/u_blitter: fix some shader memory leaks</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add sha256 checksums for the 10.2.3 release</li>
 | 
			
		||||
  <li>Update VERSION to 10.2.4</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: retrieve shadow compare from first arg</li>
 | 
			
		||||
  <li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
 | 
			
		||||
  <li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
 | 
			
		||||
  <li>nvc0/ir: use manual TXD when offsets are involved</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jordan Justen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Add auxiliary surface field #defines for Broadwell.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (9):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
 | 
			
		||||
  <li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
 | 
			
		||||
  <li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
 | 
			
		||||
  <li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
 | 
			
		||||
  <li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
 | 
			
		||||
  <li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
 | 
			
		||||
  <li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
 | 
			
		||||
  <li>i965: Add 2x MSAA support to the MCS allocation function.</li>
 | 
			
		||||
  <li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallium: fix u_default_transfer_inline_write for textures</li>
 | 
			
		||||
  <li>st/mesa: fix samplerCubeShadow with bias</li>
 | 
			
		||||
  <li>radeonsi: fix samplerCubeShadow with bias</li>
 | 
			
		||||
  <li>radeonsi: add support for TXB2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/vec4: Don't return void from a void function.</li>
 | 
			
		||||
  <li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
 | 
			
		||||
  <li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
 | 
			
		||||
  <li>i965/fs: Make try_constant_propagate() static.</li>
 | 
			
		||||
  <li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
 | 
			
		||||
  <li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
 | 
			
		||||
  <li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
 | 
			
		||||
  <li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,188 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.5 Release Notes / August 2, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.5 is a bug fix release which fixes bugs found since the 10.2.4 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.5 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
b4459f0bf7f4a3c8fb78ece3c9d2eac3d0e5bf38cb470f2a72705e744bd0310d  MesaLib-10.2.5.tar.bz2
 | 
			
		||||
7b4dd0cb683f8c7dc48a3e7a315742bed58ddcd7b756c462aca4177bd1acdc79  MesaLib-10.2.5.tar.gz
 | 
			
		||||
6180565914fb238dd77ccdaff96b6155d9a6e1b3e981ebbf6a6851301b384fed  MesaLib-10.2.5.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Abdiel Janulgue (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/fs: Refactor check for potential copy propagated instructions.</li>
 | 
			
		||||
  <li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
 | 
			
		||||
  <li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Adel Gadllah (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i915: Fix up intelInitScreen2 for DRI3</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()</li>
 | 
			
		||||
  <li>mesa: Don't use memcpy() in _mesa_texstore() for float depth texture data</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (3):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix geometry shader memory leaks</li>
 | 
			
		||||
  <li>st/mesa: fix geometry shader memory leak</li>
 | 
			
		||||
  <li>gallium/u_blitter: fix some shader memory leaks</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (6):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add sha256 checksums for the 10.2.3 release</li>
 | 
			
		||||
  <li>Update VERSION to 10.2.4</li>
 | 
			
		||||
  <li>Add release notes for 10.2.4</li>
 | 
			
		||||
  <li>docs: Add SHA256 checksums for the 10.2.4 release</li>
 | 
			
		||||
  <li>cherry-ignore: Ignore a few patches picked in the previous stable release</li>
 | 
			
		||||
  <li>Update version to 10.2.5</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Christian König (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>radeonsi: fix order of r600_need_dma_space and r600_context_bo_reloc</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Eric Anholt (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ian Romanick (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Don't allow GL_TEXTURE_BORDER queries outside compat profile</li>
 | 
			
		||||
  <li>mesa: Don't allow GL_TEXTURE_{LUMINANCE,INTENSITY}_* queries outside compat profile</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (5):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50/ir: retrieve shadow compare from first arg</li>
 | 
			
		||||
  <li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
 | 
			
		||||
  <li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
 | 
			
		||||
  <li>nvc0/ir: use manual TXD when offsets are involved</li>
 | 
			
		||||
  <li>nvc0: make sure that the local memory allocation is aligned to 0x10</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jason Ekstrand (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>main/format_pack: Fix a wrong datatype in pack_ubyte_R8G8_UNORM</li>
 | 
			
		||||
  <li>main/get_hash_params: Add GL_SAMPLE_SHADING_ARB</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jordan Justen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Add auxiliary surface field #defines for Broadwell.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>José Fonseca (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/wgl: Clamp wglChoosePixelFormatARB's output nNumFormats to nMaxFormats.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Kenneth Graunke (13):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
 | 
			
		||||
  <li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
 | 
			
		||||
  <li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
 | 
			
		||||
  <li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
 | 
			
		||||
  <li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
 | 
			
		||||
  <li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
 | 
			
		||||
  <li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
 | 
			
		||||
  <li>i965: Add 2x MSAA support to the MCS allocation function.</li>
 | 
			
		||||
  <li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
 | 
			
		||||
  <li>i965: Add missing persample_shading field to brw_wm_debug_recompile.</li>
 | 
			
		||||
  <li>i965/fs: Fix gl_SampleID for 2x MSAA and SIMD16 mode.</li>
 | 
			
		||||
  <li>i965/fs: Fix gl_SampleMask handling for SIMD16 on Gen8+.</li>
 | 
			
		||||
  <li>i965/fs: Set LastRT on the final FB write on Broadwell.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (14):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallium: fix u_default_transfer_inline_write for textures</li>
 | 
			
		||||
  <li>st/mesa: fix samplerCubeShadow with bias</li>
 | 
			
		||||
  <li>radeonsi: fix samplerCubeShadow with bias</li>
 | 
			
		||||
  <li>radeonsi: add support for TXB2</li>
 | 
			
		||||
  <li>r600g: switch SNORM conversion to DX and GLES behavior</li>
 | 
			
		||||
  <li>radeonsi: fix CMASK and HTILE calculations for Hawaii</li>
 | 
			
		||||
  <li>gallium/util: add a helper for calculating primitive count from vertex count</li>
 | 
			
		||||
  <li>radeonsi: fix a hang with instancing on Hawaii</li>
 | 
			
		||||
  <li>radeonsi: fix a hang with streamout on Hawaii</li>
 | 
			
		||||
  <li>winsys/radeon: fix vram_size overflow with Hawaii</li>
 | 
			
		||||
  <li>radeonsi: fix occlusion queries on Hawaii</li>
 | 
			
		||||
  <li>r600g,radeonsi: switch all occurences of array_size to util_max_layer</li>
 | 
			
		||||
  <li>radeonsi: fix build because of lack of draw_indirect infrastructure in 10.2</li>
 | 
			
		||||
  <li>radeonsi: use DRAW_PREAMBLE on CIK</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Matt Turner (8):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/vec4: Don't return void from a void function.</li>
 | 
			
		||||
  <li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
 | 
			
		||||
  <li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
 | 
			
		||||
  <li>i965/fs: Make try_constant_propagate() static.</li>
 | 
			
		||||
  <li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
 | 
			
		||||
  <li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
 | 
			
		||||
  <li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
 | 
			
		||||
  <li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Thorsten Glaser (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>nv50: fix build failure on m68k due to invalid struct alignment assumptions</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Tom Stellard (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>clover: Call end_query before getting timestamp result v2</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,118 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2.6 Release Notes / August 19, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.6 is a bug fix release which fixes bugs found since the 10.2.5 release.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2.6 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<h2>SHA256 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
193314d2adba98e43697d726739ac46b4299aae324fa1821aa226890c28ac806  MesaLib-10.2.6.tar.bz2
 | 
			
		||||
f7a45a5977b485eb95ac024205c584a0c112fe3951c2313c797579bb16a7a448  MesaLib-10.2.6.tar.gz
 | 
			
		||||
6d086d6fcda8f317adfaaae40011decf2f2e2dc80819c4a7a77c76f73512e8d8  MesaLib-10.2.6.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<p>None</p>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
<p>This list is likely incomplete.</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
 | 
			
		||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
 | 
			
		||||
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<p>Anuj Phogat (15):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: Fix error condition for valid texture targets in glTexStorage* functions</li>
 | 
			
		||||
  <li>mesa: Turn target_can_be_compressed() in to a utility function</li>
 | 
			
		||||
  <li>mesa: Add error condition for using compressed internalformat in glTexStorage3D()</li>
 | 
			
		||||
  <li>mesa: Fix condition for using compressed internalformat in glCompressedTexImage3D()</li>
 | 
			
		||||
  <li>mesa: Add utility function _mesa_is_enum_format_snorm()</li>
 | 
			
		||||
  <li>mesa: Don't allow snorm internal formats in glCopyTexImage*() in GLES3</li>
 | 
			
		||||
  <li>mesa: Add a helper function _mesa_is_enum_format_unsized()</li>
 | 
			
		||||
  <li>mesa: Add a gles3 error condition for sized internalformat in glCopyTexImage*()</li>
 | 
			
		||||
  <li>mesa: Add gles3 error condition for GL_RGBA10_A2 buffer format in glCopyTexImage*()</li>
 | 
			
		||||
  <li>mesa: Add utility function _mesa_is_enum_format_unorm()</li>
 | 
			
		||||
  <li>mesa: Add gles3 condition for normalized internal formats in glCopyTexImage*()</li>
 | 
			
		||||
  <li>mesa: Allow GL_TEXTURE_CUBE_MAP target with compressed internal formats</li>
 | 
			
		||||
  <li>meta: Use _mesa_get_format_bits() to get the GL_RED_BITS</li>
 | 
			
		||||
  <li>egl: Fix OpenGL ES version checks in _eglParseContextAttribList()</li>
 | 
			
		||||
  <li>meta: Fix datatype computation in get_temp_image_type()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Brian Paul (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa: fix assertion in _mesa_drawbuffers()</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Carl Worth (2):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>docs: Add sha256 sums to the 10.2.5 release notes</li>
 | 
			
		||||
  <li>Update VERSION to 10.2.6</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Ilia Mirkin (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>mesa/st: only convert AND(a, NOT(b)) into MAD when not using native integers</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Jordan Justen (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>i965/miptree: Layout 1D Array as 2D Array with height of 1</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Maarten Lankhorst (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure.ac: Do not require llvm on x32</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Marek Olšák (4):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>st/mesa: fix blit-based partial TexSubImage for 1D arrays</li>
 | 
			
		||||
  <li>radeon,r200: fix buffer validation after CS flush</li>
 | 
			
		||||
  <li>radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii</li>
 | 
			
		||||
  <li>radeonsi: fix CMASK and HTILE allocation on Tahiti</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Pali Rohár (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIB</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<p>Roland Scheidegger (1):</p>
 | 
			
		||||
<ul>
 | 
			
		||||
  <li>gallivm: fix up out-of-bounds level when using conformant out-of-bound behavior</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,95 +0,0 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
			
		||||
  <title>Mesa Release Notes</title>
 | 
			
		||||
  <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
<div class="header">
 | 
			
		||||
  <h1>The Mesa 3D Graphics Library</h1>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<iframe src="../contents.html"></iframe>
 | 
			
		||||
<div class="content">
 | 
			
		||||
 | 
			
		||||
<h1>Mesa 10.2 Release Notes / June 6, 2014</h1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2 is a new development release.
 | 
			
		||||
People who are concerned with stability and reliability should stick
 | 
			
		||||
with a previous release or wait for Mesa 10.2.1.
 | 
			
		||||
</p>
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 10.2 implements the OpenGL 3.3 API, but the version reported by
 | 
			
		||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
			
		||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
			
		||||
Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
 | 
			
		||||
3.3 is <strong>only</strong> available if requested at context creation
 | 
			
		||||
because compatibility contexts are not supported.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
c87bfb6dd5cbcf1fdef42e5ccd972581  MesaLib-10.2.0.tar.gz
 | 
			
		||||
7aaba90bd7169a94ae2fe83febdec963  MesaLib-10.2.0.tar.bz2
 | 
			
		||||
58b203aca15dadc25ab4d1126db1052b  MesaLib-10.2.0.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Note: some of the new features are only available with certain drivers.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>GL_ARB_buffer_storage on i965, nv30, nv50, nvc0, r300, r600, and radeonsi</li>
 | 
			
		||||
<li>GL_ARB_multi_bind on all drivers</li>
 | 
			
		||||
<li>GL_ARB_sample_shading on nv50 (GT21x only), nvc0</li>
 | 
			
		||||
<li>GL_ARB_separate_shader_objects (desktop OpenGL) and
 | 
			
		||||
  GL_EXT_separate_shader_objects (OpenGL ES 2.0 and 3.0) on all drivers</li>
 | 
			
		||||
<li>GL_ARB_stencil_texturing on i965/gen8+</li>
 | 
			
		||||
<li>GL_ARB_texture_cube_map_array on nv50 (GT21x only)</li>
 | 
			
		||||
<li>GL_ARB_texture_gather on nv50 (GT21x only), nvc0</li>
 | 
			
		||||
<li>GL_ARB_texture_query_lod on nv50 (GT21x only), nvc0</li>
 | 
			
		||||
<li>GL_ARB_texture_view on i965/gen7</li>
 | 
			
		||||
<li>GL_ARB_vertex_type_10f_11f_11f_rev on nv50, nvc0, radeonsi</li>
 | 
			
		||||
<li>GL_ARB_viewport_array on nv50, r600</li>
 | 
			
		||||
<li>GL_INTEL_performance_query on i965/gen5+</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
 | 
			
		||||
TBD.
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Renamed <i>--with-llvm-shared-libs</i> to <i>--enable-llvm-shared-libs</i></li>
 | 
			
		||||
<p>
 | 
			
		||||
The option is used to control how mesa is linked against LLVM, and now
 | 
			
		||||
defaults to enabled (shared linking).
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<li>Split <i>libxatracker.so</i> into a standalone library which can be used
 | 
			
		||||
with any gallium driver.</li>
 | 
			
		||||
<p>
 | 
			
		||||
Previously the library was linked statically against vmware's virtual gpu
 | 
			
		||||
driver(svga), whereas now it loads a shared pipe_*.so driver. Provide the
 | 
			
		||||
following options during configure, if you would like support for svga driver
 | 
			
		||||
<i>--enable-xa --with-gallium-drivers=svga</i>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Note: The files are installed in $(libdir)/gallium-pipe/ and the interface
 | 
			
		||||
between them and libxatracker.so is <strong>not</strong> stable.
 | 
			
		||||
</p>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user