Compare commits
	
		
			8 Commits
		
	
	
		
			mesa-10.5.
			...
			rgb10_a2ui
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 257f32ad20 | ||
|  | 4e0ece34ed | ||
|  | 8bccaa61d7 | ||
|  | 63d5fd0376 | ||
|  | 08bc1b7343 | ||
|  | 9f92031355 | ||
|  | e56728c9d8 | ||
|  | 644d434137 | 
| @@ -1,4 +1,4 @@ | ||||
| ((prog-mode | ||||
| ((nil | ||||
|   (indent-tabs-mode . nil) | ||||
|   (tab-width . 8) | ||||
|   (c-basic-offset . 3) | ||||
| @@ -8,5 +8,4 @@ | ||||
| 	    (c-set-offset 'innamespace '0) | ||||
| 	    (c-set-offset 'inline-open '0))) | ||||
|   ) | ||||
|  (makefile-mode (indent-tabs-mode . t)) | ||||
|  ) | ||||
|   | ||||
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -4,7 +4,6 @@ | ||||
| *.ilk | ||||
| *.la | ||||
| *.lo | ||||
| *.log | ||||
| *.o | ||||
| *.obj | ||||
| *.os | ||||
| @@ -18,8 +17,6 @@ | ||||
| *.tar | ||||
| *.tar.bz2 | ||||
| *.tar.gz | ||||
| *.tar.xz | ||||
| *.trs | ||||
| *.zip | ||||
| *~ | ||||
| depend | ||||
| @@ -39,9 +36,8 @@ config.py | ||||
| build | ||||
| libtool | ||||
| manifest.txt | ||||
| Makefile.in | ||||
| .dir-locals.el | ||||
| .deps/ | ||||
| .dirstamp | ||||
| .libs/ | ||||
| Makefile | ||||
| Makefile.in | ||||
| /Makefile | ||||
|   | ||||
| @@ -31,40 +31,23 @@ endif | ||||
| endif | ||||
|  | ||||
| LOCAL_C_INCLUDES += \ | ||||
| 	$(MESA_TOP)/src \ | ||||
| 	$(MESA_TOP)/include | ||||
|  | ||||
| MESA_VERSION=$(shell cat $(MESA_TOP)/VERSION) | ||||
| # define ANDROID_VERSION (e.g., 4.0.x => 0x0400) | ||||
| major := $(word 1, $(subst ., , $(PLATFORM_VERSION))) | ||||
| minor := $(word 2, $(subst ., , $(PLATFORM_VERSION))) | ||||
| 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) | ||||
| 	-DANDROID_VERSION=0x0$(major)0$(minor) | ||||
|  | ||||
| LOCAL_CFLAGS += \ | ||||
| 	-DHAVE___BUILTIN_EXPECT \ | ||||
| 	-DHAVE___BUILTIN_FFS \ | ||||
| 	-DHAVE___BUILTIN_FFSLL \ | ||||
| 	-DHAVE_FUNC_ATTRIBUTE_FLATTEN \ | ||||
| 	-DHAVE_FUNC_ATTRIBUTE_UNUSED \ | ||||
| 	-DHAVE_FUNC_ATTRIBUTE_FORMAT \ | ||||
| 	-DHAVE_FUNC_ATTRIBUTE_PACKED \ | ||||
| 	-DHAVE___BUILTIN_CTZ \ | ||||
| 	-DHAVE___BUILTIN_POPCOUNT \ | ||||
| 	-DHAVE___BUILTIN_POPCOUNTLL \ | ||||
| 	-DHAVE___BUILTIN_CLZ \ | ||||
| 	-DHAVE___BUILTIN_CLZLL \ | ||||
| 	-DHAVE___BUILTIN_UNREACHABLE \ | ||||
| 	-DHAVE_PTHREAD=1 \ | ||||
| 	-DPTHREADS \ | ||||
| 	-fvisibility=hidden \ | ||||
| 	-Wno-sign-compare | ||||
|  | ||||
| ifeq ($(strip $(MESA_ENABLE_ASM)),true) | ||||
| ifeq ($(TARGET_ARCH),x86) | ||||
| LOCAL_CFLAGS += \ | ||||
| 	-DUSE_X86_ASM \ | ||||
| 	-DHAVE_DLOPEN \ | ||||
|  | ||||
| 	-DUSE_X86_ASM | ||||
| endif | ||||
| endif | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								Android.mk
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Android.mk
									
									
									
									
									
								
							| @@ -24,24 +24,20 @@ | ||||
| # 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 | ||||
| #   gallium drivers: swrast i915g 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_TOP := external/drm | ||||
| DRM_GRALLOC_TOP := hardware/drm_gralloc | ||||
|  | ||||
| classic_drivers := i915 i965 | ||||
| gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx | ||||
| gallium_drivers := swrast i915g nouveau r300g r600g radeonsi vmwgfx | ||||
|  | ||||
| MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS)) | ||||
|  | ||||
| @@ -77,11 +73,9 @@ endif | ||||
| ifneq ($(strip $(MESA_GPU_DRIVERS)),) | ||||
|  | ||||
| SUBDIRS := \ | ||||
| 	src/loader \ | ||||
| 	src/mapi \ | ||||
| 	src/glsl \ | ||||
| 	src/mesa \ | ||||
| 	src/util \ | ||||
| 	src/egl/main | ||||
|  | ||||
| ifeq ($(strip $(MESA_BUILD_CLASSIC)),true) | ||||
|   | ||||
| @@ -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) | ||||
							
								
								
									
										129
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -21,39 +21,104 @@ | ||||
|  | ||||
| SUBDIRS = src | ||||
|  | ||||
| AM_DISTCHECK_CONFIGURE_FLAGS = \ | ||||
| 	--enable-dri3 \ | ||||
| 	--enable-gallium-tests \ | ||||
| 	--enable-gbm \ | ||||
| 	--enable-gles1 \ | ||||
| 	--enable-gles2 \ | ||||
| 	--enable-glx-tls \ | ||||
| 	--enable-va \ | ||||
| 	--enable-vdpau \ | ||||
| 	--enable-xa \ | ||||
| 	--enable-xvmc \ | ||||
| 	--with-egl-platforms=x11,wayland,drm | ||||
| doxygen: | ||||
| 	cd doxygen && $(MAKE) | ||||
|  | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
| check-local: | ||||
| 	$(MAKE) -C src/mapi/glapi/tests check | ||||
| 	$(MAKE) -C src/mesa/main/tests check | ||||
| 	$(MAKE) -C src/glsl/tests check | ||||
| 	$(MAKE) -C src/glx/tests check | ||||
|  | ||||
| EXTRA_DIST = \ | ||||
| 	autogen.sh \ | ||||
| 	common.py \ | ||||
| 	docs \ | ||||
| 	doxygen \ | ||||
| 	scons \ | ||||
| 	SConstruct | ||||
| clean-local: | ||||
| 	-@touch $(top_builddir)/configs/current | ||||
| 	-@for dir in $(SUBDIRS) ; do \ | ||||
| 		if [ -d $$dir ] ; then \ | ||||
| 			(cd $$dir && $(MAKE) clean) ; \ | ||||
| 		fi \ | ||||
| 	done | ||||
| 	-@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current | ||||
|  | ||||
| noinst_HEADERS =					\ | ||||
| 	include/c99_compat.h				\ | ||||
| 	include/c99					\ | ||||
| 	include/c11					\ | ||||
| 	include/D3D9					\ | ||||
| 	include/VG					\ | ||||
| 	include/HaikuGL					\ | ||||
| 	include/pci_ids | ||||
|  | ||||
| # We list some directories in EXTRA_DIST, but don't actually want to include | ||||
| # the .gitignore files in the tarball. | ||||
| dist-hook: | ||||
| 	find $(distdir) -name .gitignore -exec $(RM) {} + | ||||
|  | ||||
| distclean-local: | ||||
| 	-rm -rf lib* | ||||
| 	-rm -f $(top_builddir)/configs/current | ||||
| 	-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \ | ||||
| 	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';' | ||||
|  | ||||
| .PHONY: doxygen | ||||
|  | ||||
| # Rules for making release tarballs | ||||
|  | ||||
| PACKAGE_VERSION=8.1-devel | ||||
| PACKAGE_DIR = Mesa-$(PACKAGE_VERSION) | ||||
| PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION) | ||||
|  | ||||
| EXTRA_FILES = \ | ||||
| 	aclocal.m4					\ | ||||
| 	configure					\ | ||||
| 	src/glsl/glsl_parser.cc				\ | ||||
| 	src/glsl/glsl_parser.h				\ | ||||
| 	src/glsl/glsl_lexer.cc				\ | ||||
| 	src/glsl/glcpp/glcpp-lex.c			\ | ||||
| 	src/glsl/glcpp/glcpp-parse.c			\ | ||||
| 	src/glsl/glcpp/glcpp-parse.h			\ | ||||
| 	src/mesa/main/api_exec_es1.c			\ | ||||
| 	src/mesa/main/api_exec_es1_dispatch.h		\ | ||||
| 	src/mesa/main/api_exec_es1_remap_helper.h	\ | ||||
| 	src/mesa/main/api_exec_es2.c			\ | ||||
| 	src/mesa/main/api_exec_es2_dispatch.h		\ | ||||
| 	src/mesa/main/api_exec_es2_remap_helper.h	\ | ||||
| 	src/mesa/program/lex.yy.c			\ | ||||
| 	src/mesa/program/program_parse.tab.c		\ | ||||
| 	src/mesa/program/program_parse.tab.h | ||||
|  | ||||
| IGNORE_FILES = \ | ||||
| 	-x autogen.sh | ||||
|  | ||||
|  | ||||
| parsers: configure | ||||
| 	-@touch $(top_builddir)/configs/current | ||||
| 	$(MAKE) -C src/glsl glsl_parser.cc glsl_parser.h glsl_lexer.cc | ||||
| 	$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h | ||||
| 	$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h | ||||
|  | ||||
| # Everything for new a Mesa release: | ||||
| ARCHIVES = $(PACKAGE_NAME).tar.gz \ | ||||
| 	$(PACKAGE_NAME).tar.bz2 \ | ||||
| 	$(PACKAGE_NAME).zip | ||||
|  | ||||
| tarballs: md5 | ||||
| 	rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar | ||||
|  | ||||
| manifest.txt: .git | ||||
| 	( \ | ||||
| 		ls -1 $(EXTRA_FILES) ; \ | ||||
| 		git ls-files $(IGNORE_FILES) \ | ||||
| 	) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@ | ||||
|  | ||||
| ../$(PACKAGE_DIR): | ||||
| 	ln -s $(PWD) $@ | ||||
|  | ||||
| $(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt | ||||
| 	cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt | ||||
|  | ||||
| $(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR) | ||||
| 	gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz | ||||
|  | ||||
| $(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar | ||||
| 	bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2 | ||||
|  | ||||
| $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt | ||||
| 	rm -f $(PACKAGE_NAME).zip ; \ | ||||
| 	cd .. ; \ | ||||
| 	zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \ | ||||
| 	mv $(PACKAGE_NAME).zip $(PACKAGE_DIR) | ||||
|  | ||||
| md5: $(ARCHIVES) | ||||
| 	@-md5sum $(PACKAGE_NAME).tar.gz | ||||
| 	@-md5sum $(PACKAGE_NAME).tar.bz2 | ||||
| 	@-md5sum $(PACKAGE_NAME).zip | ||||
|  | ||||
| .PHONY: tarballs md5 | ||||
|   | ||||
							
								
								
									
										20
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								SConstruct
									
									
									
									
									
								
							| @@ -59,16 +59,16 @@ else: | ||||
|  | ||||
| Help(opts.GenerateHelpText(env)) | ||||
|  | ||||
| # fail early for a common error on windows | ||||
| if env['gles']: | ||||
|     try: | ||||
|         import libxml2 | ||||
|     except ImportError: | ||||
|         raise SCons.Errors.UserError, "GLES requires libxml2-python to build" | ||||
|  | ||||
| ####################################################################### | ||||
| # Environment setup | ||||
|  | ||||
| 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', | ||||
| @@ -80,6 +80,9 @@ env.Append(CPPPATH = [ | ||||
| 	'#/src/gallium/winsys', | ||||
| ]) | ||||
|  | ||||
| if env['msvc']: | ||||
|     env.Append(CPPPATH = ['#include/c99']) | ||||
|  | ||||
| # for debugging | ||||
| #print env.Dump() | ||||
|  | ||||
| @@ -112,6 +115,9 @@ if env['crosscompile'] and not env['embedded']: | ||||
|     host_env['hostonly'] = True | ||||
|     assert host_env['crosscompile'] == False | ||||
|  | ||||
|     if host_env['msvc']: | ||||
|         host_env.Append(CPPPATH = ['#include/c99']) | ||||
|  | ||||
|     target_env = env | ||||
|     env = host_env | ||||
|     Export('env') | ||||
|   | ||||
							
								
								
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | ||||
| # A few convenience macros for Mesa, mostly to keep all the platform | ||||
| # specifics out of configure.ac. | ||||
|  | ||||
| # MESA_PIC_FLAGS() | ||||
| # | ||||
| # Find out whether to build PIC code using the option --enable-pic and | ||||
| # the configure enable_static/enable_shared settings. If PIC is needed, | ||||
| # figure out the necessary flags for the platform and compiler. | ||||
| # | ||||
| # The platform checks have been shamelessly taken from libtool and | ||||
| # stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in | ||||
| # /usr/share/aclocal/libtool.m4 or | ||||
| # http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD | ||||
| # | ||||
| AC_DEFUN([MESA_PIC_FLAGS], | ||||
| [AC_REQUIRE([AC_PROG_CC])dnl | ||||
| AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code]) | ||||
| AC_ARG_ENABLE([pic], | ||||
|     [AS_HELP_STRING([--disable-pic], | ||||
|         [compile PIC objects @<:@default=enabled for shared builds | ||||
|         on supported platforms@:>@])], | ||||
|     [enable_pic="$enableval" | ||||
|     test "x$enable_pic" = x && enable_pic=auto], | ||||
|     [enable_pic=auto]) | ||||
| # disable PIC by default for static builds | ||||
| if test "$enable_pic" = auto && test "$enable_static" = yes; then | ||||
|     enable_pic=no | ||||
| fi | ||||
| # if PIC hasn't been explicitly disabled, try to figure out the flags | ||||
| if test "$enable_pic" != no; then | ||||
|     AC_MSG_CHECKING([for $CC option to produce PIC]) | ||||
|     # allow the user's flags to override | ||||
|     if test "x$PIC_FLAGS" = x; then | ||||
|         # see if we're using GCC | ||||
|         if test "x$GCC" = xyes; then | ||||
|             case "$host_os" in | ||||
|             aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*) | ||||
|                 # PIC is the default for these OSes. | ||||
|                 ;; | ||||
|             mingw*|os2*|pw32*) | ||||
|                 # This hack is so that the source file can tell whether | ||||
|                 # it is being built for inclusion in a dll (and should | ||||
|                 # export symbols for example). | ||||
|                 PIC_FLAGS="-DDLL_EXPORT" | ||||
|                 ;; | ||||
|             darwin*|rhapsody*) | ||||
|                 # PIC is the default on this platform | ||||
|                 # Common symbols not allowed in MH_DYLIB files | ||||
|                 PIC_FLAGS="-fno-common" | ||||
|                 ;; | ||||
|             hpux*) | ||||
|                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | ||||
|                 # but not for PA HP-UX. | ||||
|                 case $host_cpu in | ||||
|                 hppa*64*|ia64*) | ||||
|                     ;; | ||||
|                 *) | ||||
|                     PIC_FLAGS="-fPIC" | ||||
|                     ;; | ||||
|                 esac | ||||
|                 ;; | ||||
|             *) | ||||
|                 # Everyone else on GCC uses -fPIC | ||||
|                 PIC_FLAGS="-fPIC" | ||||
|                 ;; | ||||
|             esac | ||||
|         else # !GCC | ||||
|             case "$host_os" in | ||||
|             hpux9*|hpux10*|hpux11*) | ||||
|                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | ||||
|                 # but not for PA HP-UX. | ||||
|                 case "$host_cpu" in | ||||
|                 hppa*64*|ia64*) | ||||
|                     # +Z the default | ||||
|                     ;; | ||||
|                 *) | ||||
|                     PIC_FLAGS="+Z" | ||||
|                     ;; | ||||
|                 esac | ||||
|                 ;; | ||||
|             linux*|k*bsd*-gnu) | ||||
|                 case `basename "$CC"` in | ||||
|                 icc*|ecc*|ifort*) | ||||
|                     PIC_FLAGS="-KPIC" | ||||
|                     ;; | ||||
|                 pgcc*|pgf77*|pgf90*|pgf95*) | ||||
|                     # Portland Group compilers (*not* the Pentium gcc | ||||
|                     # compiler, which looks to be a dead project) | ||||
|                     PIC_FLAGS="-fpic" | ||||
|                     ;; | ||||
|                 ccc*) | ||||
|                     # All Alpha code is PIC. | ||||
|                     ;; | ||||
|                 xl*) | ||||
|                     # IBM XL C 8.0/Fortran 10.1 on PPC | ||||
|                     PIC_FLAGS="-qpic" | ||||
|                     ;; | ||||
|                 *) | ||||
|                     case `$CC -V 2>&1 | sed 5q` in | ||||
|                     *Sun\ C*|*Sun\ F*) | ||||
|                         # Sun C 5.9 or Sun Fortran | ||||
|                         PIC_FLAGS="-KPIC" | ||||
|                         ;; | ||||
|                     esac | ||||
|                 esac | ||||
|                 ;; | ||||
|             solaris*) | ||||
|                 PIC_FLAGS="-KPIC" | ||||
|                 ;; | ||||
|             sunos4*) | ||||
|                 PIC_FLAGS="-PIC" | ||||
|                 ;; | ||||
|             esac | ||||
|         fi # GCC | ||||
|     fi # PIC_FLAGS | ||||
|     AC_MSG_RESULT([$PIC_FLAGS]) | ||||
| fi | ||||
| AC_SUBST([PIC_FLAGS]) | ||||
| ])# MESA_PIC_FLAGS | ||||
							
								
								
									
										10
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								autogen.sh
									
									
									
									
									
								
							| @@ -3,11 +3,17 @@ | ||||
| srcdir=`dirname "$0"` | ||||
| test -z "$srcdir" && srcdir=. | ||||
|  | ||||
| SRCDIR=`(cd "$srcdir" && pwd)` | ||||
| ORIGDIR=`pwd` | ||||
| cd "$srcdir" | ||||
|  | ||||
| if test "x$SRCDIR" != "x$ORIGDIR"; then | ||||
| 	echo "Mesa cannot be built when srcdir != builddir" 1>&2 | ||||
| 	exit 1 | ||||
| fi | ||||
|  | ||||
| MAKEFLAGS="" | ||||
|  | ||||
| autoreconf -v --install || exit 1 | ||||
| cd $ORIGDIR || exit $? | ||||
|  | ||||
| if test -z "$NOCONFIGURE"; then | ||||
|     "$srcdir"/configure "$@" | ||||
|   | ||||
| @@ -1,26 +0,0 @@ | ||||
| # Cherry-picked without -x | ||||
| # nir: resolve nir.h dependency list (fix make distcheck) | ||||
| 556fc4b84df99a1cd4b18c11fb16f7854a948b2a  | ||||
|  | ||||
| # nir: add missing header to the sources list | ||||
| 72e602905dd9d86450a936d5a22bf21758844b38 | ||||
|  | ||||
| # configure: rework wayland_scanner handling(fix make distcheck) | ||||
| 153539bd9d4445b504110958306f00632222f840 | ||||
|  | ||||
| # auxiliary/vl: bring back the VL code for the dri targets | ||||
| c39dbfdd0f764b1aaa7319b4694e7335692993dd | ||||
|  | ||||
| # mesa: rename format_info.c to format_info.h | ||||
| 3f6c28f2a976e35128b7a4a513cfa60af00301e1 | ||||
| # mesa: fix dependency tracking of generated sources | ||||
| d22391cb165af4ed2f9a9e5d6233072a432cc969 | ||||
| # mesa: drop Makefile from get_hash.h dependency list | ||||
| 2c0f72d5389a9838cc4fbf4cc4f4291aa56c7845 | ||||
| # mapi: fix *glapi dependency tracking | ||||
| fe5fddd7e2df74233a2a02ae021418485f39d11c | ||||
| # xmlpool: make sure we ship options.h | ||||
| 8d8ca64c28170ec7e9ffa01638bcf8fd30a96088 | ||||
|  | ||||
| # The optimisations mentioned are not available in 10.5 | ||||
| 627c68308683abbd6e563a09af6013a33938a790 i965/fs: in MAD optimizations, switch last argument to be immediate | ||||
							
								
								
									
										1
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -6,4 +6,3 @@ install-sh | ||||
| 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 | ||||
							
								
								
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # | ||||
| # Simple shell script for installing Mesa's header and library files. | ||||
| # If the copy commands below don't work on a particular system (i.e. the | ||||
| # -f or -d flags), we may need to branch on `uname` to do the right thing. | ||||
| # | ||||
|  | ||||
|  | ||||
| TOP=. | ||||
|  | ||||
| INCLUDE_DIR="/usr/local/include" | ||||
| LIB_DIR="/usr/local/lib" | ||||
|  | ||||
| if [ "x$#" = "x0" ] ; then | ||||
| echo | ||||
| echo "***** Mesa installation - You may need root privileges to do this *****" | ||||
| echo | ||||
| echo "Default directory for header files is:" ${INCLUDE_DIR} | ||||
| echo "Enter new directory or press <Enter> to accept this default." | ||||
|  | ||||
| read INPUT | ||||
| if [ "x${INPUT}" != "x" ] ; then | ||||
| 	INCLUDE_DIR=${INPUT} | ||||
| fi | ||||
|  | ||||
| echo | ||||
| echo "Default directory for library files is:" ${LIB_DIR} | ||||
| echo "Enter new directory or press <Enter> to accept this default." | ||||
|  | ||||
| read INPUT | ||||
| if [ "x${INPUT}" != "x" ] ; then | ||||
| 	LIB_DIR=${INPUT} | ||||
| fi | ||||
|  | ||||
| echo | ||||
| echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL | ||||
| echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR} | ||||
| echo "Press <Enter> to continue, or <ctrl>-C to abort." | ||||
|  | ||||
| read INPUT | ||||
|  | ||||
| else | ||||
| INCLUDE_DIR=$1/include | ||||
| LIB_DIR=$1/lib | ||||
| fi | ||||
|  | ||||
| # flags: | ||||
| #  -f = force | ||||
| #  -d = preserve symlinks (does not work on BSD) | ||||
|  | ||||
| if [ `uname` = "FreeBSD" ] ; then | ||||
| 	CP_FLAGS="-f" | ||||
| elif [ `uname` = "Darwin" ] ; then | ||||
| 	CP_FLAGS="-f" | ||||
| elif [ `uname` = "AIX" ] ; then | ||||
| 	CP_FLAGS="-fh" | ||||
| else | ||||
| 	CP_FLAGS="-fd" | ||||
| fi | ||||
|  | ||||
|  | ||||
| set -v | ||||
|  | ||||
| mkdir -p ${INCLUDE_DIR} | ||||
| mkdir -p ${INCLUDE_DIR}/GL | ||||
| # NOT YET: mkdir -p ${INCLUDE_DIR}/GLES | ||||
| mkdir -p ${LIB_DIR} | ||||
| cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL | ||||
| cp -f ${TOP}/src/glw/*.h ${INCLUDE_DIR}/GL | ||||
| # NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES | ||||
| cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR} | ||||
|  | ||||
| echo "Done." | ||||
							
								
								
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
|  | ||||
| # A minimal replacement for 'install' that supports installing symbolic links. | ||||
| # Only a limited number of options are supported: | ||||
| # -d dir          Create a directory | ||||
| # -m mode         Sets a file's mode when installing | ||||
|  | ||||
|  | ||||
| # If these commands aren't portable, we'll need some "if (arch)" type stuff | ||||
| SYMLINK="ln -s" | ||||
| MKDIR="mkdir -p" | ||||
| RM="rm -f" | ||||
|  | ||||
| MODE="" | ||||
|  | ||||
| if [ "$1" = "-d" ] ; then | ||||
| 	# make a directory path | ||||
| 	$MKDIR "$2" | ||||
| 	exit 0 | ||||
| fi | ||||
|  | ||||
| if [ "$1" = "-m" ] ; then | ||||
| 	# set file mode | ||||
| 	MODE=$2 | ||||
| 	shift 2 | ||||
| fi | ||||
|  | ||||
| # install file(s) into destination | ||||
| if [ $# -ge 2 ] ; then | ||||
|  | ||||
| 	# Last cmd line arg is the dest dir | ||||
| 	for FILE in $@ ; do | ||||
| 		DESTDIR="$FILE" | ||||
| 	done | ||||
|  | ||||
| 	# Loop over args, moving them to DEST directory | ||||
| 	I=1 | ||||
| 	for FILE in $@ ; do | ||||
| 		if [ $I = $# ] ; then | ||||
| 			# stop, don't want to install $DEST into $DEST | ||||
| 			exit 0 | ||||
| 		fi | ||||
|  | ||||
|                 DEST=$DESTDIR | ||||
|  | ||||
|                 # On CYGWIN, because DLLs are loaded by the native Win32 loader, | ||||
|                 # they are installed in the executable path.  Stub libraries used | ||||
|                 # only for linking are installed in the library path | ||||
|                 case `uname` in | ||||
|                     CYGWIN*) | ||||
|                         case $FILE in | ||||
|                             *.dll) | ||||
|                                 DEST="$DEST/../bin" | ||||
|                                 ;; | ||||
|                             *) | ||||
|                                 ;; | ||||
|                         esac | ||||
| 	                ;; | ||||
|                     *) | ||||
|                         ;; | ||||
|                 esac | ||||
|  | ||||
| 		PWDSAVE=`pwd` | ||||
|  | ||||
| 		# determine file's type | ||||
| 		if [ -h "$FILE" ] ; then | ||||
| 			#echo $FILE is a symlink | ||||
| 			# Unfortunately, cp -d isn't universal so we have to | ||||
| 			# use a work-around. | ||||
|  | ||||
| 			# Use ls -l to find the target that the link points to | ||||
| 			LL=`ls -l "$FILE"` | ||||
| 			for L in $LL ; do | ||||
| 				TARGET=$L | ||||
| 			done | ||||
| 			#echo $FILE is a symlink pointing to $TARGET | ||||
|  | ||||
| 			FILE=`basename "$FILE"` | ||||
| 			# Go to $DEST and make the link | ||||
| 			cd "$DEST"        # pushd | ||||
| 				$RM "$FILE" | ||||
| 				$SYMLINK "$TARGET" "$FILE" | ||||
| 			cd "$PWDSAVE"     # popd | ||||
|  | ||||
| 		elif [ -f "$FILE" ] ; then | ||||
| 			#echo "$FILE" is a regular file | ||||
| 			# Only copy if the files differ | ||||
| 			if ! cmp -s $FILE $DEST/`basename $FILE`; then | ||||
| 				$RM "$DEST/`basename $FILE`" | ||||
| 				cp "$FILE" "$DEST" | ||||
| 			fi | ||||
| 			if [ $MODE ] ; then | ||||
| 				FILE=`basename "$FILE"` | ||||
| 				chmod $MODE "$DEST/$FILE" | ||||
| 			fi | ||||
| 		else | ||||
| 			echo "Unknown type of argument: " "$FILE" | ||||
| 			exit 1 | ||||
| 		fi | ||||
|  | ||||
| 		I=`expr $I + 1` | ||||
| 	done | ||||
|  | ||||
| 	exit 0 | ||||
| fi | ||||
|  | ||||
| # If we get here, we didn't find anything to do | ||||
| echo "Usage:" | ||||
| echo "  install -d dir                      Create named directory" | ||||
| echo "  install [-m mode] file [...] dest   Install files in destination" | ||||
|  | ||||
| @@ -1,251 +0,0 @@ | ||||
| #!/usr/bin/env python | ||||
| # | ||||
| # Copyright 2012 VMware Inc | ||||
| # Copyright 2008-2009 Jose Fonseca | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| # of this software and associated documentation files (the "Software"), to deal | ||||
| # in the Software without restriction, including without limitation the rights | ||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| # copies of the Software, and to permit persons to whom the Software is | ||||
| # furnished to do so, subject to the following conditions: | ||||
| # | ||||
| # The above copyright notice and this permission notice shall be included in | ||||
| # all copies or substantial portions of the Software. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| # THE SOFTWARE. | ||||
| # | ||||
|  | ||||
| """Perf annotate for JIT code. | ||||
|  | ||||
| Linux `perf annotate` does not work with JIT code.  This script takes the data | ||||
| produced by `perf script` command, plus the diassemblies outputed by gallivm | ||||
| into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`. | ||||
|  | ||||
| See docs/llvmpipe.html for usage instructions. | ||||
|  | ||||
| The `perf script` output parser was derived from the gprof2dot.py script. | ||||
| """ | ||||
|  | ||||
|  | ||||
| import sys | ||||
| import os.path | ||||
| import re | ||||
| import optparse | ||||
| import subprocess | ||||
|  | ||||
|  | ||||
| class Parser: | ||||
|     """Parser interface.""" | ||||
|  | ||||
|     def __init__(self): | ||||
|         pass | ||||
|  | ||||
|     def parse(self): | ||||
|         raise NotImplementedError | ||||
|  | ||||
|  | ||||
| class LineParser(Parser): | ||||
|     """Base class for parsers that read line-based formats.""" | ||||
|  | ||||
|     def __init__(self, file): | ||||
|         Parser.__init__(self) | ||||
|         self._file = file | ||||
|         self.__line = None | ||||
|         self.__eof = False | ||||
|         self.line_no = 0 | ||||
|  | ||||
|     def readline(self): | ||||
|         line = self._file.readline() | ||||
|         if not line: | ||||
|             self.__line = '' | ||||
|             self.__eof = True | ||||
|         else: | ||||
|             self.line_no += 1 | ||||
|         self.__line = line.rstrip('\r\n') | ||||
|  | ||||
|     def lookahead(self): | ||||
|         assert self.__line is not None | ||||
|         return self.__line | ||||
|  | ||||
|     def consume(self): | ||||
|         assert self.__line is not None | ||||
|         line = self.__line | ||||
|         self.readline() | ||||
|         return line | ||||
|  | ||||
|     def eof(self): | ||||
|         assert self.__line is not None | ||||
|         return self.__eof | ||||
|  | ||||
|  | ||||
| mapFile = None | ||||
|  | ||||
| def lookupMap(filename, matchSymbol): | ||||
|     global mapFile | ||||
|     mapFile = filename | ||||
|     stream = open(filename, 'rt') | ||||
|     for line in stream: | ||||
|         start, length, symbol = line.split() | ||||
|  | ||||
|         start = int(start, 16) | ||||
|         length = int(length,16) | ||||
|  | ||||
|         if symbol == matchSymbol: | ||||
|             return start | ||||
|  | ||||
|     return None | ||||
|  | ||||
| def lookupAsm(filename, desiredFunction): | ||||
|     stream = open(filename + '.asm', 'rt') | ||||
|     while stream.readline() != desiredFunction + ':\n': | ||||
|         pass | ||||
|  | ||||
|     asm = [] | ||||
|     line = stream.readline().strip() | ||||
|     while line: | ||||
|         addr, instr = line.split(':', 1) | ||||
|         addr = int(addr) | ||||
|         asm.append((addr, instr)) | ||||
|         line = stream.readline().strip() | ||||
|  | ||||
|     return asm | ||||
|  | ||||
|  | ||||
|  | ||||
| samples = {} | ||||
|  | ||||
|  | ||||
| class PerfParser(LineParser): | ||||
|     """Parser for linux perf callgraph output. | ||||
|  | ||||
|     It expects output generated with | ||||
|  | ||||
|         perf record -g | ||||
|         perf script | ||||
|     """ | ||||
|  | ||||
|     def __init__(self, infile, symbol): | ||||
|         LineParser.__init__(self, infile) | ||||
| 	self.symbol = symbol | ||||
|  | ||||
|     def readline(self): | ||||
|         # Override LineParser.readline to ignore comment lines | ||||
|         while True: | ||||
|             LineParser.readline(self) | ||||
|             if self.eof() or not self.lookahead().startswith('#'): | ||||
|                 break | ||||
|  | ||||
|     def parse(self): | ||||
|         # read lookahead | ||||
|         self.readline() | ||||
|  | ||||
|         while not self.eof(): | ||||
|             self.parse_event() | ||||
|  | ||||
|         asm = lookupAsm(mapFile, self.symbol) | ||||
|  | ||||
|         addresses = samples.keys() | ||||
|         addresses.sort() | ||||
|         total_samples = 0 | ||||
|  | ||||
| 	sys.stdout.write('%s:\n' % self.symbol) | ||||
|         for address, instr in asm: | ||||
|             try: | ||||
|                 sample = samples.pop(address) | ||||
|             except KeyError: | ||||
|                 sys.stdout.write(6*' ') | ||||
|             else: | ||||
|                 sys.stdout.write('%6u' % (sample)) | ||||
|                 total_samples += sample | ||||
|             sys.stdout.write('%6u: %s\n' % (address, instr)) | ||||
|         print 'total:', total_samples | ||||
|         assert len(samples) == 0 | ||||
|  | ||||
|         sys.exit(0) | ||||
|  | ||||
|     def parse_event(self): | ||||
|         if self.eof(): | ||||
|             return | ||||
|  | ||||
|         line = self.consume() | ||||
|         assert line | ||||
|  | ||||
|         callchain = self.parse_callchain() | ||||
|         if not callchain: | ||||
|             return | ||||
|  | ||||
|     def parse_callchain(self): | ||||
|         callchain = [] | ||||
|         while self.lookahead(): | ||||
|             function = self.parse_call(len(callchain) == 0) | ||||
|             if function is None: | ||||
|                 break | ||||
|             callchain.append(function) | ||||
|         if self.lookahead() == '': | ||||
|             self.consume() | ||||
|         return callchain | ||||
|  | ||||
|     call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$') | ||||
|  | ||||
|     def parse_call(self, first): | ||||
|         line = self.consume() | ||||
|         mo = self.call_re.match(line) | ||||
|         assert mo | ||||
|         if not mo: | ||||
|             return None | ||||
|  | ||||
|         if not first: | ||||
|             return None | ||||
|  | ||||
|         function_name = mo.group('symbol') | ||||
|         if not function_name: | ||||
|             function_name = mo.group('address') | ||||
|  | ||||
|         module = mo.group('module') | ||||
|  | ||||
|         function_id = function_name + ':' + module | ||||
|  | ||||
|         address = mo.group('address') | ||||
|         address = int(address, 16) | ||||
|  | ||||
|         if function_name != self.symbol: | ||||
|             return None | ||||
|  | ||||
|         start_address = lookupMap(module, function_name) | ||||
|         address -= start_address | ||||
|  | ||||
|         #print function_name, module, address | ||||
|  | ||||
|         samples[address] = samples.get(address, 0) + 1 | ||||
|  | ||||
|         return True | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     """Main program.""" | ||||
|  | ||||
|     optparser = optparse.OptionParser( | ||||
|         usage="\n\t%prog [options] symbol_name") | ||||
|     (options, args) = optparser.parse_args(sys.argv[1:]) | ||||
|     if len(args) != 1: | ||||
|         optparser.error('wrong number of arguments') | ||||
|  | ||||
|     symbol = args[0] | ||||
|  | ||||
|     p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) | ||||
|     parser = PerfParser(p.stdout, symbol) | ||||
|     parser.parse() | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
|  | ||||
|  | ||||
| # vim: set sw=4 et: | ||||
| @@ -2,12 +2,6 @@ | ||||
|  | ||||
| # This script is used to generate the list of changes that | ||||
| # 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 | ||||
|   | ||||
| @@ -91,7 +91,6 @@ def AddOptions(opts): | ||||
| 	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)) | ||||
| @@ -99,6 +98,5 @@ def AddOptions(opts): | ||||
| 	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') | ||||
| 		opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) | ||||
|   | ||||
							
								
								
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| current | ||||
| autoconf | ||||
							
								
								
									
										226
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										226
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,226 @@ | ||||
| # Autoconf configuration | ||||
|  | ||||
| # Pull in the defaults | ||||
| include $(TOP)/configs/default | ||||
|  | ||||
| # This is generated by configure | ||||
| CONFIG_NAME = autoconf | ||||
|  | ||||
| # Compiler and flags | ||||
| CC = @CC@ | ||||
| CXX = @CXX@ | ||||
| OPT_FLAGS = @OPT_FLAGS@ | ||||
| ARCH_FLAGS = @ARCH_FLAGS@ | ||||
| PIC_FLAGS = @PIC_FLAGS@ | ||||
| DEFINES = @DEFINES@ | ||||
| API_DEFINES = @API_DEFINES@ | ||||
| SHARED_GLAPI = @SHARED_GLAPI@ | ||||
| CFLAGS_NOVISIBILITY = @CPPFLAGS@ @CFLAGS@ \ | ||||
| 	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) | ||||
| CXXFLAGS_NOVISIBILITY = @CPPFLAGS@ @CXXFLAGS@ \ | ||||
| 	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) | ||||
| CFLAGS = $(CFLAGS_NOVISIBILITY) @VISIBILITY_CFLAGS@ | ||||
| CXXFLAGS = $(CXXFLAGS_NOVISIBILITY) @VISIBILITY_CXXFLAGS@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| EXTRA_LIB_PATH = @EXTRA_LIB_PATH@ | ||||
| RADEON_CFLAGS = @RADEON_CFLAGS@ | ||||
| RADEON_LIBS = @RADEON_LIBS@ | ||||
| NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ | ||||
| NOUVEAU_LIBS = @NOUVEAU_LIBS@ | ||||
| INTEL_LIBS = @INTEL_LIBS@ | ||||
| INTEL_CFLAGS = @INTEL_CFLAGS@ | ||||
| X11_LIBS = @X11_LIBS@ | ||||
| X11_CFLAGS = @X11_CFLAGS@ | ||||
| LLVM_BINDIR = @LLVM_BINDIR@ | ||||
| LLVM_CFLAGS = @LLVM_CFLAGS@ | ||||
| LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ | ||||
| LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ | ||||
| LLVM_LDFLAGS = @LLVM_LDFLAGS@ | ||||
| LLVM_LIBDIR = @LLVM_LIBDIR@ | ||||
| LLVM_LIBS = @LLVM_LIBS@ | ||||
| LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ | ||||
| GLW_CFLAGS = @GLW_CFLAGS@ | ||||
| GLX_TLS = @GLX_TLS@ | ||||
|  | ||||
| # dlopen | ||||
| DLOPEN_LIBS = @DLOPEN_LIBS@ | ||||
|  | ||||
| # Source selection | ||||
| MESA_ASM_FILES = @MESA_ASM_FILES@ | ||||
|  | ||||
| # Misc tools and flags | ||||
| MAKE = @MAKE@ | ||||
| SHELL = @SHELL@ | ||||
| MKLIB_OPTIONS = @MKLIB_OPTIONS@ | ||||
| MKDEP = @MKDEP@ | ||||
| MKDEP_OPTIONS = @MKDEP_OPTIONS@ | ||||
| INSTALL = @INSTALL@ | ||||
| AWK = @AWK@ | ||||
| GREP = @GREP@ | ||||
| NM = @NM@ | ||||
|  | ||||
| # Perl | ||||
| PERL = @PERL@ | ||||
|  | ||||
| # Indent (used for generating dispatch tables) | ||||
| INDENT = @INDENT@ | ||||
| INDENT_FLAGS = @INDENT_FLAGS@ | ||||
|  | ||||
| # Python and flags (generally only needed by the developers) | ||||
| PYTHON2 = @PYTHON2@ | ||||
| PYTHON_FLAGS = -t -O -O | ||||
|  | ||||
| # Flex and Bison for GLSL compiler | ||||
| FLEX = @LEX@ | ||||
| BISON = @YACC@ | ||||
|  | ||||
| # Library names (base name) | ||||
| GL_LIB = @GL_LIB@ | ||||
| GLU_LIB = @GLU_LIB@ | ||||
| GLW_LIB = GLw | ||||
| OSMESA_LIB = @OSMESA_LIB@ | ||||
| GLESv1_CM_LIB = GLESv1_CM | ||||
| GLESv2_LIB = GLESv2 | ||||
| VG_LIB = OpenVG | ||||
| GLAPI_LIB = glapi | ||||
|  | ||||
| # Library names (actual file names) | ||||
| GL_LIB_NAME = @GL_LIB_NAME@ | ||||
| GLU_LIB_NAME = @GLU_LIB_NAME@ | ||||
| GLW_LIB_NAME = @GLW_LIB_NAME@ | ||||
| OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ | ||||
| EGL_LIB_NAME = @EGL_LIB_NAME@ | ||||
| GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ | ||||
| GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ | ||||
| VG_LIB_NAME = @VG_LIB_NAME@ | ||||
| GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ | ||||
|  | ||||
| # Globs used to install the lib and all symlinks | ||||
| GL_LIB_GLOB = @GL_LIB_GLOB@ | ||||
| GLU_LIB_GLOB = @GLU_LIB_GLOB@ | ||||
| GLW_LIB_GLOB = @GLW_LIB_GLOB@ | ||||
| OSMESA_LIB_GLOB = @OSMESA_LIB_GLOB@ | ||||
| EGL_LIB_GLOB = @EGL_LIB_GLOB@ | ||||
| GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ | ||||
| GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ | ||||
| VG_LIB_GLOB = @VG_LIB_GLOB@ | ||||
| GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ | ||||
|  | ||||
| # Directories to build | ||||
| LIB_DIR = @LIB_DIR@ | ||||
| SRC_DIRS = @SRC_DIRS@ | ||||
| GLU_DIRS = @GLU_DIRS@ | ||||
| DRIVER_DIRS = @DRIVER_DIRS@ | ||||
| GALLIUM_DIRS = @GALLIUM_DIRS@ | ||||
| GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@ | ||||
| GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@ | ||||
| GALLIUM_TARGET_DIRS = @GALLIUM_TARGET_DIRS@ | ||||
| GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@ | ||||
| GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a | ||||
| GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) | ||||
|  | ||||
| # Driver specific build vars | ||||
| DRI_DIRS = @DRI_DIRS@ | ||||
| EGL_PLATFORMS = @EGL_PLATFORMS@ | ||||
| EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ | ||||
|  | ||||
| # Dependencies | ||||
| X11_INCLUDES = @X11_INCLUDES@ | ||||
|  | ||||
| # GLw motif setup | ||||
| GLW_SOURCES = @GLW_SOURCES@ | ||||
| MOTIF_CFLAGS = @MOTIF_CFLAGS@ | ||||
|  | ||||
| # Library/program dependencies | ||||
| GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@ | ||||
| OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \ | ||||
| 	$(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@ | ||||
| EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @EGL_LIB_DEPS@ | ||||
| GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \ | ||||
| 	$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@ | ||||
| GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \ | ||||
| 	$(EXTRA_LIB_PATH) @GLW_LIB_DEPS@ | ||||
| GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_CM_LIB_DEPS@ | ||||
| GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@ | ||||
| VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@ | ||||
| GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) @GLAPI_LIB_DEPS@ | ||||
|  | ||||
| # DRI dependencies | ||||
| DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@ | ||||
| GALLIUM_DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @GALLIUM_DRI_LIB_DEPS@ | ||||
| LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ | ||||
| LIBDRM_LIB = @LIBDRM_LIBS@ | ||||
| DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ | ||||
| GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ | ||||
| EXPAT_INCLUDES = @EXPAT_INCLUDES@ | ||||
|  | ||||
| # Autoconf directories | ||||
| prefix = @prefix@ | ||||
| exec_prefix = @exec_prefix@ | ||||
| libdir = @libdir@ | ||||
| includedir = @includedir@ | ||||
|  | ||||
| # Installation directories (for make install) | ||||
| INSTALL_DIR = $(prefix) | ||||
| INSTALL_LIB_DIR = $(libdir) | ||||
| INSTALL_INC_DIR = $(includedir) | ||||
|  | ||||
| # DRI installation directories | ||||
| DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ | ||||
|  | ||||
| # Where libGL will look for DRI hardware drivers | ||||
| DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ | ||||
|  | ||||
| # EGL driver install directory | ||||
| EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ | ||||
|  | ||||
| # XVMC library install directory | ||||
| XVMC_LIB_INSTALL_DIR=@XVMC_LIB_INSTALL_DIR@ | ||||
|  | ||||
| # VDPAU library install directory | ||||
| VDPAU_LIB_INSTALL_DIR=@VDPAU_LIB_INSTALL_DIR@ | ||||
|  | ||||
| # VA library install directory | ||||
| VA_LIB_INSTALL_DIR=@VA_LIB_INSTALL_DIR@ | ||||
|  | ||||
| # Xorg driver install directory (for xorg state-tracker) | ||||
| XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ | ||||
|  | ||||
| # Path to OpenCL C library libclc | ||||
| LIBCLC_PATH = @LIBCLC_PATH@ | ||||
|  | ||||
| # pkg-config substitutions | ||||
| GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ | ||||
| GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ | ||||
| GL_PC_CFLAGS = @GL_PC_CFLAGS@ | ||||
| DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ | ||||
| GLU_PC_REQ = @GLU_PC_REQ@ | ||||
| GLU_PC_REQ_PRIV = @GLU_PC_REQ_PRIV@ | ||||
| GLU_PC_LIB_PRIV = @GLU_PC_LIB_PRIV@ | ||||
| GLU_PC_CFLAGS = @GLU_PC_CFLAGS@ | ||||
| GLW_PC_REQ_PRIV = @GLW_PC_REQ_PRIV@ | ||||
| GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@ | ||||
| GLW_PC_CFLAGS = @GLW_PC_CFLAGS@ | ||||
| OSMESA_PC_REQ = @OSMESA_PC_REQ@ | ||||
| OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ | ||||
| GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ | ||||
| GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ | ||||
| EGL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ | ||||
| EGL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ | ||||
| EGL_PC_CFLAGS = @GL_PC_CFLAGS@ | ||||
|  | ||||
| XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ | ||||
| XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ | ||||
| LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ | ||||
| LIBUDEV_LIBS = @LIBUDEV_LIBS@ | ||||
| WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ | ||||
| WAYLAND_LIBS = @WAYLAND_LIBS@ | ||||
|  | ||||
| MESA_LLVM = @MESA_LLVM@ | ||||
|  | ||||
| LLVM_VERSION = @LLVM_VERSION@ | ||||
|  | ||||
| HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ | ||||
|  | ||||
| GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ | ||||
| GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ | ||||
							
								
								
									
										182
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | ||||
| # Default/template configuration | ||||
|  | ||||
| # This is included by other config files which may override some | ||||
| # of these variables. | ||||
| # Think of this as a base class from which configs are derived. | ||||
|  | ||||
|  | ||||
| CONFIG_NAME = default | ||||
|  | ||||
| # Version info | ||||
| MESA_MAJOR=8 | ||||
| MESA_MINOR=1 | ||||
| MESA_TINY=0 | ||||
| MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) | ||||
|  | ||||
| # external projects.  This should be useless now that we use libdrm. | ||||
| DRM_SOURCE_PATH=$(TOP)/../drm | ||||
|  | ||||
| # Compiler and flags | ||||
| CC = cc | ||||
| CXX = CC | ||||
| CFLAGS = -O | ||||
| CXXFLAGS = -O | ||||
| LDFLAGS = | ||||
| GLU_CFLAGS =  | ||||
| GLX_TLS = no | ||||
|  | ||||
| # Compiler for building demos/tests/etc | ||||
| APP_CC = $(CC) | ||||
| APP_CXX = $(CXX) | ||||
|  | ||||
| # Misc tools and flags | ||||
| SHELL = /bin/sh | ||||
| MKLIB = $(SHELL) $(TOP)/bin/mklib | ||||
| MKLIB_OPTIONS =  | ||||
| MKDEP = makedepend | ||||
| MKDEP_OPTIONS = -fdepend | ||||
| MAKE = make | ||||
| FLEX = flex | ||||
| BISON = bison | ||||
| PKG_CONFIG = pkg-config | ||||
|  | ||||
| # Use MINSTALL for installing libraries, INSTALL for everything else | ||||
| MINSTALL = $(SHELL) $(TOP)/bin/minstall | ||||
| INSTALL = $(MINSTALL) | ||||
|  | ||||
| # Tools for regenerating glapi (generally only needed by the developers) | ||||
| PYTHON2 = python | ||||
| PYTHON_FLAGS = -t -O -O | ||||
| INDENT = indent | ||||
| INDENT_FLAGS = -i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool | ||||
|  | ||||
| # Library names (base name) | ||||
| GL_LIB = GL | ||||
| GLU_LIB = GLU | ||||
| GLW_LIB = GLw | ||||
| OSMESA_LIB = OSMesa | ||||
| EGL_LIB = EGL | ||||
| GLESv1_CM_LIB = GLESv1_CM | ||||
| GLESv2_LIB = GLESv2 | ||||
| VG_LIB = OpenVG | ||||
| GLAPI_LIB = glapi | ||||
|  | ||||
| # Library names (actual file names) | ||||
| GL_LIB_NAME = lib$(GL_LIB).so | ||||
| GLU_LIB_NAME = lib$(GLU_LIB).so | ||||
| GLW_LIB_NAME = lib$(GLW_LIB).so | ||||
| OSMESA_LIB_NAME = lib$(OSMESA_LIB).so | ||||
| EGL_LIB_NAME = lib$(EGL_LIB).so | ||||
| GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so | ||||
| GLESv2_LIB_NAME = lib$(GLESv2_LIB).so | ||||
| VG_LIB_NAME = lib$(VG_LIB).so | ||||
| GLAPI_LIB_NAME = lib$(GLAPI_LIB).so | ||||
|  | ||||
| # globs used to install the lib and all symlinks | ||||
| GL_LIB_GLOB = $(GL_LIB_NAME)* | ||||
| GLU_LIB_GLOB = $(GLU_LIB_NAME)* | ||||
| GLW_LIB_GLOB = $(GLW_LIB_NAME)* | ||||
| OSMESA_LIB_GLOB = $(OSMESA_LIB_NAME)* | ||||
| EGL_LIB_GLOB = $(EGL_LIB_NAME)* | ||||
| GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)* | ||||
| GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)* | ||||
| VG_LIB_GLOB = $(VG_LIB_NAME)* | ||||
| GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)* | ||||
|  | ||||
| # Optional assembly language optimization files for libGL | ||||
| MESA_ASM_FILES = | ||||
|  | ||||
| # GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in | ||||
| # order to build the Motif widget too) | ||||
| GLW_SOURCES = GLwDrawA.c | ||||
| MOTIF_CFLAGS = -I/usr/include/Motif1.2 | ||||
|  | ||||
|  | ||||
| # Directories to build | ||||
| LIB_DIR = lib | ||||
| SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \ | ||||
| 	gallium egl gallium/winsys gallium/targets glu | ||||
| GLU_DIRS = sgi | ||||
| DRIVER_DIRS = x11 osmesa | ||||
|  | ||||
| # Gallium directories and | ||||
| GALLIUM_DIRS = auxiliary drivers state_trackers | ||||
| GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a | ||||
| GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad i915 svga r300 nvfx nv50 | ||||
| GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) | ||||
| GALLIUM_WINSYS_DIRS = sw sw/xlib | ||||
| GALLIUM_TARGET_DIRS = libgl-xlib | ||||
| GALLIUM_STATE_TRACKERS_DIRS = glx vega | ||||
|  | ||||
| # native platforms EGL should support | ||||
| EGL_PLATFORMS = x11 | ||||
| EGL_CLIENT_APIS = $(GL_LIB) | ||||
|  | ||||
| # Library dependencies | ||||
| #EXTRA_LIB_PATH ?= | ||||
| GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread | ||||
| EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread | ||||
| OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||
| GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm | ||||
| GLW_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11 | ||||
| GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread | ||||
| GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread | ||||
| VG_LIB_DEPS    = $(EXTRA_LIB_PATH) -lpthread | ||||
| GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread | ||||
|  | ||||
| # Program dependencies - specific GL libraries added in Makefiles | ||||
| X11_LIBS = -lX11 | ||||
|  | ||||
| DLOPEN_LIBS = -ldl | ||||
|  | ||||
| # Installation directories (for make install) | ||||
| INSTALL_DIR = /usr/local | ||||
| INSTALL_LIB_DIR = $(INSTALL_DIR)/$(LIB_DIR) | ||||
| INSTALL_INC_DIR = $(INSTALL_DIR)/include | ||||
| DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri | ||||
|  | ||||
| # Where libGL will look for DRI hardware drivers | ||||
| DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR) | ||||
|  | ||||
| # EGL driver install directory | ||||
| EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl | ||||
|  | ||||
| # Xorg driver install directory (for xorg state-tracker) | ||||
| XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers | ||||
|  | ||||
| # pkg-config substitutions | ||||
| GL_PC_REQ_PRIV = | ||||
| GL_PC_LIB_PRIV = | ||||
| GL_PC_CFLAGS = | ||||
| DRI_PC_REQ_PRIV = | ||||
| GLU_PC_REQ = gl | ||||
| GLU_PC_REQ_PRIV = | ||||
| GLU_PC_LIB_PRIV = | ||||
| GLU_PC_CFLAGS = | ||||
| GLW_PC_REQ_PRIV = | ||||
| GLW_PC_LIB_PRIV = | ||||
| GLW_PC_CFLAGS = | ||||
| OSMESA_PC_REQ = | ||||
| OSMESA_PC_LIB_PRIV = | ||||
| GLESv1_CM_PC_REQ_PRIV = | ||||
| GLESv1_CM_PC_LIB_PRIV = | ||||
| GLESv1_CM_PC_CFLAGS = | ||||
| GLESv2_PC_REQ_PRIV = | ||||
| GLESv2_PC_LIB_PRIV = | ||||
| GLESv2_PC_CFLAGS = | ||||
| VG_PC_REQ_PRIV = | ||||
| VG_PC_LIB_PRIV = | ||||
| VG_PC_CFLAGS = | ||||
|  | ||||
| # default targets | ||||
| # this helps reduce the mismatch between our automake Makefiles and the old | ||||
| # custom Makefiles while we transition. | ||||
|  | ||||
| all: default | ||||
|  | ||||
| am--refresh: | ||||
|  | ||||
| distclean: clean | ||||
|  | ||||
| check: | ||||
| test: | ||||
							
								
								
									
										2400
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										2400
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										280
									
								
								docs/GL3.txt
									
									
									
									
									
								
							
							
						
						
									
										280
									
								
								docs/GL3.txt
									
									
									
									
									
								
							| @@ -7,223 +7,127 @@ 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, llvmpipe, softpipe | ||||
| GL 3.0: | ||||
|  | ||||
| GLSL 1.30                                             DONE | ||||
| 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 () | ||||
| Conditional rendering (GL_NV_conditional_render)      DONE (i965, r300, r600, swrast) | ||||
| Map buffer subranges (GL_ARB_map_buffer_range)        DONE (i965, r300, r600, swrast) | ||||
| Clamping controls (GL_ARB_color_buffer_float)         DONE (i965, r300, r600) | ||||
| Float textures, renderbuffers (GL_ARB_texture_float)  DONE (i965, r300, r600) | ||||
| GL_EXT_packed_float                                   DONE (i965, r600) | ||||
| GL_EXT_texture_shared_exponent                        DONE (i965, r600, swrast) | ||||
| Float depth buffers (GL_ARB_depth_buffer_float)       DONE (i965, r600) | ||||
| Framebuffer objects (GL_ARB_framebuffer_object)       DONE (i965, r300, r600, swrast) | ||||
| Half-float                                            DONE | ||||
| Non-normalized Integer texture/framebuffer formats    DONE (i965) | ||||
| 1D/2D Texture arrays                                  DONE | ||||
| Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (i965, r600, swrast) | ||||
| GL_EXT_texture_compression_rgtc                       DONE (i965, r300, r600, swrast) | ||||
| Red and red/green texture formats                     DONE (i965, swrast, gallium) | ||||
| Transform feedback (GL_EXT_transform_feedback)        DONE (i965) | ||||
| Vertex array objects (GL_APPLE_vertex_array_object)   DONE (i965, r300, r600, swrast) | ||||
| sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE (i965, r600) | ||||
| glClearBuffer commands                                DONE | ||||
| glGetStringi command                                  DONE | ||||
| glTexParameterI, glGetTexParameterI commands          DONE | ||||
|   glVertexAttribI commands                              DONE | ||||
|   Depth format cube textures                            DONE () | ||||
| glVertexAttribI commands                              ~50% done (converts int | ||||
|                                                                  values to floats) | ||||
| Depth format cube textures                            DONE | ||||
| GLX_ARB_create_context (GLX 1.4 is required)          DONE | ||||
|   Multisample anti-aliasing                             DONE (llvmpipe (*), softpipe (*), r300) | ||||
|  | ||||
| (*) llvmpipe and softpipe have fake Multisample anti-aliasing support | ||||
|  | ||||
|  | ||||
| GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe | ||||
| GL 3.1: | ||||
|  | ||||
|   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) | ||||
| GLSL 1.40                                             needs UBOs (in progress) | ||||
| Forward compatibile context support/deprecations      not started | ||||
| Instanced drawing (GL_ARB_draw_instanced)             DONE (i965, gallium, swrast) | ||||
| Buffer copying (GL_ARB_copy_buffer)                   DONE (i965, r300, r600, swrast) | ||||
| Primitive restart (GL_NV_primitive_restart)           DONE (i965, r600) | ||||
| 16 vertex texture image units                         DONE | ||||
| Texture buffer objs (GL_ARB_texture_buffer_object)    needs GL3.1 enabling (i965) | ||||
| Rectangular textures (GL_ARB_texture_rectangle)       DONE (i965, r300, r600, swrast) | ||||
| Uniform buffer objs (GL_ARB_uniform_buffer_object)    not started | ||||
| Signed normalized textures (GL_EXT_texture_snorm)     DONE (i965, r300, r600) | ||||
|  | ||||
|  | ||||
| GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe | ||||
| GL 3.2: | ||||
|  | ||||
|   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) | ||||
| Core/compatibility profiles                           not started | ||||
| GLSL 1.50                                             not started | ||||
| Geometry shaders (GL_ARB_geometry_shader4)            partially done (Zack) | ||||
| BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (i965, r300, r600, swrast) | ||||
| Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (i965, r300, r600, swrast) | ||||
| Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast) | ||||
| Provoking vertex (GL_ARB_provoking_vertex)            DONE (i965, r300, r600, swrast) | ||||
| Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE (i965, r600) | ||||
| Multisample textures (GL_ARB_texture_multisample)     not started | ||||
| Frag depth clamp (GL_ARB_depth_clamp)                 DONE (i965, r600, swrast) | ||||
| Fence objects (GL_ARB_sync)                           DONE (i965, r300, r600, swrast) | ||||
| GLX_ARB_create_context_profile                        DONE | ||||
|  | ||||
|  | ||||
| GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe | ||||
| GL 3.3: | ||||
|  | ||||
|   GL_ARB_blend_func_extended                            DONE () | ||||
|   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 () | ||||
| GLSL 3.30                                             new features in this version pretty much done | ||||
| GL_ARB_blend_func_extended                            DONE (i965, r600, softpipe) | ||||
| GL_ARB_explicit_attrib_location                       DONE (i915, i965, r300, r600, swrast) | ||||
| GL_ARB_occlusion_query2                               DONE (r300, r600, swrast) | ||||
| GL_ARB_sampler_objects                                DONE (i965, r300, r600) | ||||
| GL_ARB_shader_bit_encoding                            DONE | ||||
| GL_ARB_texture_rgb10_a2ui                             DONE (i965, r600) | ||||
| GL_ARB_texture_swizzle                                DONE (same as EXT version) (i965, r300, r600, swrast) | ||||
| GL_ARB_timer_query                                    DONE | ||||
| GL_ARB_instanced_arrays                               DONE (i965, r300, r600) | ||||
| GL_ARB_vertex_type_2_10_10_10_rev                     DONE (r600) | ||||
|  | ||||
|  | ||||
| GL 4.0, GLSL 4.00: | ||||
| GL 4.0: | ||||
|  | ||||
|   GL_ARB_draw_buffers_blend                            DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) | ||||
|   GL_ARB_draw_indirect                                 DONE (i965, nvc0, radeonsi, llvmpipe, softpipe) | ||||
|   GL_ARB_gpu_shader5                                   DONE (i965, nvc0) | ||||
|   - 'precise' qualifier                                DONE | ||||
|   - Dynamically uniform sampler array indices          DONE (r600) | ||||
|   - Dynamically uniform UBO array indices              DONE (r600) | ||||
|   - Implicit signed -> unsigned conversions            DONE | ||||
|   - Fused multiply-add                                 DONE () | ||||
|   - Packing/bitfield/conversion functions              DONE (r600) | ||||
|   - Enhanced textureGather                             DONE (r600, radeonsi) | ||||
|   - Geometry shader instancing                         DONE (r600) | ||||
|   - Geometry shader multiple streams                   DONE () | ||||
|   - Enhanced per-sample shading                        DONE (r600) | ||||
|   - Interpolation functions                            DONE (r600) | ||||
|   - New overload resolution rules                      DONE | ||||
|   GL_ARB_gpu_shader_fp64                               started (Dave) | ||||
|   GL_ARB_sample_shading                                DONE (i965, nv50, nvc0, r600, radeonsi) | ||||
| GLSL 4.0                                             not started | ||||
| GL_ARB_texture_query_lod                             not started | ||||
| GL_ARB_draw_buffers_blend                            DONE (i965, r600, softpipe) | ||||
| GL_ARB_draw_indirect                                 not started | ||||
| GL_ARB_gpu_shader5                                   not started | ||||
| GL_ARB_gpu_shader_fp64                               not started | ||||
| GL_ARB_sample_shading                                not started | ||||
| GL_ARB_shader_subroutine                             not started | ||||
|   GL_ARB_tessellation_shader                           started (Chris, Ilia) | ||||
|   GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe) | ||||
|   GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, 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_ARB_tessellation_shader                           not started | ||||
| GL_ARB_texture_buffer_object_rgb32                   not started | ||||
| GL_ARB_texture_cube_map_array                        not started | ||||
| GL_ARB_texture_gather                                not started | ||||
| GL_ARB_transform_feedback2                           DONE | ||||
| GL_ARB_transform_feedback3                           DONE | ||||
|  | ||||
|  | ||||
| GL 4.1, GLSL 4.10: | ||||
| GL 4.1: | ||||
|  | ||||
|   GL_ARB_ES2_compatibility                             DONE (i965, nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe) | ||||
|   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, llvmpipe) | ||||
| GLSL 4.1                                             not started | ||||
| GL_ARB_ES2_compatibility                             DONE (i965, r300, r600) | ||||
| GL_ARB_get_program_binary                            not started | ||||
| GL_ARB_separate_shader_objects                       some infrastructure done | ||||
| GL_ARB_shader_precision                              not started | ||||
| GL_ARB_vertex_attrib_64bit                           not started | ||||
| GL_ARB_viewport_array                                not started | ||||
|  | ||||
|  | ||||
| GL 4.2, GLSL 4.20: | ||||
| GL 4.2: | ||||
|  | ||||
|   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, llvmpipe, softpipe) | ||||
|   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, llvmpipe, softpipe) | ||||
|   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                                in progress (jljusten) | ||||
|   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, llvmpipe) | ||||
|   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, llvmpipe, softpipe) | ||||
|   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, llvmpipe, softpipe) | ||||
|   GL_ARB_texture_buffer_range                          DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe) | ||||
|   GL_ARB_texture_query_levels                          DONE (all drivers that support GLSL 1.30) | ||||
|   GL_ARB_texture_storage_multisample                   DONE (all drivers that support GL_ARB_texture_multisample) | ||||
|   GL_ARB_texture_view                                  DONE (i965, nv50, nvc0) | ||||
|   GL_ARB_vertex_attrib_binding                         DONE (all drivers) | ||||
|  | ||||
|  | ||||
| GL 4.4, GLSL 4.40: | ||||
|  | ||||
|   GL_MAX_VERTEX_ATTRIB_STRIDE                          DONE (all drivers) | ||||
|   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, llvmpipe, softpipe) | ||||
|   GL_ARB_texture_stencil8                              not started | ||||
|   GL_ARB_vertex_type_10f_11f_11f_rev                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) | ||||
|  | ||||
| GL 4.5, GLSL 4.50: | ||||
|  | ||||
|   GL_ARB_ES3_1_compatibility                           not started | ||||
|   GL_ARB_clip_control                                  DONE (nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe) | ||||
|   GL_ARB_conditional_render_inverted                   DONE (i965, nv50, nvc0, llvmpipe, softpipe) | ||||
|   GL_ARB_cull_distance                                 not started | ||||
|   GL_ARB_derivative_control                            DONE (i965, nv50, nvc0, r600) | ||||
|   GL_ARB_direct_state_access                           started | ||||
|   - Transform Feedback object                          started (Martin Peres) | ||||
|   - Buffer object                                      started (Laura Ekstrand) | ||||
|   - Framebuffer object                                 started (Laura Ekstrand) | ||||
|   - Renderbuffer object                                not started | ||||
|   - Texture object                                     started (Laura Ekstrand) | ||||
|   - Vertex array object                                started (Fredrik Höglund) | ||||
|   - Sampler object                                     not started | ||||
|   - Program Pipeline object                            not started | ||||
|   - Query object                                       started (Martin Peres) | ||||
|   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                         DONE (all - but needs GLX/EXT extension to be useful) | ||||
|   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                                in progress (jljusten) | ||||
|   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, llvmpipe, softpipe) | ||||
|   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) | ||||
| GLSL 4.2                                             not started | ||||
| GL_ARB_texture_compression_bptc                      not started | ||||
| GL_ARB_compressed_texture_pixel_storage              not started | ||||
| GL_ARB_shader_atomic_counters                        not started | ||||
| GL_ARB_texture_storage                               DONE (r300, r600, swrast) | ||||
| GL_ARB_transform_feedback_instanced                  DONE | ||||
| GL_ARB_base_instance                                 DONE (nv50, nvc0, r600, radeonsi) | ||||
| GL_ARB_shader_image_load_store                       not started | ||||
| GL_ARB_conservative_depth                            DONE (softpipe) | ||||
| GL_ARB_shading_language_420pack                      not started | ||||
| GL_ARB_internalformat_query                          not started | ||||
| GL_ARB_map_buffer_alignment                          not started | ||||
|  | ||||
|  | ||||
| More info about these features and the work involved can be found at | ||||
|   | ||||
| @@ -12,7 +12,7 @@ Contact | ||||
| 
 | ||||
| Status | ||||
| 
 | ||||
|     Obsolete. | ||||
|     Shipping (since Mesa version 2.2) | ||||
| 
 | ||||
| Version | ||||
| 
 | ||||
| @@ -16,7 +16,7 @@ IP Status | ||||
| 
 | ||||
| Status | ||||
| 
 | ||||
|     DEPRECATED - Support removed in Mesa 10.1. | ||||
|     Shipping in Mesa 7.1 | ||||
| 
 | ||||
| Version | ||||
| 
 | ||||
							
								
								
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,256 @@ | ||||
|  | ||||
|                           Mesa Cygwin/X11 Information | ||||
|  | ||||
|  | ||||
| WARNING | ||||
| ======= | ||||
|  | ||||
| If you installed X11 (packages xorg-x11-devel and xorg-x11-bin-dlls ) with the  | ||||
| latest setup.exe from Cygwin the GL (Mesa) libraries and include are already  | ||||
| installed in /usr/X11R6.  | ||||
|  | ||||
| The following will explain how to "replace" them. | ||||
|  | ||||
| Installation | ||||
| ============ | ||||
|  | ||||
| How to compile Mesa on Cygwin/X11 systems: | ||||
|  | ||||
| 1. Shared libs: | ||||
|     type 'make cygwin-sl'. | ||||
|  | ||||
|     When finished, the Mesa DLL will be in the Mesa-x.y/lib/ and  | ||||
|     Mesa-x.y/bin directories. | ||||
|  | ||||
|  | ||||
| 2. Static libs: | ||||
|     type 'make cygwin-static'. | ||||
|     When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. | ||||
|  | ||||
| Header and library files: | ||||
|    After you've compiled Mesa and tried the demos I recommend the following | ||||
|    procedure for "installing" Mesa. | ||||
|  | ||||
|    Copy the Mesa include/GL directory to /usr/X11R6/include: | ||||
| 	cp -a include/GL /usr/X11R6/include | ||||
|  | ||||
|    Copy the Mesa library files to /usr/X11R6/lib: | ||||
| 	cp -a lib/* /usr/X11R6ocal/lib | ||||
|  | ||||
|    Copy the Mesa bin files (used by the DLL stuff) to /usr/X11R6/bin: | ||||
| 	cp -a lib/cyg* /usr/X11R6/bin | ||||
|  | ||||
| Xt/Motif widgets: | ||||
|    If you want to use Mesa or OpenGL in your Xt/Motif program you can build | ||||
|    the widgets found in either the widgets-mesa or widgets-sgi directories. | ||||
|    The former were written for Mesa and the later are the original SGI | ||||
|    widgets.  Look in those directories for more information. | ||||
|    For the Motif widgets you must have downloaded the lesstif package. | ||||
|  | ||||
|  | ||||
| Using the library | ||||
| ================= | ||||
|  | ||||
| Configuration options: | ||||
|    The file src/mesa/main/config.h has many parameters which you can adjust | ||||
|    such as maximum number of lights, clipping planes, maximum texture size, | ||||
|    etc.  In particular, you may want to change DEPTH_BITS from 16 to 32 | ||||
|    if a 16-bit depth buffer isn't precise enough for your application. | ||||
|  | ||||
|  | ||||
| Shared libraries: | ||||
|    If you compile shared libraries (Win32 DLLS) you may have to set an  | ||||
|    environment variable to specify where the Mesa libraries are located.   | ||||
|    Set the PATH variable to include /your-dir/Mesa-2.6/bin.    | ||||
|    Otherwise, when you try to run a demo it may fail with a message saying  | ||||
|    that one or more DLL couldn't be found. | ||||
|  | ||||
|  | ||||
| Xt/Motif Widgets: | ||||
|    Two versions of the Xt/Motif OpenGL drawing area widgets are included: | ||||
|  | ||||
|       widgets-sgi/	SGI's stock widgets | ||||
|       widgets-mesa/	Mesa-tuned widgets | ||||
|  | ||||
|    Look in those directories for details | ||||
|  | ||||
|  | ||||
| Togl: | ||||
|    Togl is an OpenGL/Mesa widget for Tcl/Tk. | ||||
|    See http://togl.sourceforge.net for more information. | ||||
|  | ||||
|  | ||||
|  | ||||
| X Display Modes: | ||||
|    Mesa supports RGB(A) rendering into almost any X visual type and depth. | ||||
|  | ||||
|    The glXChooseVisual function tries its best to pick an appropriate visual | ||||
|    for the given attribute list.  However, if this doesn't suit your needs | ||||
|    you can force Mesa to use any X visual you want (any supported by your | ||||
|    X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL | ||||
|    environment variables.  When an RGB visual is requested, glXChooseVisual | ||||
|    will first look if the MESA_RGB_VISUAL variable is defined.  If so, it | ||||
|    will try to use the specified visual.  Similarly, when a color index | ||||
|    visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL | ||||
|    variable. | ||||
|  | ||||
|    The format of accepted values is:  <visual-class> <depth> | ||||
|    Here are some examples: | ||||
|  | ||||
|    using the C-shell: | ||||
| 	% setenv MESA_RGB_VISUAL "TrueColor 8"		// 8-bit TrueColor | ||||
| 	% setenv MESA_CI_VISUAL "PseudoColor 12"	// 12-bit PseudoColor | ||||
| 	% setenv MESA_RGB_VISUAL "PseudoColor 8"	// 8-bit PseudoColor | ||||
|  | ||||
|    using the KornShell: | ||||
| 	$ export MESA_RGB_VISUAL="TrueColor 8" | ||||
| 	$ export MESA_CI_VISUAL="PseudoColor 12" | ||||
| 	$ export MESA_RGB_VISUAL="PseudoColor 8" | ||||
|  | ||||
|  | ||||
| Double buffering: | ||||
|    Mesa can use either an X Pixmap or XImage as the backbuffer when in | ||||
|    double buffer mode.  Using GLX, the default is to use an XImage.  The | ||||
|    MESA_BACK_BUFFER environment variable can override this.  The valid | ||||
|    values for MESA_BACK_BUFFER are:  Pixmap and XImage (only the first | ||||
|    letter is checked, case doesn't matter). | ||||
|  | ||||
|    A pixmap is faster when drawing simple lines and polygons while an | ||||
|    XImage is faster when Mesa has to do pixel-by-pixel rendering.  If you | ||||
|    need depth buffering the XImage will almost surely be faster.  Exper- | ||||
|    iment with the MESA_BACK_BUFFER variable to see which is faster for | ||||
|    your application.   | ||||
|  | ||||
|  | ||||
| Colormaps: | ||||
|    When using Mesa directly or with GLX, it's up to the application writer | ||||
|    to create a window with an appropriate colormap.  The aux, tk, and GLUT | ||||
|    toolkits try to minimize colormap "flashing" by sharing colormaps when | ||||
|    possible.  Specifically, if the visual and depth of the window matches | ||||
|    that of the root window, the root window's colormap will be shared by | ||||
|    the Mesa window.  Otherwise, a new, private colormap will be allocated. | ||||
|  | ||||
|    When sharing the root colormap, Mesa may be unable to allocate the colors | ||||
|    it needs, resulting in poor color quality.  This can happen when a | ||||
|    large number of colorcells in the root colormap are already allocated. | ||||
|    To prevent colormap sharing in aux, tk and GLUT, define the environment | ||||
|    variable MESA_PRIVATE_CMAP.  The value isn't significant. | ||||
|  | ||||
|  | ||||
| Gamma correction: | ||||
|    To compensate for the nonlinear relationship between pixel values | ||||
|    and displayed intensities, there is a gamma correction feature in | ||||
|    Mesa.  Some systems, such as Silicon Graphics, support gamma | ||||
|    correction in hardware (man gamma) so you won't need to use Mesa's | ||||
|    gamma facility.  Other systems, however, may need gamma adjustment | ||||
|    to produce images which look correct.  If in the past you thought | ||||
|    Mesa's images were too dim, read on. | ||||
|  | ||||
|    Gamma correction is controlled with the MESA_GAMMA environment | ||||
|    variable.  Its value is of the form "Gr Gg Gb" or just "G" where | ||||
|    Gr is the red gamma value, Gg is the green gamma value, Gb is the | ||||
|    blue gamma value and G is one gamma value to use for all three | ||||
|    channels.  Each value is a positive real number typically in the | ||||
|    range 1.0 to 2.5.  The defaults are all 1.0, effectively disabling | ||||
|    gamma correction.  Examples using csh: | ||||
|  | ||||
| 	% setenv MESA_GAMMA "2.3 2.2 2.4"	// separate R,G,B values | ||||
| 	% setenv MESA_GAMMA "2.0"		// same gamma for R,G,B | ||||
|  | ||||
|    The demos/gamma.c program may help you to determine reasonable gamma | ||||
|    value for your display.  With correct gamma values, the color intensities | ||||
|    displayed in the top row (drawn by dithering) should nearly match those | ||||
|    in the bottom row (drawn as grays). | ||||
|  | ||||
|    Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well | ||||
|    on HP displays using the HP-ColorRecovery technology. | ||||
|  | ||||
|    Mesa implements gamma correction with a lookup table which translates | ||||
|    a "linear" pixel value to a gamma-corrected pixel value.  There is a | ||||
|    small performance penalty.  Gamma correction only works in RGB mode. | ||||
|    Also be aware that pixel values read back from the frame buffer will | ||||
|    not be "un-corrected" so glReadPixels may not return the same data | ||||
|    drawn with glDrawPixels. | ||||
|  | ||||
|    For more information about gamma correction see: | ||||
|    http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html | ||||
|  | ||||
|  | ||||
| Overlay Planes | ||||
|  | ||||
|    Overlay planes in the frame buffer are supported by Mesa but require | ||||
|    hardware and X server support.  To determine if your X server has | ||||
|    overlay support you can test for the SERVER_OVERLAY_VISUALS property: | ||||
|  | ||||
| 	xprop -root | grep SERVER_OVERLAY_VISUALS | ||||
|  | ||||
|  | ||||
| HPCR glClear(GL_COLOR_BUFFER_BIT) dithering | ||||
|  | ||||
|    If you set the MESA_HPCR_CLEAR environment variable then dithering | ||||
|    will be used when clearing the color buffer.  This is only applicable | ||||
|    to HP systems with the HPCR (Color Recovery) system. | ||||
|  | ||||
|  | ||||
| Extensions | ||||
| ========== | ||||
|    There are three Mesa-specific GLX extensions at this time. | ||||
|  | ||||
|    GLX_MESA_pixmap_colormap  | ||||
|  | ||||
|       This extension adds the GLX function: | ||||
|  | ||||
|          GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, | ||||
|                                            Pixmap pixmap, Colormap cmap ) | ||||
|  | ||||
|       It is an alternative to the standard glXCreateGLXPixmap() function. | ||||
|       Since Mesa supports RGB rendering into any X visual, not just True- | ||||
|       Color or DirectColor, Mesa needs colormap information to convert RGB | ||||
|       values into pixel values.  An X window carries this information but a | ||||
|       pixmap does not.  This function associates a colormap to a GLX pixmap. | ||||
|       See the xdemos/glxpixmap.c file for an example of how to use this | ||||
|       extension. | ||||
|  | ||||
|    GLX_MESA_release_buffers | ||||
|  | ||||
|       Mesa associates a set of ancillary (depth, accumulation, stencil and | ||||
|       alpha) buffers with each X window it draws into.  These ancillary | ||||
|       buffers are allocated for each X window the first time the X window | ||||
|       is passed to glXMakeCurrent().  Mesa, however, can't detect when an | ||||
|       X window has been destroyed in order to free the ancillary buffers. | ||||
|  | ||||
|       The best it can do is to check for recently destroyed windows whenever | ||||
|       the client calls the glXCreateContext() or glXDestroyContext() | ||||
|       functions.  This may not be sufficient in all situations though. | ||||
|  | ||||
|       The GLX_MESA_release_buffers extension allows a client to explicitly | ||||
|       deallocate the ancillary buffers by calling glxReleaseBuffersMESA() | ||||
|       just before an X window is destroyed.  For example: | ||||
|  | ||||
|          #ifdef GLX_MESA_release_buffers | ||||
|             glXReleaseBuffersMESA( dpy, window ); | ||||
|          #endif | ||||
|          XDestroyWindow( dpy, window ); | ||||
|  | ||||
|       This extension is new in Mesa 2.0. | ||||
|  | ||||
|    GLX_MESA_copy_sub_buffer | ||||
|  | ||||
|       This extension adds the glXCopySubBufferMESA() function.  It works | ||||
|       like glXSwapBuffers() but only copies a sub-region of the window | ||||
|       instead of the whole window. | ||||
|  | ||||
|       This extension is new in Mesa version 2.6 | ||||
|  | ||||
|  | ||||
|  | ||||
| Summary of X-related environment variables: | ||||
|    MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) | ||||
|    MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) | ||||
|    MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) | ||||
|    MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) | ||||
|    MESA_GAMMA - gamma correction coefficients (X only) | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| README.CYGWIN - lassauge April 2004 - based on README.X11 | ||||
							
								
								
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
|  | ||||
| 			Mesa 3.0 MITS Information | ||||
|  | ||||
|  | ||||
| This software is distributed under the terms of the GNU Library | ||||
| General Public License, see the LICENSE file for details. | ||||
|  | ||||
|  | ||||
| This document is a preliminary introduction to help you get | ||||
| started. For more detaile information consult the web page. | ||||
|  | ||||
| http://10-dencies.zkm.de/~mesa/ | ||||
|  | ||||
|  | ||||
|  | ||||
| Version 0.1 (Yes it's very alpha code so be warned!) | ||||
| Contributors:  | ||||
|   Emil Briggs    	(briggs@bucky.physics.ncsu.edu) | ||||
|   David Bucciarelli 	(tech.hmw@plus.it) | ||||
|   Andreas Schiffler 	(schiffler@zkm.de) | ||||
|  | ||||
|  | ||||
|  | ||||
| 1. Requirements: | ||||
|      Mesa 3.0. | ||||
|      An SMP capable machine running Linux 2.x | ||||
|      libpthread installed on your machine. | ||||
|  | ||||
|  | ||||
| 2. What does MITS stand for? | ||||
|      MITS stands for Mesa Internal Threading System. By adding | ||||
|      internal threading to Mesa it should be possible to improve | ||||
|      performance of OpenGL applications on SMP machines. | ||||
|  | ||||
|  | ||||
| 3. Do applications have to be recoded to take advantage of MITS? | ||||
|      No. The threading is internal to Mesa and transparent to | ||||
|      applications. | ||||
|  | ||||
|  | ||||
| 4. Will all applications benefit from the current implementation of MITS? | ||||
|      No. This implementation splits the processing of the vertex buffer | ||||
|      over two threads. There is a certain amount of overhead involved | ||||
|      with the thread synchronization and if there is not enough work | ||||
|      to be done the extra overhead outweighs any speedup from using | ||||
|      dual processors. You will not for example see any speedup when | ||||
|      running Quake because it uses GL_POLYGON and there is only one | ||||
|      polygon for each vertex buffer processed. Test results on a | ||||
|      dual 200 Mhz. Pentium Pro system show that one needs around | ||||
|      100-200 vertices in the vertex buffer before any there is any | ||||
|      appreciable benefit from the threading. | ||||
|  | ||||
|  | ||||
| 5. Are there any parameters that I can tune to try to improve performance. | ||||
|      Yes. You can try to vary the size of the vertex buffer which is | ||||
|      define in VB_MAX located in the file src/vb.h from your top level | ||||
|      Mesa distribution. The number needs to be a multiple of 12 and | ||||
|      the optimum value will probably depend on the capabilities of | ||||
|      your machine and the particular application you are running. | ||||
|  | ||||
|  | ||||
| 6. Are there any ways I can modify the application to improve its | ||||
|    performance with the MITS? | ||||
|      Yes. Try to use as many vertices between each Begin/End pair | ||||
|      as possbile. This will reduce the thread synchronization | ||||
|      overhead. | ||||
|  | ||||
|  | ||||
| 7. What sort of speedups can I expect? | ||||
|      On some benchmarks performance gains of up to 30% have been | ||||
|      observerd. Others may see no gain at all and in a few rare | ||||
|      cases even some degradation. | ||||
|  | ||||
|  | ||||
| 8. What still needs to be done? | ||||
|      Lots of testing and benchmarking. | ||||
|      A portable implementation that works within the Mesa thread API. | ||||
|      Threading of additional areas of Mesa to improve performance | ||||
|      even more. | ||||
|  | ||||
|  | ||||
|  | ||||
| Installation: | ||||
|  | ||||
|    1. This assumes that you already have a working Mesa 3.0 installation | ||||
|       from source. | ||||
|    2. Place the tarball MITS.tar.gz in your top level Mesa directory. | ||||
|    3. Unzip it and untar it. It will replace the following files in | ||||
|       your Mesa source tree so back them up if you want to save them. | ||||
|  | ||||
|  | ||||
| 	 README.MITS | ||||
|          Make-config | ||||
| 	 Makefile | ||||
| 	 mklib.glide | ||||
|          src/vbxform.c | ||||
| 	 src/vb.h | ||||
|  | ||||
|    4. Rebuild Mesa using the command | ||||
|  | ||||
|           make linux-386-glide-mits | ||||
|  | ||||
							
								
								
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,207 @@ | ||||
|  | ||||
|              Info on using Mesa 3.0 with Linux Quake I and Quake II | ||||
|  | ||||
|  | ||||
|  | ||||
| Disclaimer | ||||
| ---------- | ||||
|  | ||||
| I am _not_ a Quake expert by any means.  I pretty much only run it to | ||||
| test Mesa.  There have been a lot of questions about Linux Quake and | ||||
| Mesa so I'm trying to provide some useful info here.  If this file | ||||
| doesn't help you then you should look elsewhere for help.  The Mesa | ||||
| mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup | ||||
| might be good. | ||||
|  | ||||
| Again, all the information I have is in this file.  Please don't email | ||||
| me with questions. | ||||
|  | ||||
| If you have information to contribute to this file please send it to | ||||
| me at brianp@elastic.avid.com | ||||
|  | ||||
|  | ||||
|  | ||||
| Linux Quake | ||||
| ----------- | ||||
|  | ||||
| You can get Linux Quake from http://www.idsoftware.com/ | ||||
|  | ||||
| Quake I and II for Linux were tested with, and include, Mesa 2.6.  You | ||||
| shouldn't have too many problems if you simply follow the instructions | ||||
| in the Quake distribution. | ||||
|  | ||||
|  | ||||
|  | ||||
| RedHat 5.0 Linux problems | ||||
| ------------------------- | ||||
|  | ||||
| RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas | ||||
| previous RedHat and other Linux distributions use "libc5" for its | ||||
| runtime C library. | ||||
|  | ||||
| Linux Quake I and II were compiled for libc5.  If you compile Mesa | ||||
| on a RedHat 5.x system the resulting libMesaGL.so file will not work | ||||
| with Linux Quake because of the different C runtime libraries. | ||||
| The symptom of this is a segmentation fault soon after starting Quake. | ||||
|  | ||||
| If you want to use a newer version of Mesa (like 3.x) with Quake on | ||||
| RedHat 5.x then read on. | ||||
|  | ||||
| The solution to the C library problem is to force Mesa to use libc5. | ||||
| libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. | ||||
|  | ||||
| Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following | ||||
| info: | ||||
|  | ||||
| >   I only know what works on a RedHat 5.0 distribution. RH5 includes | ||||
| > a full set of libraries for both libc5 and glibc. The loader ld.so | ||||
| > uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs | ||||
| > linked against libc5 while it uses the glibc libraries in /lib and | ||||
| > /usr/lib for programs linked against glibc. | ||||
| >  | ||||
| > Anyway I changed line 41 of mklib.glide to | ||||
| >     GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" | ||||
| >  | ||||
| > And I started quake2 up with a script like this | ||||
| > #!/bin/csh | ||||
| > setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib | ||||
| > setenv MESA_GLX_FX f | ||||
| > ./quake2 +set vid_ref gl | ||||
| > kbd_mode -a | ||||
| > reset | ||||
|  | ||||
|  | ||||
| I've already patched the mklib.glide file.  You'll have to start Quake | ||||
| with the script shown above though. | ||||
|  | ||||
|  | ||||
|  | ||||
| ********************** | ||||
|  | ||||
| Daryll Strauss writes: | ||||
|  | ||||
| Here's my thoughts on the problem. On a RH 5.x system, you can NOT build | ||||
| a libc5 executable or library. Red Hat just doesn't include the right | ||||
| stuff to do it. | ||||
|  | ||||
| Since Quake is a libc5 based application, you are in trouble. You need | ||||
| libc5 libraries. | ||||
|  | ||||
| What can you do about it? Well there's a package called gcc5 that does | ||||
| MOST of the right stuff to compile with libc5. (It brings back older | ||||
| header files, makes appropriate symbolic links for libraries, and sets | ||||
| up the compiler to use the correct directories) You can find gcc5 here:  | ||||
| ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm | ||||
|  | ||||
| No, this isn't quite enough. There are still a few tricks to getting | ||||
| Mesa to compile as a libc5 application. First you have to make sure that | ||||
| every compile uses gcc5 instead of gcc. Second, in some cases the link | ||||
| line actually lists -L/usr/lib which breaks gcc5 (because it forces you | ||||
| to use the glibc version of things) | ||||
|  | ||||
| If you get all the stuff correctly compiled with gcc5 it should work. | ||||
| I've run Mesa 3.0B6  and its demos in a window with my Rush on a Red Hat | ||||
| 5.1 system. It is a big hassle, but it can be done. I've only made Quake | ||||
| segfault, but I think that's from my libRush using the wrong libc.  | ||||
|  | ||||
| Yes, mixing libc5 and glibc is a major pain. I've been working to get | ||||
| all my libraries compiling correctly with this setup. Someone should | ||||
| make an RPM out of it and feed changes back to Brian once they get it | ||||
| all working. If no one else has done so by the time I get the rest of my | ||||
| stuff straightened out, I'll try to do it myself. | ||||
|  | ||||
| 							- |Daryll | ||||
|  | ||||
|  | ||||
|  | ||||
| ********************* | ||||
|  | ||||
| David Bucciarelli (tech.hmw@plus.it) writes: | ||||
|  | ||||
| I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is | ||||
| working fine for me.  I had only to make a small change to the | ||||
| Mesa-3.0/mklib.glide file, from: | ||||
|  | ||||
|  | ||||
|     GLIDELIBS="-L/usr/local/glide/lib -lglide2x | ||||
| -L/usr/i486-linux-libc5/lib -lm" | ||||
|  | ||||
| to: | ||||
|  | ||||
|     GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" | ||||
|  | ||||
| and to make two symbolic links: | ||||
|  | ||||
| [david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 | ||||
| [david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 | ||||
|  | ||||
| I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it | ||||
| includes also the Glide for the libc5). I'm not using the /dev/3Dfx and | ||||
| running QuakeII as root with the following env. var: | ||||
|  | ||||
| export | ||||
| LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib | ||||
|  | ||||
| I think that all problems are related to the glibc, Quake will never | ||||
| work if you get the following output: | ||||
|  | ||||
| [david@localhost Mesa]$ ldd lib/libMesaGL.so | ||||
|         libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) | ||||
|         libm.so.6 => /lib/libm.so.6 (0x40244000) | ||||
|         libc.so.6 => /lib/libc.so.6 (0x4025d000) | ||||
|         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) | ||||
|  | ||||
| You must get the following outputs: | ||||
|  | ||||
| [david@localhost Mesa]# ldd lib/libMesaGL.so | ||||
|         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||
| (0x400f3000) | ||||
|  | ||||
| [root@localhost quake2]# ldd quake2 | ||||
|         libdl.so.1 => /lib/libdl.so.1 (0x40005000) | ||||
|         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) | ||||
|         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) | ||||
|  | ||||
| [root@localhost quake2]# ldd ref_gl.so | ||||
|         libMesaGL.so.2 => | ||||
| /dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) | ||||
|         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||
| (0x401d9000) | ||||
|         libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 | ||||
| (0x40324000) | ||||
|         libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 | ||||
| (0x403b7000) | ||||
|         libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 | ||||
| (0x403c1000) | ||||
|         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) | ||||
|         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) | ||||
|  | ||||
|  | ||||
| *********************** | ||||
|  | ||||
| Steve Davies (steve@one47.demon.co.uk) writes: | ||||
|  | ||||
|  | ||||
| Try using: | ||||
|  | ||||
|     export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib | ||||
|     ./quake2 +set vid_ref gl | ||||
|  | ||||
| to start the game... Works for me, but assumes that you have the | ||||
| compatability libc5 RPMs installed. | ||||
|  | ||||
|  | ||||
| *************************** | ||||
|  | ||||
| WWW resources - you may find additional Linux Quake help at these URLs: | ||||
|  | ||||
|  | ||||
| http://quake.medina.net/howto | ||||
|  | ||||
| http://webpages.mr.net/bobz | ||||
|  | ||||
| http://www.linuxgames.com/quake2/ | ||||
|  | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
							
								
								
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
|  | ||||
|  | ||||
| Mesa Threads README | ||||
| ------------------- | ||||
|  | ||||
| Thread safety was introduced in Mesa 2.6 by John Stone and | ||||
| Christoph Poliwoda. | ||||
|  | ||||
| It was redesigned in Mesa 3.3 so that thread safety is | ||||
| supported by default (on systems which support threads, | ||||
| that is).  There is no measurable penalty on single | ||||
| threaded applications. | ||||
|  | ||||
| NOTE that the only _driver_ which is thread safe at this time | ||||
| is the OS/Mesa driver! | ||||
|  | ||||
|  | ||||
| At present the mthreads code supports three thread APIS: | ||||
|   1) POSIX threads (aka pthreads). | ||||
|   2) Solaris / Unix International threads. | ||||
|   3) Win32 threads (Win 95/NT). | ||||
|  | ||||
| Support for other thread libraries can be added src/glthread.[ch] | ||||
|  | ||||
|  | ||||
| In order to guarantee proper operation, it is | ||||
| necessary for both Mesa and application code to use the same threads API. | ||||
| So, if your application uses Sun's thread API, then you should build Mesa | ||||
| using one of the targets for Sun threads. | ||||
|  | ||||
| The mtdemos directory contains some example programs which use  | ||||
| multiple threads to render to osmesa rendering context(s). | ||||
|  | ||||
| Linux users should be aware that there exist many different POSIX | ||||
| threads packages. The best solution is the linuxthreads package | ||||
| (http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the | ||||
| only one that really supports multiprocessor machines (AFAIK). See | ||||
| http://pauillac.inria.fr/~xleroy/linuxthreads/README for further | ||||
| information about the usage of linuxthreads. | ||||
|  | ||||
| If you are interested in helping with thread safety work in Mesa | ||||
| join the Mesa developers mailing list and post your proposal. | ||||
|  | ||||
|  | ||||
| Regards, | ||||
|   John Stone           -- j.stone@acm.org  johns@cs.umr.edu | ||||
|   Christoph Poliwoda   -- poliwoda@volumegraphics.com | ||||
|  | ||||
|  | ||||
| Version info: | ||||
|    Mesa 2.6 - initial thread support. | ||||
|    Mesa 3.3 - thread support mostly rewritten (Brian Paul) | ||||
| @@ -1,44 +0,0 @@ | ||||
| The software may implement third party technologies (e.g. third party | ||||
| libraries) that are not licensed to you by AMD and for which you may need | ||||
| to obtain licenses from other parties.  Unless explicitly stated otherwise, | ||||
| these third party technologies are not licensed hereunder.  Such third | ||||
| party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4, | ||||
| AVC, and VC-1. | ||||
|  | ||||
| For MPEG-2 Encoding Products ANY USE OF THIS PRODUCT IN ANY MANNER OTHER | ||||
| THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD FOR ENCODING VIDEO | ||||
| INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY PROHIBITED WITHOUT A LICENSE | ||||
| UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSES IS | ||||
| AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers Green Circle, Suite 400E, | ||||
| Greenwood Village, Colorado 80111 U.S.A. | ||||
|  | ||||
| WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY | ||||
| KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING | ||||
| BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A | ||||
| PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN | ||||
| UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR | ||||
| COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS | ||||
| ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied | ||||
| warranties, so the above exclusion may not apply to You. | ||||
|  | ||||
| LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT, | ||||
| UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL, | ||||
| INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR | ||||
| THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You | ||||
| for all damages, losses, and causes of action (whether in contract, tort | ||||
| (including negligence) or otherwise) exceed the amount of $100 USD.  You agree | ||||
| to defend, indemnify and hold harmless AMD and its licensors, and any of their | ||||
| directors, officers, employees, affiliates or agents from and against any and | ||||
| all loss, damage, liability and other expenses (including reasonable | ||||
| attorneys' fees), resulting from Your use of the Software or violation of the | ||||
| terms and conditions of this Agreement. | ||||
|  | ||||
| U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED | ||||
| RIGHTS." Use, duplication, or disclosure by the Government is subject to the | ||||
| restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or | ||||
| its successor.  Use of the Software by the Government constitutes | ||||
| acknowledgement of AMD's proprietary rights in them. | ||||
|  | ||||
| EXPORT RESTRICTIONS: The Software may be subject to export restrictions as | ||||
| stated in the Software License Agreement. | ||||
| @@ -1,43 +0,0 @@ | ||||
| The software may implement third party technologies (e.g. third party | ||||
| libraries) that are not licensed to you by AMD and for which you may need | ||||
| to obtain licenses from other parties.  Unless explicitly stated otherwise, | ||||
| these third party technologies are not licensed hereunder.  Such third | ||||
| party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4, | ||||
| AVC, and VC-1.   | ||||
|  | ||||
| For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER | ||||
| THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY | ||||
| PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT | ||||
| PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers | ||||
| Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A. | ||||
|  | ||||
| WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY | ||||
| KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING | ||||
| BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A | ||||
| PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN | ||||
| UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR | ||||
| COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS | ||||
| ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied | ||||
| warranties, so the above exclusion may not apply to You. | ||||
|  | ||||
| LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT, | ||||
| UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL, | ||||
| INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR | ||||
| THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You | ||||
| for all damages, losses, and causes of action (whether in contract, tort | ||||
| (including negligence) or otherwise) exceed the amount of $100 USD.  You agree | ||||
| to defend, indemnify and hold harmless AMD and its licensors, and any of their | ||||
| directors, officers, employees, affiliates or agents from and against any and | ||||
| all loss, damage, liability and other expenses (including reasonable | ||||
| attorneys' fees), resulting from Your use of the Software or violation of the | ||||
| terms and conditions of this Agreement. | ||||
|  | ||||
| U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED | ||||
| RIGHTS." Use, duplication, or disclosure by the Government is subject to the | ||||
| restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or | ||||
| its successor.  Use of the Software by the Government constitutes | ||||
| acknowledgement of AMD's proprietary rights in them. | ||||
|  | ||||
| EXPORT RESTRICTIONS: The Software may be subject to export restrictions as | ||||
| stated in the Software License Agreement. | ||||
							
								
								
									
										38
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								docs/README.VMS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
|  | ||||
| VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl) | ||||
|  | ||||
|  | ||||
| The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but | ||||
| probably also works for other versions. | ||||
|  | ||||
| At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB, | ||||
| LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the | ||||
| directory [.DEMOS] can be build. | ||||
| However, feel free to create the missing "decrip.mms-files" in the other | ||||
| directories. | ||||
|  | ||||
|  The make files were tested | ||||
| using the DIGITAL make utility called MMS.  There is also a public domain | ||||
| clone available (MMK) and I  think, but it is not tested, that this | ||||
| utility will give (hardly) any problem. | ||||
|  | ||||
| To make everything just type MMS (or MMK) in the main directory of | ||||
| mesagl.  For MMS the deafult makefile is called descrip.mms, and | ||||
| that is what I have called it.  I included alse some config files, | ||||
| all having mms somewhere in the name which all the makefiles need | ||||
| (just as your unix makefiles). | ||||
|  | ||||
| On Alpha platforms at default a sharable images for the libraries are created. | ||||
| To get a static library make it by typing MMS/MACRO=(NOSHARE=1). | ||||
| On VAX platforms only static libraries can be build. | ||||
|  | ||||
| 23-sep-2005 | ||||
| changed default compilation to use /float=ieee/ieee=denorm. The reason for  | ||||
| this is that it makes Mesa on OpenVMS better compatible with other platforms | ||||
| and other packages for VMS that I maintain. | ||||
| For more information see | ||||
|       http://nchrem.tnw.tudelft.nl/openvms | ||||
|       https://bugs.freedesktop.org/show_bug.cgi?id=4270 | ||||
| You may want to compile Mesa to use VAX-floating point arithmetic, instead | ||||
| of IEEE floating point by removing the /float=IEEE/denorm flag from the | ||||
| compiler options in the descrip.mms files. | ||||
| @@ -1,6 +1,6 @@ | ||||
| File: docs/README.WIN32 | ||||
|  | ||||
| Last updated: 21 June 2013 | ||||
| Last updated: 23 April 2011 | ||||
|  | ||||
|  | ||||
| Quick Start | ||||
| @@ -30,21 +30,6 @@ At this time, only the gallium GDI driver is known to work. | ||||
| Source code also exists in the tree for other drivers in | ||||
| 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 | ||||
| ------- | ||||
|   | ||||
							
								
								
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,279 @@ | ||||
|  | ||||
|                             Mesa 5.1 release notes | ||||
|  | ||||
|                               December 17, 2003 | ||||
|  | ||||
|                                 PLEASE READ!!!! | ||||
|  | ||||
|  | ||||
|  | ||||
| Introduction | ||||
| ------------ | ||||
|  | ||||
| Mesa uses an even/odd version number scheme like the Linux kernel. | ||||
| Even-numbered versions (such as 5.0) designate stable releases. | ||||
| Odd-numbered versions (such as 5.1) designate new developmental releases. | ||||
|  | ||||
|  | ||||
| Bug fixes | ||||
| --------- | ||||
| See the VERSIONS file for a list of bugs fixed in this release. | ||||
|  | ||||
|  | ||||
|  | ||||
| New Features in Mesa 5.1 | ||||
| ------------------------ | ||||
|  | ||||
| GL_ARB_vertex_program / GL_ARB_fragment_program | ||||
|    Michal Krol and Karl Rasche implemented these extensions.  Thanks! | ||||
|    Be aware that there may be some rough edges and lurking bugs. | ||||
|  | ||||
| GL_ATI_texture_env_combine3 extension | ||||
|    This adds a few new texture combine modes. | ||||
|    Contributed by Ian Romanick. | ||||
|  | ||||
| GL_SGI_texture_color_table | ||||
|    Adds a color table lookup to the RGBA texture path.  There's a separate | ||||
|    color table for each texture unit. | ||||
|    Contributed by Eric Plante. | ||||
|  | ||||
| GL_NV_fragment_program | ||||
|    NVIDIA's fragment-level programming feature. | ||||
|    Possible lurking bugs: | ||||
|      - the DDX and DDY commands aren't fully tested | ||||
|      - there may be bugs in the parser | ||||
|      - the TEX and TXP instructions both do perspective correction | ||||
|      - the pack/unpack instructions may not be correct | ||||
|  | ||||
| GL_EXT_depth_bounds_test | ||||
|    This extension adds a scissor-like test for the Z axis.  It's used to | ||||
|    optimize stencil-volume shadow algorithms. | ||||
|  | ||||
| GL_NV_light_max_exponent | ||||
|    Lifts the 128 limit for max light exponent. | ||||
|  | ||||
| GL_EXT_texture_rectangle | ||||
|    Identical to GL_NV_texture_rectangle | ||||
|  | ||||
| GL_ARB_occlusion_query | ||||
|    Useful for visibility-based culling. | ||||
|  | ||||
| GL_ARB_texture_non_power_of_two | ||||
|    Removes the restriction that texture dimensions must be powers of two. | ||||
|  | ||||
| GL_ARB_vertex_buffer_object | ||||
|    Allows server-side vertex arrays, optimized host/card data transfers, etc. | ||||
|  | ||||
| GL_ARB_point_sprite | ||||
|    ARB-approved version of GL_NV_point_sprite.  Basically allows textures | ||||
|    to be applied to points. | ||||
|  | ||||
| GL_IBM_multimode_draw_arrays | ||||
|    Allows multiple vertex arrays to be drawn with one call, including arrays | ||||
|    of different types of primitives. | ||||
|  | ||||
| GL_SUN_multi_draw_arrays | ||||
|    An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. | ||||
|  | ||||
| Faster glDrawPixels / glCopyPixels in X11 driver | ||||
|    If your X screen is 32bpp, glDrawPixels to the front color buffer will | ||||
|    be accelerated (via XPutImage()) if the image format is GL_BGRA and the | ||||
|    type is GL_UNSIGNED_BYTE.  No raster operations, such as depth test, | ||||
|    blend, fog, etc. can be enabled. | ||||
|  | ||||
|    If your X screen is 16bpp, glDrawPixels to the front color buffer will | ||||
|    be accelerated (via XPutImage()) if the image format is GL_RGB and the | ||||
|    type is GL_UNSIGNED_SHORT_5_6_5.  No raster operations, such as depth | ||||
|    test, blend, fog, etc. can be enabled. | ||||
|  | ||||
|    glCopyPixels() calls for the front color buffer will be accelerated | ||||
|    (via XCopyArea()) if no raster operations, such as depth test, blend, | ||||
|    fog, pixel zoom, etc. are enabled. | ||||
|  | ||||
|    The speed-up over typical software rendering is a factor of 10 for | ||||
|    glDrawPixels and 100 for glCopyPixels. | ||||
|  | ||||
|  | ||||
| With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, | ||||
| GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports | ||||
| all the new features of OpenGL 1.5.  Mesa 6.0 (the next stable release) | ||||
| will advertise GL_VERSION = "1.5". | ||||
|   | ||||
|  | ||||
|  | ||||
| Vertex/Fragment program debugger | ||||
| -------------------------------- | ||||
|  | ||||
| GL_MESA_program_debug is an experimental extension to support | ||||
| interactive debugging of vertex and fragment programs.  See the | ||||
| docs/MESA_program_debug.spec file for details. | ||||
|  | ||||
| The bulk of the vertex/fragment program debugger is implemented | ||||
| outside of Mesa.  The GL_MESA_program_debug extension just has minimal | ||||
| hooks for stopping running programs and inspecting programs. | ||||
|  | ||||
| The progs/tests/debugger.c (only in CVS) program is an example of how | ||||
| the extension can be used.  Presently, the debugger code and demo code | ||||
| is in the same file.  Eventually the debugger code should be moved | ||||
| into a reusable module. | ||||
|  | ||||
| As it is now, the demo lets you set breakpoings in vertex/fragment | ||||
| programs, single step, and print intermediate register values.  It's | ||||
| basically just a proof of concept. | ||||
|  | ||||
|  | ||||
|  | ||||
| Directory tree reorganization | ||||
| ----------------------------- | ||||
|  | ||||
| The directory structure for Mesa has been overhauled to improve its layout. | ||||
| All source code for Mesa, GLU, GLUT, etc is now under the src/ directory | ||||
| in appropriate subdirectories. | ||||
|  | ||||
| The Mesa source code and drivers has been reorganized under src/mesa/. | ||||
|  | ||||
| All demonstration programs and tests are now in subdirectories under progs/. | ||||
|  | ||||
|  | ||||
|  | ||||
| Build System Changes | ||||
| -------------------- | ||||
|  | ||||
| The GNU automake/autoconf support has been removed.  As it was, it seldom | ||||
| worked on anything but Linux.  The Mesa developers aren't big fans of | ||||
| automake/autoconf/libtool and didn't have the time to maintain it. | ||||
| If someone wants to contribute new automake/autoconf support (and is | ||||
| willing to maintain it), it may be re-incorporated into Mesa, subject | ||||
| to some requirements. | ||||
|  | ||||
| The "old style" makefile system has been updated: | ||||
|    1. Make-config has been trimmed down to fewer, modern configurations. | ||||
|    2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" | ||||
|       script that works on all sorts of systems.  There are probably some | ||||
|       bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. | ||||
|       Improvements/contributes are greatly appreciated. | ||||
|    3. The Makefile.X11 files have been cleaned up in various ways | ||||
|  | ||||
|  | ||||
|  | ||||
| Source File Changes | ||||
| ------------------- | ||||
|  | ||||
| The mmath.[ch] files are obsolete.  Their contents have been moved | ||||
| into the imports.[ch] and macros.[ch] files. | ||||
|  | ||||
| The files related to vertex and fragment programming have changed. | ||||
| Old files: | ||||
| 	vpexec.[ch] | ||||
| 	vpparse.[ch] | ||||
| 	vpstate.[ch] | ||||
| New files: | ||||
| 	program.[ch]              - generic ARB/NV program code | ||||
| 	arbprogram.[ch]           - ARB program API functions | ||||
| 	arbfragparse.[ch]         - ARB fragment program parsing | ||||
| 	arbvertparse.[ch]         - ARB vertex program parsing | ||||
| 	arbparse.[ch]             - ARB vertex/fragment parsing | ||||
| 	arbparse_syn.h            - vertex/fragment program syntax | ||||
| 	nvprogram.[ch]            - NV program API functions | ||||
| 	nvvertprog.h              - NV vertex program definitions | ||||
| 	nvfragprog.h              - NV fragment program definitions | ||||
| 	nvvertparse.[ch]          - NV vertex program parser | ||||
| 	nvfragparse.[ch]          - NV fragment program parser | ||||
| 	nvvertexec.[ch]           - NV vertex program execution | ||||
| 	swrast/s_nvfragprog.[ch]  - NV fragment program execution | ||||
|  | ||||
| The files related to per-vertex handling have changed. | ||||
| Old files: | ||||
| 	tnl/t_eval_api.c          - old per-vertex code | ||||
| 	tnl/t_imm_alloc.c         - old per-vertex code | ||||
| 	tnl/t_imm_api.c           - old per-vertex code | ||||
| 	tnl/t_imm_debug.c         - old per-vertex code | ||||
| 	tnl/t_imm_dlist.c         - old per-vertex code | ||||
| 	tnl/t_imm_elt.c           - old per-vertex code | ||||
| 	tnl/t_imm_eval.c          - old per-vertex code | ||||
| 	tnl/t_imm_exec.c          - old per-vertex code | ||||
| 	tnl/t_imm_fixup.c         - old per-vertex code | ||||
| 	tnl/t_vtx_sse.c           - old per-vertex code | ||||
| 	tnl/t_vtx_x86.c           - old per-vertex code | ||||
| New files: | ||||
| 	tnl/t_save_api.c          - new per-vertex code | ||||
| 	tnl/t_save_loopback.c     - new per-vertex code | ||||
| 	tnl/t_save_playback.c     - new per-vertex code | ||||
| 	tnl/t_vtx_eval.c          - old per-vertex code | ||||
|  | ||||
| Other new files: | ||||
| 	bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions | ||||
| 	version.h		- defines the Mesa version info | ||||
|  | ||||
| Other removed files: | ||||
| 	swrast/s_histogram.[ch]   - moved into src/histogram.c | ||||
|  | ||||
|  | ||||
|  | ||||
| Other Changes | ||||
| ------------- | ||||
|  | ||||
| The ctx->Driver.CreateTexture function has been removed - it wasn't used. | ||||
|  | ||||
| New device driver hook functions: | ||||
|    NewTextureObject   - used to allocate struct gl_texture_objects | ||||
|    NewTextureImage    - used to allocate struct gl_texture_images | ||||
|  | ||||
| New ctx->Texture._EnabledCoordUnits field: | ||||
|    With the addition of GL_NV_fragment_program we may need to interpolate | ||||
|    various sets of texture coordinates even when the corresponding texture | ||||
|    unit is not enabled.  That is, glEnable(GL_TEXTURE_xD) may never get | ||||
|    called but we still may have to interpolate texture coordinates across | ||||
|    triangles so that the fragment program will get them. | ||||
|    This new field indicates which sets of texture coordinates are needed. | ||||
|    If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the | ||||
|    same bit MUST be set in ctx->Texture._EnabledCoordUnits. | ||||
|  | ||||
| The ctx->_TriangleCaps field is deprecated. | ||||
|    Instead of testing the DD_* bits in _TriangleCaps, you should instead | ||||
|    directly test the relevant state variables, or use one of the helper | ||||
|    functions like NEED_SECONDARY_COLOR() at the bottom of context.h | ||||
|    While testing _TriangleCaps bits was fast, it was kludgey, and setting | ||||
|    the bits in the first place could be error prone. | ||||
|  | ||||
| New vertex processing code. | ||||
|    The code behind glBegin, glEnd, glVertex, glNormal, etc. has been | ||||
|    totally rewritten.  It's a cleaner implementation now and should use | ||||
|    less memory. (Keith) | ||||
|  | ||||
|  | ||||
|  | ||||
| To Do | ||||
| ----- | ||||
| Add screen-awareness to fakeglx.c | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| Device Driver Status | ||||
| -------------------- | ||||
|  | ||||
| A number of Mesa's software drivers haven't been actively maintained for | ||||
| some time.  We rely on volunteers to maintain many of these drivers. | ||||
| Here's the current status of all included drivers: | ||||
|  | ||||
|  | ||||
| Driver			Status | ||||
| ----------------------	--------------------- | ||||
| XMesa (Xlib)		implements OpenGL 1.4 | ||||
| OSMesa (off-screen)	implements OpenGL 1.4 | ||||
| FX (3dfx Voodoo1/2)	implements OpenGL 1.3 | ||||
| SVGA			implements OpenGL 1.3 | ||||
| Wind River UGL		implements OpenGL 1.3 | ||||
| Windows/Win32		implements OpenGL 1.4 | ||||
| DJGPP			implements OpenGL 1.4 | ||||
| GGI			implements OpenGL 1.3 | ||||
| BeOS			implements OpenGL 1.4 | ||||
| Allegro			needs updating | ||||
| D3D			needs updating | ||||
|  | ||||
| Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the | ||||
| driver call the _mesa_enable_1_4_extensions() function. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| @@ -17,7 +17,7 @@ Status | ||||
| 
 | ||||
| Version | ||||
| 
 | ||||
|     Version 5, July 16, 2013 | ||||
|     Version 1, March 1, 2011 | ||||
| 
 | ||||
| Number | ||||
| 
 | ||||
| @@ -57,7 +57,7 @@ New Procedures and Functions | ||||
|                                          struct wl_display *display); | ||||
| 
 | ||||
|     EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy, | ||||
|                                        struct wl_resource *buffer, | ||||
|                                        struct wl_buffer *buffer, | ||||
|                                        EGLint attribute, EGLint *value); | ||||
| 
 | ||||
| New Tokens | ||||
| @@ -76,11 +76,6 @@ New Tokens | ||||
|         EGL_TEXTURE_Y_UV_WL                     0x31D8 | ||||
|         EGL_TEXTURE_Y_XUXV_WL                   0x31D9 | ||||
| 
 | ||||
|     Accepted in the <attribute> parameter of eglQueryWaylandBufferWL: | ||||
| 
 | ||||
|         EGL_TEXTURE_FORMAT                      0x3080 | ||||
|         EGL_WAYLAND_Y_INVERTED_WL               0x31DB | ||||
| 
 | ||||
| 
 | ||||
| Additions to the EGL 1.4 Specification: | ||||
| 
 | ||||
| @@ -162,16 +157,6 @@ Additions to the EGL 1.4 Specification: | ||||
|     Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and | ||||
|     EGL_HEIGHT to query the width and height of the wl_buffer. | ||||
| 
 | ||||
|     Also, eglQueryWaylandBufferWL may accept | ||||
|     EGL_WAYLAND_Y_INVERTED_WL attribute to query orientation of | ||||
|     wl_buffer. If EGL_WAYLAND_Y_INVERTED_WL is supported | ||||
|     eglQueryWaylandBufferWL returns EGL_TRUE and value is a boolean | ||||
|     that tells if wl_buffer is y-inverted or not. If | ||||
|     EGL_WAYLAND_Y_INVERTED_WL is not supported | ||||
|     eglQueryWaylandBufferWL returns EGL_FALSE, in that case | ||||
|     wl_buffer should be treated as if value of | ||||
|     EGL_WAYLAND_Y_INVERTED_WL was EGL_TRUE. | ||||
| 
 | ||||
| Issues | ||||
| 
 | ||||
| Revision History | ||||
| @@ -188,10 +173,3 @@ Revision History | ||||
|         Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA, | ||||
|         and just define the new YUV texture formats.  Add support for | ||||
|         EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg) | ||||
|     Version 5, July 16, 2013 | ||||
|         Change eglQueryWaylandBufferWL to take a resource pointer to the | ||||
|         buffer instead of a pointer to a struct wl_buffer, as the latter has | ||||
|         been deprecated. (Ander Conselvan de Oliveira) | ||||
|     Version 6, September 16, 2013 | ||||
|         Add EGL_WAYLAND_Y_INVERTED_WL attribute to allow specifying | ||||
|         wl_buffer's orientation. | ||||
| @@ -1,83 +0,0 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta http-equiv="content-type" content="text/html; charset=utf-8"> | ||||
|   <title>Application Issues</title> | ||||
|   <link rel="stylesheet" type="text/css" href="mesa.css"> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
| <div class="header"> | ||||
|   <h1>The Mesa 3D Graphics Library</h1> | ||||
| </div> | ||||
|  | ||||
| <iframe src="contents.html"></iframe> | ||||
| <div class="content"> | ||||
|  | ||||
| <h1>Application Issues</h1> | ||||
|  | ||||
| <p> | ||||
| This page documents known issues with some OpenGL applications. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>Topogun</h2> | ||||
|  | ||||
| <p> | ||||
| <a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least) | ||||
| creates a GLX visual without requesting a depth buffer. | ||||
| This causes bad rendering if the OpenGL driver happens to choose a visual | ||||
| without a depth buffer. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Mesa 9.1.2 and later (will) support a DRI configuration option to work around | ||||
| this issue. | ||||
| Using the <a href="http://dri.freedesktop.org/wiki/DriConf">driconf</a> tool, | ||||
| set the "Create all visuals with a depth buffer" option before running Topogun. | ||||
| Then, all GLX visuals will be created with a depth buffer. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>Old OpenGL games</h2> | ||||
|  | ||||
| <p> | ||||
| Some old OpenGL games (approx. ten years or older) may crash during | ||||
| start-up because of an extension string buffer-overflow problem. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The problem is a modern OpenGL driver will return a very long string | ||||
| for the glGetString(GL_EXTENSIONS) query and if the application | ||||
| naively copies the string into a fixed-size buffer it can overflow the | ||||
| buffer and crash the application. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable | ||||
| to the approximate release year of the game. | ||||
| This will cause the glGetString(GL_EXTENSIONS) query to only report extensions | ||||
| older than the given year. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| For example, if the game was released in 2001, do | ||||
| <pre> | ||||
| export MESA_EXTENSION_MAX_YEAR=2001 | ||||
| </pre> | ||||
| before running the game. | ||||
| </p> | ||||
|  | ||||
|  | ||||
|  | ||||
| <h2>Viewperf</h2> | ||||
|  | ||||
| <p> | ||||
| See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list | ||||
| of Viewperf issues. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -7,13 +7,6 @@ | ||||
| </head> | ||||
| <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> | ||||
| @@ -24,6 +17,11 @@ | ||||
|   <li><a href="#dri">DRI Driver Options</a></li> | ||||
|   <li><a href="#osmesa">OSMesa Driver Options</a></li> | ||||
|   </ul> | ||||
| <li><p><a href="#library">Library Options</a> | ||||
|   <ul> | ||||
|   <li><a href="#glu">GLU</a></li> | ||||
|   </ul> | ||||
| <li><p><a href="#demos">Demo Program Options</a> | ||||
| </ol> | ||||
|  | ||||
|  | ||||
| @@ -62,109 +60,83 @@ configuration run <code>make realclean</code> before rebuilding. | ||||
|  | ||||
| <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 | ||||
| <ul> | ||||
| <li><code>--prefix=PREFIX</code> - This is the root directory where | ||||
| files will be installed by <code>make install</code>. The default is | ||||
| <code>/usr/local</code>. | ||||
| </li> | ||||
| <li><code>--exec-prefix=EPREFIX</code> - This is the root directory | ||||
| where architecture-dependent files will be installed. In Mesa, this is | ||||
| 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 | ||||
| <code>${prefix}</code>. | ||||
| </li> | ||||
| <li><code>--libdir=LIBDIR</code> - 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 | ||||
| tree. | ||||
| </li> | ||||
| <li><code>--enable-static, --disable-shared</code> - 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 | ||||
| shared libraries in a single pass. | ||||
| </li> | ||||
| <li><code>CC, CFLAGS, CXX, CXXFLAGS</code> - 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 | ||||
| <code>gcc</code> and <code>g++</code> are used with the options | ||||
| <code>"-g -O2"</code>. | ||||
| </li> | ||||
| <li><code>LDFLAGS</code> - An environment variable specifying flags to | ||||
| pass when linking programs. These are normally empty, but can be used | ||||
| to direct the linker to use libraries in nonstandard directories. For | ||||
| example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>. | ||||
| </li> | ||||
| <li><code>PKG_CONFIG_PATH</code> - When available, the | ||||
| <code>pkg-config</code> utility 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> | ||||
| directories. | ||||
| </li> | ||||
| </ul> | ||||
|  | ||||
| <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 | ||||
| <ul> | ||||
| <li><code>--with-x</code> - When the X11 development libraries are | ||||
| needed, the <code>pkg-config</code> utility <a href="#pkg-config">will | ||||
| be used</a> for locating them. If they cannot be found through | ||||
| <code>pkg-config</code> a fallback routing using <code>imake</code> will | ||||
| be used. In this case, the <code>--with-x</code>, | ||||
| <code>--x-includes</code> and <code>--x-libraries</code> options can | ||||
| control the use of X for Mesa. | ||||
| </li> | ||||
| <li><code>--enable-gl-osmesa</code> - The <a href="osmesa.html">OSMesa | ||||
| library</a> can be built on top of libGL for drivers that provide it. | ||||
| This option controls whether to build libOSMesa. By default, this is | ||||
| enabled for the Xlib driver and disabled otherwise. Note that this | ||||
| option is different than using OSMesa as the driver. | ||||
| </li> | ||||
| <li><code>--enable-debug</code> - This option will enable compiler | ||||
| options and macros to aid in debugging the Mesa libraries. | ||||
| </li> | ||||
| <li><code>--disable-asm</code> - There are assembly routines | ||||
| available for a few architectures. These will be used by default if | ||||
| 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> | ||||
| assembly will not be used. | ||||
| </li> | ||||
| <li><code>--enable-32-bit, --enable-64-bit</code> - By default, the | ||||
| build will compile code as directed by the environment variables | ||||
| <code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is | ||||
| <code>gcc</code>, these options offer a helper to add the compiler flags | ||||
| to force 32- or 64-bit code generation as used on the x86 and x86_64 | ||||
| architectures. | ||||
| </li> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <h2 id="driver">2. Driver Options</h2> | ||||
| @@ -173,19 +145,19 @@ architecture, the following should be sufficient to configure multilib Mesa</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>. | ||||
| configure option --with-driver. There are currently three supported | ||||
| options in the configure script. | ||||
| </p> | ||||
|  | ||||
| <h3 id="xlib">Xlib</h3><p> | ||||
| <h3 id="xlib">Xlib</h3><p>This is the default mode for building Mesa. | ||||
| It uses Xlib as a software renderer to do all rendering. It corresponds | ||||
| to the option <code>--enable-xlib-glx</code>. The libX11 and libXext | ||||
| to the option <code>--with-driver=xlib</code>. The libX11 and libXext | ||||
| libraries, as well as the X11 development headers, will be need to | ||||
| support the Xlib driver. | ||||
|  | ||||
| <h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for | ||||
| accelerated OpenGL rendering. Enable the DRI drivers with the option | ||||
| <code>--enable-dri</code>. See the <a href="install.html">basic | ||||
| <code>--with-driver=dri</code>. See the <a href="install.html">basic | ||||
| installation instructions</a> for details on prerequisites for the DRI | ||||
| drivers. | ||||
|  | ||||
| @@ -214,9 +186,7 @@ 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 | ||||
| <dt><code>--with-expat=DIR</code> <dd> 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 | ||||
| @@ -227,8 +197,7 @@ and <code>/usr/local/lib</code>, respectively. | ||||
| <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>. | ||||
| page for more details. | ||||
|  | ||||
| <!-- OSMesa specific options --> | ||||
| <dl> | ||||
| @@ -250,6 +219,31 @@ 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> | ||||
| <dl> | ||||
| <dt id="glu">GLU <dd><p> The libGLU library will be built by default | ||||
| on all drivers. This can be disable with the option | ||||
| <code>--disable-glu</code>. | ||||
| </dl> | ||||
|  | ||||
|  | ||||
| <h2 id="demos">4. Demo Program Options</h2> | ||||
|  | ||||
| <p> | ||||
| There are many demonstration programs in the MesaDemos tarball. If the | ||||
| programs are available when <code>./configure</code> is run, a subset of | ||||
| the programs will be built depending on the driver and library options | ||||
| chosen. See the directory <code>progs</code> for the full set of demos. | ||||
|  | ||||
| <dl> | ||||
| <dt><code>--with-demos=DEMOS,DEMOS,...</code> | ||||
| <dd><p> This option allows a | ||||
| specific set of demo programs to be built. For example, | ||||
| <code>--with-demos="xdemos,slang"</code>. Beware that if this option is | ||||
| used, it will not be ensured that the necessary GL libraries will be | ||||
| available. | ||||
| <dt><code>--without-demos</code> <dd><p> This completely disables building the | ||||
| demo programs. It is equivalent to <code>--with-demos=no</code>. | ||||
| </dl> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
							
								
								
									
										33
									
								
								docs/banner.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								docs/banner.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta http-equiv="content-type" content="text/html; charset=utf-8"> | ||||
|   <title>Banner</title> | ||||
|   <style type="text/css"> | ||||
|     <!-- | ||||
|     body { background: black; color: white } | ||||
|     h1 { | ||||
|       font: x-large sans-serif; text-align: center; | ||||
|       height: 75px; margin-left: 100px; margin-right: 100px } | ||||
|     .gears { width: 100px; height: 73px; float: left; background: url('gears.png') right no-repeat } | ||||
|     div + .gears { float: right; background-position: left } | ||||
|     /* | ||||
|     This should happen in the future instead: | ||||
|     h1 { | ||||
|       border-left: 71px solid #c11800; border-right: 71px solid #00c130; | ||||
|       border-top: 0px; border-bottom: 0px; | ||||
|       border-image: url(gears.png) 100%; -webkit-border-image: url(gears.png) 100%; | ||||
|     } | ||||
|     */ | ||||
|     --> | ||||
|   </style> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|  | ||||
| <div class="gears"></div> | ||||
| <div class="gears"></div> | ||||
| <h1>The Mesa 3D Graphics Library</h1> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
| @@ -7,24 +7,18 @@ | ||||
| </head> | ||||
| <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>. | ||||
| <a href="http://freedesktop.org" target="_parent">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"> | ||||
| <a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa" | ||||
| target="_parent"> | ||||
| Bugzilla on freedesktop.org</a> | ||||
| </p> | ||||
|  | ||||
| @@ -56,6 +50,5 @@ If your bug report is vague or your test program doesn't compile | ||||
| easily, the problem may not be fixed very quickly. | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -7,19 +7,12 @@ | ||||
| </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. | ||||
| for testing Mesa.  The tests are not publically available. | ||||
| </p> | ||||
| <p> | ||||
| This file has the latest results of testing Mesa with the OpenGL 1.2 | ||||
| @@ -698,6 +691,6 @@ Conformx passed. | ||||
|  | ||||
| NOTE: conformx passes for all machine path levels (-p option). | ||||
|  | ||||
| </div> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -25,65 +25,62 @@ | ||||
|  | ||||
| <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><a href="intro.html" target="MainFrame">Introduction</a> | ||||
| <li><a href="news.html" target="MainFrame">News</a> | ||||
| <li><a href="developers.html" target="MainFrame">Developers</a> | ||||
| <li><a href="systems.html" target="MainFrame">Platforms and Drivers</a> | ||||
| <li><a href="license.html" target="MainFrame">License & Copyright</a> | ||||
| <li><a href="faq.html" target="MainFrame">FAQ</a> | ||||
| <li><a href="relnotes.html" target="MainFrame">Release Notes</a> | ||||
| <li><a href="thanks.html" target="MainFrame">Acknowledgements</a> | ||||
| <li><a href="conform.html" target="MainFrame">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> | ||||
| <li><a href="download.html" target="MainFrame">Downloading / Unpacking</a> | ||||
| <li><a href="install.html" target="MainFrame">Compiling / Installing</a> | ||||
| <li><a href="precompiled.html" target="MainFrame">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="lists.html" target="MainFrame">Mailing Lists</a> | ||||
| <li><a href="bugs.html" target="MainFrame">Bug Database</a> | ||||
| <li><a href="webmaster.html" target="MainFrame">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> | ||||
| <li><a href="egl.html" target="MainFrame">EGL</a> | ||||
| <li><a href="opengles.html" target="MainFrame">OpenGL ES</a> | ||||
| <li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a> | ||||
| <li><a href="envvars.html" target="MainFrame">Environment Variables</a> | ||||
| <li><a href="osmesa.html" target="MainFrame">Off-Screen Rendering</a> | ||||
| <li><a href="debugging.html" target="MainFrame">Debugging Tips</a> | ||||
| <li><a href="perf.html" target="MainFrame">Performance Tips</a> | ||||
| <li><a href="extensions.html" target="MainFrame">Mesa Extensions</a> | ||||
| <li><a href="mangling.html" target="MainFrame">Function Name Mangling</a> | ||||
| <li><a href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</a> | ||||
| <li><a href="vmware-guest.html" target="MainFrame">VMware SVGA3D guest driver</a> | ||||
| <li><a href="postprocess.html" target="MainFrame">Gallium post-processing</a> | ||||
| <li><a href="viewperf.html" target="MainFrame">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> | ||||
| <li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a> | ||||
| <li><a href="repository.html" target="MainFrame">Source Code Repository</a> | ||||
| <li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a> | ||||
| <li><a href="glu.html" target="MainFrame">SGI's GLU</a> | ||||
| <li><a href="utilities.html" target="MainFrame">Utilities</a> | ||||
| <li><a href="helpwanted.html" target="MainFrame">Help Wanted</a> | ||||
| <li><a href="devinfo.html" target="MainFrame">Development Notes</a> | ||||
| <li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a> | ||||
| <li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a> | ||||
| <li><a HREF="dispatch.html" target="MainFrame">GL Dispatch</a> | ||||
| </ul> | ||||
|  | ||||
| <b>Links</b> | ||||
| @@ -91,6 +88,11 @@ | ||||
| <li><a href="http://www.opengl.org" target="_parent">OpenGL website</a> | ||||
| <li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a> | ||||
| <li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a> | ||||
| <li><a href="games.html" target="MainFrame">Games and Entertainment</a> | ||||
| <li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a> | ||||
| <li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a> | ||||
| <li><a href="science.html" target="MainFrame">Science and Technical</a> | ||||
| <li><a href="utility.html" target="MainFrame">Utilities</a> | ||||
| </ul> | ||||
|  | ||||
| <b>Hosted by:</b> | ||||
|   | ||||
| @@ -7,13 +7,6 @@ | ||||
| </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> | ||||
| @@ -42,6 +35,5 @@ | ||||
|    src/dlist.c for details. | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -7,20 +7,13 @@ | ||||
| </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> | ||||
| <a href="http://www.vmware.com/" target="_parent">VMware</a> | ||||
| employs several of the main Mesa developers including Brian Paul | ||||
| and Keith Whitwell. | ||||
| </p> | ||||
| @@ -38,13 +31,13 @@ including: | ||||
|  | ||||
| <p> | ||||
| Other companies including | ||||
| <a href="http://www.intellinuxgraphics.org/index.html">Intel</a> | ||||
| <a href="http://www.intellinuxgraphics.org/index.html" target="_parent">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 | ||||
| <a href="http://www.lunarg.com/" target="_parent">LunarG</a> can be contacted | ||||
| for custom Mesa / 3D graphics development. | ||||
| </p> | ||||
|  | ||||
| @@ -53,6 +46,5 @@ Volunteers have made significant contributions to all parts of Mesa, including | ||||
| complete device drivers. | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -7,17 +7,10 @@ | ||||
| </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> | ||||
| <h2>Adding Extentions</h2> | ||||
|  | ||||
| <p> | ||||
| To add a new GL extension to Mesa you have to do at least the following. | ||||
| @@ -36,7 +29,7 @@ To add a new GL extension to Mesa you have to do at least the following. | ||||
|    </pre> | ||||
| </li> | ||||
| <li> | ||||
|    In the src/mapi/glapi/gen/ directory, add the new extension functions and | ||||
|    In the src/mesa/glapi/ directory, add the new extension functions and | ||||
|    enums to the gl_API.xml file. | ||||
|    Then, a bunch of source files must be regenerated by executing the | ||||
|    corresponding Python scripts. | ||||
| @@ -56,11 +49,6 @@ To add a new GL extension to Mesa you have to do at least the following. | ||||
|    If the new extension adds new GL state, the functions in get.c, enable.c | ||||
|    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> | ||||
|  | ||||
|  | ||||
| @@ -160,151 +148,6 @@ of <tt>bool</tt>, <tt>true</tt>, 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>Criteria for accepting patches to the stable branch</h2> | ||||
|  | ||||
| Mesa has a designated release manager for each stable branch, and the release | ||||
| manager is the only developer that should be pushing changes to these | ||||
| branches. Everyone else should simply nominate patches using the mechanism | ||||
| described above. | ||||
|  | ||||
| The stable-release manager will work with the list of nominated patches, and | ||||
| for each patch that meets the crtieria below will cherry-pick the patch with: | ||||
| <code>git cherry-pick -x <commit></code>. The <code>-x</code> option is | ||||
| important so that the picked patch references the comit ID of the original | ||||
| patch. | ||||
|  | ||||
| The stable-release manager may at times need to force-push changes to the | ||||
| stable branches, for example, to drop a previously-picked patch that was later | ||||
| identified as causing a regression). These force-pushes may cause changes to | ||||
| be lost from the stable branch if developers push things directly. Consider | ||||
| yourself warned. | ||||
|  | ||||
| The stable-release manager is also given broad discretion in rejecting patches | ||||
| that have been nominated for the stable branch. The most basic rule is that | ||||
| the stable branch is for bug fixes only, (no new features, no | ||||
| regressions). Here is a non-exhaustive list of some reasons that a patch may | ||||
| be rejected: | ||||
|  | ||||
| <ul> | ||||
|   <li>Patch introduces a regression. Any reported build breakage or other | ||||
|   regression caused by a particular patch, (game no longer work, piglit test | ||||
|   changes from PASS to FAIL), is justification for rejecting a patch.</li> | ||||
|  | ||||
|   <li>Patch is too large, (say, larger than 100 lines)</li> | ||||
|  | ||||
|   <li>Patch is not a fix. For example, a commit that moves code around with no | ||||
|   functional change should be rejected.</li> | ||||
|  | ||||
|   <li>Patch fix is not clearly described. For example, a commit message | ||||
|   of only a single line, no description of the bug, no mention of bugzilla, | ||||
|   etc.</li> | ||||
|  | ||||
|   <li>Patch has not obviously been reviewed, For example, the commit message | ||||
|   has no Reviewed-by, Signed-off-by, nor Tested-by tags from anyone but the | ||||
|   author.</li> | ||||
|  | ||||
|   <li>Patch has not already been merged to the master branch. As a rule, bug | ||||
|   fixes should never be applied first to a stable branch. Patches should land | ||||
|   first on the master branch and then be cherry-picked to a stable | ||||
|   branch. (This is to avoid future releases causing regressions if the patch | ||||
|   is not also applied to master.) The only things that might look like | ||||
|   exceptions would be backports of patches from master that happen to look | ||||
|   significantly different.</li> | ||||
|  | ||||
|   <li>Patch depends on too many other patches. Ideally, all stable-branch | ||||
|   patches should be self-contained. It sometimes occurs that a single, logical | ||||
|   bug-fix occurs as two separate patches on master, (such as an original | ||||
|   patch, then a subsequent fix-up to that patch). In such a case, these two | ||||
|   patches should be squashed into a single, self-contained patch for the | ||||
|   stable branch. (Of course, if the squashing makes the patch too large, then | ||||
|   that could be a reason to reject the patch.)</li> | ||||
|  | ||||
|   <li>Patch includes new feature development, not bug fixes. New OpenGL | ||||
|   features, extensions, etc. should be applied to Mesa master and included in | ||||
|   the next major release. Stable releases are intended only for bug fixes. | ||||
|  | ||||
|   Note: As an exception to this rule, the stable-release manager may accept | ||||
|   hardware-enabling "features". For example, backports of new code to support | ||||
|   a newly-developed hardware product can be accepted if they can be reasonably | ||||
|   determined to not have effects on other hardware.</li> | ||||
|  | ||||
|   <li>Patch is a performance optimization. As a rule, performance patches are | ||||
|   not candidates for the stable branch. The only exception might be a case | ||||
|   where an application's performance was recently severely impacted so as to | ||||
|   become unusable. The fix for this performance regression could then be | ||||
|   considered for a stable branch. The optimization must also be | ||||
|   non-controversial and the patches still need to meet the other criteria of | ||||
|   being simple and self-contained</li> | ||||
|  | ||||
|   <li>Patch introduces a new failure mode (such as an assert). While the new | ||||
|   assert might technically be correct, for example to make Mesa more | ||||
|   conformant, this is not the kind of "bug fix" we want in a stable | ||||
|   release. The potential problem here is that an OpenGL program that was | ||||
|   previously working, (even if technically non-compliant with the | ||||
|   specification), could stop working after this patch. So that would be a | ||||
|   regression that is unaacceptable for the stable branch.</li> | ||||
| </ul> | ||||
|  | ||||
| <h2>Making a New Mesa Release</h2> | ||||
|  | ||||
| @@ -315,205 +158,71 @@ These are the instructions for making a new Mesa release. | ||||
| <h3>Get latest source files</h3> | ||||
| <p> | ||||
| Use git to get the latest Mesa files from the git repository, from whatever | ||||
| branch is relevant. This document uses the convention X.Y.Z for the release | ||||
| being created, which should be created from a branch named X.Y. | ||||
| branch is relevant. | ||||
| </p> | ||||
|  | ||||
| <h3>Perform basic testing</h3> | ||||
|  | ||||
| <h3>Verify and update version info</h3> | ||||
|  | ||||
| <dl> | ||||
|   <dt>configs/default</dt> | ||||
|   <dd>MESA_MAJOR, MESA_MINOR and MESA_TINY</dd> | ||||
|   <dt>Makefile.am</dt> | ||||
|   <dd>PACKAGE_VERSION</dd> | ||||
|   <dt>autoconf.ac</dt> | ||||
|   <dd>AC_INIT</dd> | ||||
|   <dt>src/mesa/main/version.h</dt> | ||||
|   <dd>MESA_MAJOR, MESA_MINOR, MESA_PATCH and MESA_VERSION_STRING</dd> | ||||
| </dl> | ||||
|  | ||||
| <p> | ||||
| The release manager should, at the very least, test the code by compiling it, | ||||
| installing it, and running the latest piglit to ensure that no piglit tests | ||||
| have regressed since the previous release. | ||||
| Create a docs/relnotes-x.y.z.html file. | ||||
| The bin/shortlog_mesa.sh script can be used to create a HTML-formatted list | ||||
| of changes to include in the file. | ||||
| Link the new docs/relnotes-x.y.z.html file into the main <a href="relnotes.html">relnotes.html</a> file. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The release manager should do this testing with at least one hardware driver, | ||||
| (say, whatever is contained in the local development machine), as well as on | ||||
| both Gallium and non-Gallium software drivers. The software testing can be | ||||
| performed by running piglit with the following environment-variable set: | ||||
| Update <a href="news.html">docs/news.html</a>. | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| LIBGL_ALWAYS_SOFTWARE=1 | ||||
| </pre> | ||||
| <p> | ||||
| Tag the files with the release name (in the form <b>mesa-x.y</b>) | ||||
| with: <code>git tag -a mesa-x.y</code> | ||||
| Then: <code>git push origin mesa-x.y</code> | ||||
| </p> | ||||
|  | ||||
| And Gallium vs. non-Gallium software drivers can be obtained by using the | ||||
| following configure flags on separate builds: | ||||
|  | ||||
| <h3>Make the tarballs</h3> | ||||
| <p> | ||||
| Make the distribution files.  From inside the Mesa directory: | ||||
| <pre> | ||||
| --with-dri-drivers=swrast | ||||
| --with-gallium-drivers=swrast | ||||
| 	make tarballs | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| Note: If both options are given in one build, both swrast_dri.so drivers will | ||||
| be compiled, but only one will be installed. The following command can be used | ||||
| to ensure the correct driver is being tested: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep "renderer string" | ||||
| </pre> | ||||
|  | ||||
| If any regressions are found in this testing with piglit, stop here, and do | ||||
| not perform a release until regressions are fixed. | ||||
|  | ||||
| <h3>Update version in file VERSION</h3> | ||||
|  | ||||
| <p> | ||||
| Increment the version contained in the file VERSION at Mesa's top-level, then | ||||
| commit this change. | ||||
| </p> | ||||
|  | ||||
| <h3>Create release notes for the new release</h3> | ||||
|  | ||||
| <p> | ||||
| Create a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous | ||||
| release notes). Note that the sha256sums section of the release notes should | ||||
| be empty at this point. | ||||
| 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> | ||||
| Two scripts are available to help generate portions of the release notes: | ||||
|  | ||||
| <pre> | ||||
| 	./bin/bugzilla_mesa.sh | ||||
| 	./bin/shortlog_mesa.sh | ||||
| </pre> | ||||
| 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> | ||||
| The first script identifies commits that reference bugzilla bugs and obtains | ||||
| the descriptions of those bugs from bugzilla. The second script generates a | ||||
| log of all commits. In both cases, HTML-formatted lists are printed to stdout | ||||
| to be included in the release notes. | ||||
| Follow the directions on SourceForge for creating a new "release" and | ||||
| uploading the tarballs. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Commit these changes | ||||
| </p> | ||||
|  | ||||
| <h3>Make the release archives, signatures, and the release tag</h3> | ||||
| <p> | ||||
| From inside the Mesa directory: | ||||
| <pre> | ||||
| 	./autogen.sh | ||||
| 	make -j1 tarballs | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| After the tarballs are created, the sha256 checksums for the files will | ||||
| be computed and printed. These will be used in a step below. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| It's important at this point to also verify that the constructed tar file | ||||
| actually builds: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	tar xjf MesaLib-X.Y.Z.tar.bz2 | ||||
| 	cd Mesa-X.Y.Z | ||||
| 	./configure --enable-gallium-llvm | ||||
| 	make -j6 | ||||
| 	make install | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| Some touch testing should also be performed at this point, (run glxgears or | ||||
| more involved OpenGL programs against the installed Mesa). | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Create detached GPG signatures for each of the archive files created above: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	gpg --sign --detach MesaLib-X.Y.Z.tar.gz | ||||
| 	gpg --sign --detach MesaLib-X.Y.Z.tar.bz2 | ||||
| 	gpg --sign --detach MesaLib-X.Y.Z.zip | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| Tag the commit used for the build: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	git tag -s mesa-X.Y.X -m "Mesa X.Y.Z release" | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| Note: It would be nice to investigate and fix the issue that causes the | ||||
| tarballs target to fail with multiple build process, such as with "-j4". It | ||||
| would also be nice to incorporate all of the above commands into a single | ||||
| makefile target. And instead of a custom "tarballs" target, we should | ||||
| incorporate things into the standard "make dist" and "make distcheck" targets. | ||||
| </p> | ||||
|  | ||||
| <h3>Add the sha256sums to the release notes</h3> | ||||
|  | ||||
| <p> | ||||
| Edit docs/relnotes/X.Y.Z.html to add the sha256sums printed as part of "make | ||||
| tarballs" in the previous step. Commit this change. | ||||
| </p> | ||||
|  | ||||
| <h3>Push all commits and the tag creates above</h3> | ||||
|  | ||||
| <p> | ||||
| This is the first step that cannot easily be undone. The release is going | ||||
| forward from this point: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	git push origin X.Y --tags | ||||
| </pre> | ||||
|  | ||||
| <h3>Install the release files and signatures on the distribution server</h3> | ||||
|  | ||||
| <p> | ||||
| The following commands can be used to copy the release archive files and | ||||
| signatures to the freedesktop.org server: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	scp MesaLib-X.Y.Z* people.freedesktop.org: | ||||
| 	ssh people.freedesktop.org | ||||
| 	cd /srv/ftp.freedesktop.org/pub/mesa | ||||
| 	mkdir X.Y.Z | ||||
| 	cd X.Y.Z | ||||
| 	mv ~/MesaLib-X.Y.Z* . | ||||
| </pre> | ||||
|  | ||||
| <h3>Back on mesa master, andd the new release notes into the tree</h3> | ||||
|  | ||||
| <p> | ||||
| Something like the following steps will do the trick: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	cp docs/relnotes/X.Y.Z.html /tmp | ||||
|         git checkout master | ||||
|         cp /tmp/X.Y.Z.html docs/relnotes | ||||
|         git add docs/relnotes/X.Y.Z.html | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
| Also, edit docs/relnotes.html to add a link to the new release notes, and edit | ||||
| docs/index.html to add a news entry. Then commit and push: | ||||
| </p> | ||||
|  | ||||
| <pre> | ||||
| 	git commit -a -m "docs: Import X.Y.Z release notes, add news item." | ||||
|         git push origin | ||||
| </pre> | ||||
|  | ||||
| <h3>Update the mesa3d.org website</h3> | ||||
|  | ||||
| <p> | ||||
| NOTE: The recent release managers have not been performing this step | ||||
| themselves, but leaving this to Brian Paul, (who has access to the | ||||
| sourceforge.net hosting for mesa3d.org). Brian is more than willing to grant | ||||
| the permission necessary to future release managers to do this step on their | ||||
| own. | ||||
| Basically, to upload the tarball files with: | ||||
| <br> | ||||
| <code> | ||||
| rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/ | ||||
| </code> | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -525,24 +234,14 @@ sftp USERNAME,mesa3d@web.sourceforge.net | ||||
| </code> | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h3>Announce the release</h3> | ||||
| <p> | ||||
| Make an announcement on the mailing lists: | ||||
|  | ||||
| <em>mesa-dev@lists.freedesktop.org</em>, | ||||
| <em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>, | ||||
| <em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em> | ||||
| and | ||||
| <em>mesa-announce@lists.freedesktop.org</em> | ||||
|  | ||||
| Follow the template of previously-sent release announcements. The following | ||||
| command can be used to generate the log of changes to be included in the | ||||
| release announcement: | ||||
|  | ||||
| <pre> | ||||
| 	git shortlog mesa-X.Y.Z-1..mesa-X.Y.Z | ||||
| </pre> | ||||
| <em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em> | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -6,14 +6,6 @@ | ||||
|   <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 | ||||
| @@ -25,7 +17,7 @@ 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 | ||||
| This object, which is an implicit parameter to ever GL function, stores all | ||||
| of the GL related state for the application.  Every texture, every buffer | ||||
| 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 | ||||
| @@ -51,7 +43,7 @@ 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> | ||||
| differnt GL context current.  This means that poor old <tt>glVertex3fv</tt> | ||||
| has to know which GL context is current in the thread where it is being | ||||
| called.</p> | ||||
|  | ||||
| @@ -205,15 +197,15 @@ 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>PTHREADS</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> | ||||
| <li>If none of the preceeding 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 | ||||
| selected based on the defined preprocessor variables.  The assmebly code | ||||
| then consists of a series of invocations of the macros such as: | ||||
|  | ||||
| <blockquote> | ||||
| @@ -242,7 +234,7 @@ 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 | ||||
| implementation to generate many lines of diffs.  Since the assmebly files | ||||
| are typically generated by scripts (see <a href="#autogen">below</a>), this | ||||
| isn't a significant problem.</p> | ||||
|  | ||||
| @@ -274,6 +266,5 @@ included.</p> | ||||
|  | ||||
| <h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -7,23 +7,17 @@ | ||||
| </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) | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/" | ||||
| target="_parent">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>. | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/beta/" target="_parent">here</a>. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| @@ -75,6 +69,7 @@ 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/glu		- libGLU source code | ||||
| src/glx		- sources for building libGL with full GLX and DRI support | ||||
| </pre> | ||||
|  | ||||
| @@ -85,33 +80,24 @@ 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> | ||||
| <h1>Demos and GLUT</h1> | ||||
|  | ||||
| <p> | ||||
| A package of Mark Kilgard's GLUT library is available | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/glut/">here</a> | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/glut/" target="_parent">here</a> | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The Mesa demos collection is available | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/">here</a> | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/" target="_parent">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>, | ||||
| In the past, GLUT and the Mesa demos were released in conjunction with | ||||
| Mesa releases.  But since GLUT and the demos change infrequently, they | ||||
| were split off some time ago. | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
							
								
								
									
										113
									
								
								docs/egl.html
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								docs/egl.html
									
									
									
									
									
								
							| @@ -7,18 +7,11 @@ | ||||
| </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/"> | ||||
| <a href="http://www.khronos.org/egl/" target="_parent"> | ||||
| http://www.khronos.org/egl/</a>.</p> | ||||
|  | ||||
| <p>The Mesa's implementation of EGL uses a driver architecture.  The main | ||||
| @@ -60,28 +53,31 @@ or more EGL drivers.</p> | ||||
| <p>There are several options that control the build of EGL at configuration | ||||
| time</p> | ||||
|  | ||||
| <dl> | ||||
| <dt><code>--enable-egl</code></dt> | ||||
| <dd> | ||||
| <ul> | ||||
| <li><code>--enable-egl</code> | ||||
|  | ||||
| <p>By default, EGL is enabled.  When disabled, the main library and the drivers | ||||
| will not be built.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>--with-egl-driver-dir</code></dt> | ||||
| <dd> | ||||
| <li><code>--with-egl-driver-dir</code> | ||||
|  | ||||
| <p>The directory EGL drivers should be installed to.  If not specified, EGL | ||||
| drivers will be installed to <code>${libdir}/egl</code>.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>--with-egl-platforms</code></dt> | ||||
| <dd> | ||||
| <li><code>--enable-gallium-egl</code> | ||||
|  | ||||
| <p>Enable the optional <code>egl_gallium</code> driver.</p> | ||||
|  | ||||
| </li> | ||||
|  | ||||
| <li><code>--with-egl-platforms</code> | ||||
|  | ||||
| <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 | ||||
| seprated 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 | ||||
| @@ -92,34 +88,30 @@ types such as <code>EGLNativeDisplayType</code> or | ||||
| only be built with SCons.  Unless for special needs, the build system should | ||||
| select the right platforms automatically.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>--enable-gles1</code></dt> | ||||
| <dt><code>--enable-gles2</code></dt> | ||||
| <dd> | ||||
| <li><code>--enable-gles1</code> and <code>--enable-gles2</code> | ||||
|  | ||||
| <p>These options enable OpenGL ES support in OpenGL.  The result is one big | ||||
| internal library that supports multiple APIs.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>--enable-shared-glapi</code></dt> | ||||
| <dd> | ||||
| <li><code>--enable-shared-glapi</code> | ||||
|  | ||||
| <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> | ||||
| </li> | ||||
|  | ||||
| <dt><code>--enable-openvg</code></dt> | ||||
| <dd> | ||||
| <li><code>--enable-openvg</code> | ||||
|  | ||||
| <p>OpenVG must be explicitly enabled by this option.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| </dl> | ||||
| </ul> | ||||
|  | ||||
| <h2>Use EGL</h2> | ||||
|  | ||||
| @@ -133,9 +125,8 @@ mesa/demos repository.</p> | ||||
| <p>There are several environment variables that control the behavior of EGL at | ||||
| runtime</p> | ||||
|  | ||||
| <dl> | ||||
| <dt><code>EGL_DRIVERS_PATH</code></dt> | ||||
| <dd> | ||||
| <ul> | ||||
| <li><code>EGL_DRIVERS_PATH</code> | ||||
|  | ||||
| <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 | ||||
| @@ -153,20 +144,18 @@ may set</p> | ||||
|  | ||||
| <p>to test a build without installation</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>EGL_DRIVER</code></dt> | ||||
| <dd> | ||||
| <li><code>EGL_DRIVER</code> | ||||
|  | ||||
| <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> | ||||
| </li> | ||||
|  | ||||
| <dt><code>EGL_PLATFORM</code></dt> | ||||
| <dd> | ||||
| <li><code>EGL_PLATFORM</code> | ||||
|  | ||||
| <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, | ||||
| @@ -178,31 +167,28 @@ 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> | ||||
| </li> | ||||
|  | ||||
| <dt><code>EGL_LOG_LEVEL</code></dt> | ||||
| <dd> | ||||
| <li><code>EGL_LOG_LEVEL</code> | ||||
|  | ||||
| <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> | ||||
| </li> | ||||
|  | ||||
| <dt><code>EGL_SOFTWARE</code></dt> | ||||
| <dd> | ||||
| <li><code>EGL_SOFTWARE</code> | ||||
|  | ||||
| <p>For drivers that support both hardware and software rendering, setting this | ||||
| variable to true forces the use of software rendering.</p> | ||||
|  | ||||
| </dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
|  | ||||
| <h2>EGL Drivers</h2> | ||||
|  | ||||
| <dl> | ||||
| <dt><code>egl_dri2</code></dt> | ||||
| <dd> | ||||
| <ul> | ||||
| <li><code>egl_dri2</code> | ||||
|  | ||||
| <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 | ||||
| @@ -210,20 +196,28 @@ the X server directly using (XCB-)DRI2 protocol.</p> | ||||
|  | ||||
| <p>This driver can share DRI drivers with <code>libGL</code>.</p> | ||||
|  | ||||
| </dd> | ||||
| </li> | ||||
|  | ||||
| <dt><code>egl_gallium</code></dt> | ||||
| <dd> | ||||
| <li><code>egl_gallium</code> | ||||
|  | ||||
| <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. | ||||
| hardwares 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> | ||||
| </li> | ||||
|  | ||||
| <li><code>egl_glx</code> | ||||
|  | ||||
| <p>This driver provides a wrapper to GLX.  It uses exclusively GLX to implement | ||||
| the EGL API.  It supports both direct and indirect rendering when the GLX does. | ||||
| It is accelerated when the GLX is.  As such, it cannot provide functions that | ||||
| is not available in GLX or GLX extensions.</p> | ||||
| </li> | ||||
| </ul> | ||||
|  | ||||
| <h2>Packaging</h2> | ||||
|  | ||||
| @@ -245,6 +239,10 @@ is disabled by default.</p> | ||||
| <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> | ||||
|  | ||||
| <p>The suggested way to learn to write a EGL driver is to see how other drivers | ||||
| are written.  <code>egl_glx</code> should be a good reference.  It works in any | ||||
| environment that has GLX support, and it is simpler than most drivers.</p> | ||||
|  | ||||
| <h3>Lifetime of Display Resources</h3> | ||||
|  | ||||
| <p>Contexts and surfaces are examples of display resources.  They might live | ||||
| @@ -252,8 +250,8 @@ 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 | ||||
| throught <code>eglReleaseThread</code>, all current display resources should be | ||||
| released.  Another way to destory 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 | ||||
| @@ -319,6 +317,5 @@ 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> | ||||
|   | ||||
| @@ -7,13 +7,6 @@ | ||||
| </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> | ||||
| @@ -32,8 +25,6 @@ sometimes be useful for debugging end-user issues. | ||||
| <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> | ||||
|  | ||||
|  | ||||
| @@ -47,7 +38,7 @@ sometimes be useful for debugging end-user issues. | ||||
| <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 | ||||
|    message indicating where the error occured, and possibly why, will be | ||||
|    printed to stderr.<br> | ||||
|    If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will | ||||
|    generate exceptions. | ||||
| @@ -71,25 +62,9 @@ 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> | ||||
| glGetString(GL_VERSION). Valid values are point-separated version numbers, | ||||
| such as "3.0". Mesa will not really implement all the features of the given | ||||
| version if it's higher than what's normally reported. | ||||
| <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 | ||||
| @@ -121,38 +96,10 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details. | ||||
| <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> | ||||
| <li>INTEL_STRICT_CONFORMANCE - if set to 1, enable sw fallbacks to improve | ||||
|     OpenGL conformance.  If set to 2, always use software rendering. | ||||
| <li>INTEL_NO_BLIT - if set, disable hardware-accelerated glBitmap, | ||||
|     glCopyPixels, glDrawPixels. | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| @@ -174,13 +121,14 @@ Mesa EGL supports different sets of environment variables.  See the | ||||
| <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_NOSSE - if non-zero, do not use SSE runtime code generation for | ||||
|     shader execution | ||||
| <li>GALLIUM_NOPPC - if non-zero, do not use PPC runtime code generation for | ||||
|     shader execution | ||||
| <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. | ||||
| @@ -188,9 +136,6 @@ Mesa EGL supports different sets of environment variables.  See the | ||||
| <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> | ||||
| @@ -201,14 +146,14 @@ See src/mesa/state_tracker/st_debug.c for other options. | ||||
|     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. | ||||
|     vertex shading procesing. | ||||
| </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 | ||||
| <li>LP_DEBUG - a comma-separated list of debug options is acceptec.  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. | ||||
| @@ -217,22 +162,11 @@ See src/mesa/state_tracker/st_debug.c for other options. | ||||
|     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> | ||||
|   | ||||
| @@ -7,13 +7,6 @@ | ||||
| </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> | ||||
| @@ -23,29 +16,20 @@ The specifications follow. | ||||
|  | ||||
|  | ||||
| <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> | ||||
| <li><a href="MESA_agp_offset.spec">MESA_agp_offset.spec</a> | ||||
| <li><a href="MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</a> | ||||
| <li><a href="MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</a> | ||||
| <li><a href="MESA_pack_invert.spec">MESA_pack_invert.spec</a> | ||||
| <li><a href="MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</a> | ||||
| <li><a href="MESA_release_buffers.spec">MESA_release_buffers.spec</a> | ||||
| <li><a href="MESA_resize_buffers.spec">MESA_resize_buffers.spec</a> | ||||
| <li><a href="MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</a> | ||||
| <li><a href="MESA_sprite_point.spec">MESA_sprite_point.spec</a> (obsolete) | ||||
| <li><a href="MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</a> | ||||
| <li><a href="MESA_trace.spec">MESA_trace.spec</a> (obsolete) | ||||
| <li><a href="MESA_window_pos.spec">MESA_window_pos.spec</a> | ||||
| <li><a href="MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</a> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
							
								
								
									
										126
									
								
								docs/faq.html
									
									
									
									
									
								
							
							
						
						
									
										126
									
								
								docs/faq.html
									
									
									
									
									
								
							| @@ -7,16 +7,9 @@ | ||||
| </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 | ||||
| Last updated: 21 August 2006 | ||||
| </center> | ||||
|  | ||||
| <br> | ||||
| @@ -45,25 +38,21 @@ 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. | ||||
| Mesa 6.x supports the OpenGL 1.5 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. | ||||
| drivers for XFree86/X.org.  See the <a href="http://dri.freedesktop.org/">DRI | ||||
| website</a> for more information. | ||||
| </p> | ||||
| <p> | ||||
| There have been other hardware drivers for Mesa over the years (such as | ||||
| the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers | ||||
| are the modern ones. | ||||
| </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> | ||||
| @@ -72,7 +61,7 @@ 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 | ||||
| <li>Mesa is used as the core of the open-source XFree86/X.org DRI | ||||
|     hardware drivers. | ||||
| </li> | ||||
| <li>Mesa is quite portable and allows OpenGL to be used on systems | ||||
| @@ -136,41 +125,43 @@ Just follow the Mesa <a href="install.html">compilation instructions</a>. | ||||
|  | ||||
| <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. | ||||
| Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html" | ||||
| target="_parent"> | ||||
| OpenGL Sample Implemenation (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 | ||||
| <a href="http://ogl-es.sourceforge.net" target="_parent">Vincent</a> is | ||||
| an open-source implementation of OpenGL ES for mobile devices. | ||||
|  | ||||
| <p> | ||||
| <a href="http://www.dsbox.com/minigl.html">miniGL</a> | ||||
| <a href="http://www.dsbox.com/minigl.html" target="_parent">miniGL</a> | ||||
| is a subset of OpenGL for PalmOS devices. | ||||
|  | ||||
| <p> | ||||
| <a href="http://bellard.org/TinyGL/">TinyGL</a> | ||||
| is a subset of OpenGL. | ||||
| <a href="http://fabrice.bellard.free.fr/TinyGL/" | ||||
| target="_parent">TinyGL</a> is a subset of OpenGL. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| <a href="http://sourceforge.net/projects/softgl/">SoftGL</a> | ||||
| <a href="http://softgl.studierstube.org/" target="_parent">SoftGL</a> | ||||
| is an OpenGL subset for mobile devices. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| <a href="http://chromium.sourceforge.net/">Chromium</a> | ||||
| <a href="http://chromium.sourceforge.net/" target="_parent">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. | ||||
| <a href="http://www.ticalc.org/archives/files/fileinfo/361/36173.html" | ||||
| target="_parent">ClosedGL</a> is an OpenGL subset library for TI | ||||
| graphing calculators. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -220,7 +211,8 @@ GLw (OpenGL widget library) is now available from a separate <a href="http://cgi | ||||
| <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. | ||||
| <a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html" | ||||
| target="_parent">Linux ABI</a> standard. | ||||
| Basically you'll want the following: | ||||
| </p> | ||||
| <ul> | ||||
| @@ -234,24 +226,21 @@ Basically you'll want the following: | ||||
| </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><li>/usr/lib/libGLU.so - a symlink to libGLU.so.1 | ||||
| </li><li>/usr/lib/libGLU.so.1 - a symlink to libGLU.so.1.3.xyz | ||||
| </li><li>/usr/lib/libGLU.so.xyz - the OpenGL Utility 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>. | ||||
| After installing XFree86/X.org and the DRI drivers, some of these files | ||||
| may be symlinks into the /usr/X11R6/ tree. | ||||
| </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>. | ||||
| The old-style Makefile system doesn't install the Mesa libraries; it's | ||||
| up to you to copy them (and the headers) to the right place. | ||||
| </p> | ||||
| <p> | ||||
| The GLUT header and library should go in the same directories. | ||||
| </p> | ||||
| <br> | ||||
| <br> | ||||
| @@ -261,22 +250,24 @@ and then install with <code>sudo make install</code>. | ||||
|  | ||||
| <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) | ||||
| Stand-alone Mesa (downloaded as MesaLib-x.y.z.tar.gz) doesn't have any | ||||
| support for hardware acceleration (with the exception of the 3DFX Voodoo | ||||
| driver). | ||||
| </p> | ||||
| <p> | ||||
| What you really want is a DRI or NVIDIA (or another vendor's OpenGL) driver | ||||
| for your particular hardware. | ||||
| </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 | ||||
| Look for the GL_VENDOR and GL_RENDERER values. | ||||
| That will identify who's OpenGL library 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. | ||||
| <a href="http://dri.sf.net/" target="_parent">DRI website</a> for trouble-shooting information. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| @@ -284,8 +275,8 @@ If your DRI-based driver isn't working, go to the | ||||
| <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. | ||||
| <a href="http://www.opengl.org/resources/faq/technical/depthbuffer.htm#0040" | ||||
| target="_parent"> here</a> for details. | ||||
| </p> | ||||
| <p> | ||||
| Mesa uses a 16-bit depth buffer by default which is smaller and faster | ||||
| @@ -348,12 +339,13 @@ may introduce rasterization artifacts; see the leading comments in | ||||
|  | ||||
| <h2>4.1 How can I contribute?</h2> | ||||
| <p> | ||||
| First, join the <a href="lists.html">mesa-dev mailing list</a>. | ||||
| First, join the <a href="http://www.mesa3d.org/lists.html">Mesa3d-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. | ||||
| The <a href="http://www.opengl.org/documentation" target="_parent"> | ||||
| OpenGL Specification</a> is the bible for OpenGL implemention work. | ||||
| You should read it. | ||||
| </p> | ||||
| <p>Most of the Mesa development work involves implementing new OpenGL | ||||
| @@ -370,12 +362,12 @@ target hardware/operating system. | ||||
| <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. | ||||
| For a software driver, the X11 and OSMesa drivers are good examples. | ||||
| For a hardware driver, the Radeon and R200 DRI drivers 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. | ||||
| over time, and we seldome have spare time for writing documentation. | ||||
| That being said, many people have managed to figure out the process. | ||||
| </p> | ||||
| <p> | ||||
| @@ -386,20 +378,20 @@ the archives) is a good way to get information. | ||||
|  | ||||
| <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> | ||||
| The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt" target="_parent">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 | ||||
| <p>We've been unsucessful 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. | ||||
| In the mean time, a 3rd party <a href= | ||||
| "http://dri.freedesktop.org/wiki/S3TC" | ||||
| target="_parent">plug-in library</a> is available. | ||||
| </p> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
							
								
								
									
										64
									
								
								docs/games.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								docs/games.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| <!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>Games</title> | ||||
|   <link rel="stylesheet" type="text/css" href="mesa.css"> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
| <h1>Games</h1> | ||||
|  | ||||
| <ul> | ||||
| 	<li><a href="http://www.psc.edu/%7Esmp/a3d/">Asteroids3D</a> - 3D asteroids game | ||||
| 	</li><li><a href="http://evlweb.eecs.uic.edu/aej/AndyBattalion.html" target="_parent">Battalion</a> | ||||
| 	- battle game | ||||
| 	</li><li><a href="http://bzflag.sourceforge.net/" target="_parent">BZFLAG</a> - 3-D tank | ||||
| 	battle game | ||||
| 	</li><li><a href="http://www.speakeasy.org/%7Emorse/copter-commander" target="_parent">Copter Commander</a> - 2d multiplayer side scroller | ||||
| 	</li><li><a href="http://www.crystalspace.org/" target="_parent">CrystalSpace</a> - Free | ||||
| 	3d game engine | ||||
| 	</li><li><a href="http://www.afn.org/%7Ecthugha/" target="_parent">Cthugha</a> - music-sync'ed | ||||
| 	graphical effects | ||||
| 	</li><li><a href="http://www.sics.se/dive/" target="_parent">DIVE</a> - Distributed Interactive | ||||
| 	Virtual Environment | ||||
| 	</li><li><a href="http://www.newdoom.com/doomlegacy/" target="_parent">Doom Legacy</a> | ||||
| 	- an OpenGL port of id software's popular game, Doom | ||||
| 	</li><li><a href="http://www.asimov.de/intern_dropit.html" target="_parent">DropIt</a> - 3-D tetris game | ||||
| 	</li><li><a href="http://www.flightgear.org/" target="_parent">Flight Gear</a> - Flight | ||||
| 	simulator | ||||
| 	</li><li><a href="http://freetrek.linuxgames.com/" target="_parent">Free Trek</a> - Star | ||||
| 	Trek battle simulator | ||||
| 	</li><li><a href="http://glchess.sourceforge.net/" target="_parent">GLChess</a> - chess game | ||||
| 	</li><li><a href="http://heretic.linuxgames.com/" target="_parent">GLHeretic</a> - Heretic | ||||
| 	for Linux | ||||
| 	</li><li><a href="http://glider3d.free.fr/" target="_parent">Glider3D</a> - flight simulator | ||||
| 	</li><li><a href="http://www.gltron.org/" target="_parent">glTron</a> - Tron lightcycles | ||||
| 	game | ||||
| 	</li><li><a href="http://gracer.sourceforge.net/" target="_parent">GRacer</a> - 3D Motor | ||||
| 	Sports Simulator | ||||
| 	</li><li><a href="http://jongl.home.pages.de/" target="_parent">JONGL</a> - Juggling simulator | ||||
| 	</li><li><a href="http://samba.anu.edu.au/KnightCap/" target="_parent">KnightCap</a> - | ||||
| 	chess game | ||||
| 	</li><li><a href="http://www.hackcraft.de/games/linwarrior_3d/" target="_parent">LinWarrior 3D</a> - A Battle Mech Simulator | ||||
| 	</li><li><a href="http://www.nada.kth.se/%7Ef96-lfo/lunar/" target="_parent">Lunar Lander | ||||
| 	2000</a> - 3D version of the classis lunar lander game | ||||
| 	</li><li><a href="http://www.majik3d.org/" target="_parent">Majik 3D</a> - an online role-playing | ||||
| 	world | ||||
| 	</li><li><a href="http://www.pobox.com/%7Eshankel/opentrek.html" target="_parent">OpenTrek</a> | ||||
| 	- Super Star Trek | ||||
| 	</li><li><a href="http://www.idsoftware.com/" target="_parent">Quake(2,3)</a> - the popular | ||||
| 	games from id software | ||||
| 	</li><li><a href="http://torcs.free.fr/indexm.html" target="_parent">TORCS</a> - car racing | ||||
| 	simulator | ||||
| 	</li><li><a href="http://www.woodsoup.org/projs/tux_aqfh" target="_parent">TUX-AQFH</a> | ||||
| 	- Tux the Penguin - a Quest for Herring | ||||
| 	</li><li><a href="http://mordred.8m.com/voidrunner/" target="_parent">Void Runner</a> | ||||
| 	- freeware arcade style game | ||||
| 	</li><li><a href="http://xracer.annexia.org/" target="_parent">XRacer</a> - Free spaceship | ||||
| 	racing game, similar to Wipeout | ||||
| 	</li> | ||||
| </ul> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										
											BIN
										
									
								
								docs/gears.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/gears.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.6 KiB | 
							
								
								
									
										46
									
								
								docs/glu.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								docs/glu.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| <!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>SGI GLU</title> | ||||
|   <link rel="stylesheet" type="text/css" href="mesa.css"> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
| <h1>SGI SI GLU</h1> | ||||
|  | ||||
| (Silicon Graphics, Inc. Sample Implementation of the OpenGL Utility library) | ||||
|  | ||||
| <p> | ||||
| SGI open-sourced their OpenGL Sample Implementation (SI) in January, 2000. | ||||
| This includes the GLU library. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The SI GLU library implements GLU version 1.3 whereas the original | ||||
| Mesa GLU library only implemented version 1.2. | ||||
| We recommend using the SI GLU library instead of Mesa's GLU library | ||||
| since it's more up-to-date, complete and reliable. | ||||
| We're no longer developing the original Mesa GLU library. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| The SI GLU library code is included in the Mesa distribution. | ||||
| You don't have to download it separately. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <p> | ||||
| <b>Olivier Michel</b> has made Linux RPMs of GLU for i386 and PowerPC. | ||||
| You can download them from the | ||||
| <a href="http://www.sourceforge.net/project/showfiles.php?group_id=3" | ||||
| target="_parent">download area</a> under <b>Miscellaneous</b>. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Visit the <a href="http://oss.sgi.com/projects/ogl-sample/" target="_parent"> | ||||
| OpenGL Sample Implementation home page</a> for more information about the SI. | ||||
| </p> | ||||
|  | ||||
| </body> | ||||
| </html> | ||||
| @@ -7,13 +7,6 @@ | ||||
| </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> | ||||
| @@ -24,12 +17,12 @@ Here are some specific ideas and areas where help would be appreciated: | ||||
| <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 | ||||
| Patches are often posted to the <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_parent">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>. | ||||
| There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa" target="_parent">bug database</a>. | ||||
| <li> | ||||
| <b>Remove aliasing warnings.</b> | ||||
| Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing | ||||
| @@ -38,8 +31,13 @@ issues in the code. | ||||
| <b>Windows driver building, testing and maintenance.</b> | ||||
| Fixing MSVC builds. | ||||
| <li> | ||||
| <b>Maintenance and testing of lesser-used drivers.</b> | ||||
| Drivers such as i810, mach64, mga, r128, savage, sis, tdfx, unichrome, etc that aren't being maintained are being | ||||
| deprecated starting in Mesa 8.0.<br> | ||||
| They have to be ported to DRI2 to be accepted in mesa master again. | ||||
| <li> | ||||
| <b>Contribute more tests to | ||||
| <a href="http://piglit.freedesktop.org/">Piglit</a>.</b> | ||||
| <a href="http://people.freedesktop.org/~nh/piglit/" target="_parent">Piglit</a>.</b> | ||||
| <li> | ||||
| <b>Automatic testing. | ||||
| </b> | ||||
| @@ -51,31 +49,15 @@ the mailing list. | ||||
| <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> | ||||
|   <li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt" | ||||
|     target="_parent"><b>GL3.txt</b></a></li> | ||||
|   <li><a href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/docs/llvm-todo.txt" | ||||
|     target="_parent"><b>LLVMpipe - todo</b></a></li> | ||||
|   <li><a href="http://dri.freedesktop.org/wiki/MissingFunctionality" | ||||
|     target="_parent"><b>MissingFunctionality</b></a></li> | ||||
|   <li><a href="http://dri.freedesktop.org/wiki/R300ToDo" | ||||
|     target="_parent"><b>R300ToDo</b></a></li> | ||||
| </ul> | ||||
|  | ||||
| <p> | ||||
| @@ -100,6 +82,6 @@ Finally: | ||||
| <li>Test your code thoroughly.  Include test programs if appropriate. | ||||
| </ol> | ||||
|  | ||||
| </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