--- mesa-7.9+repack.orig/autogen.sh +++ mesa-7.9+repack/autogen.sh @@ -0,0 +1,18 @@ +#! /bin/sh + +srcdir=`dirname "$0"` +test -z "$srcdir" && srcdir=. + +SRCDIR=`(cd "$srcdir" && pwd)` +ORIGDIR=`pwd` + +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 + +"$srcdir"/configure "$@" --- mesa-7.9+repack.orig/.emacs-dirvars +++ mesa-7.9+repack/.emacs-dirvars @@ -0,0 +1,10 @@ +;; -*- emacs-lisp -*- +;; +;; This file is processed by the dirvars emacs package. Each variable +;; setting below is performed when this dirvars file is loaded. +;; +indent-tabs-mode: nil +tab-width: 8 +c-basic-offset: 3 +kde-emacs-after-parent-string: "" +evaluate: (c-set-offset 'inline-open '0) --- mesa-7.9+repack.orig/SConstruct +++ mesa-7.9+repack/SConstruct @@ -0,0 +1,216 @@ +####################################################################### +# Top-level SConstruct +# +# For example, invoke scons as +# +# scons debug=1 dri=0 machine=x86 +# +# to set configuration variables. Or you can write those options to a file +# named config.py: +# +# # config.py +# debug=1 +# dri=0 +# machine='x86' +# +# Invoke +# +# scons -h +# +# to get the full list of options. See scons manpage for more info. +# + +import os +import os.path +import sys +import SCons.Util + +import common + +####################################################################### +# Configuration options + +default_statetrackers = 'mesa' +default_targets = 'graw-null' + +if common.default_platform in ('linux', 'freebsd', 'darwin'): + default_drivers = 'softpipe,galahad,failover,svga,i915,i965,trace,identity,llvmpipe' + default_winsys = 'xlib' +elif common.default_platform in ('winddk',): + default_drivers = 'softpipe,svga,i915,i965,trace,identity' + default_winsys = 'all' +elif common.default_platform in ('embedded',): + default_drivers = 'softpipe,llvmpipe' + default_winsys = 'xlib' +else: + default_drivers = 'all' + default_winsys = 'all' + +opts = Variables('config.py') +common.AddOptions(opts) +opts.Add(ListVariable('statetrackers', 'state trackers to build', default_statetrackers, + ['mesa', 'python', 'xorg', 'egl'])) +opts.Add(ListVariable('drivers', 'pipe drivers to build', default_drivers, + ['softpipe', 'galahad', 'failover', 'svga', 'i915', 'i965', 'trace', 'r300', 'r600', 'identity', 'llvmpipe', 'nouveau', 'nv50', 'nvfx'])) +opts.Add(ListVariable('winsys', 'winsys drivers to build', default_winsys, + ['xlib', 'vmware', 'i915', 'i965', 'gdi', 'radeon', 'r600', 'graw-xlib'])) + +opts.Add(ListVariable('targets', 'driver targets to build', default_targets, + ['dri-i915', + 'dri-i965', + 'dri-nouveau', + 'dri-radeong', + 'dri-swrast', + 'dri-vmwgfx', + 'egl-i915', + 'egl-i965', + 'egl-nouveau', + 'egl-radeon', + 'egl-swrast', + 'egl-vmwgfx', + 'graw-xlib', + 'graw-null', + 'libgl-gdi', + 'libgl-xlib', + 'xorg-i915', + 'xorg-i965', + 'xorg-nouveau', + 'xorg-radeon', + 'xorg-vmwgfx'])) + +opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) + +env = Environment( + options = opts, + tools = ['gallium'], + toolpath = ['#scons'], + ENV = os.environ, +) + +if os.environ.has_key('CC'): + env['CC'] = os.environ['CC'] +if os.environ.has_key('CFLAGS'): + env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS']) +if os.environ.has_key('CXX'): + env['CXX'] = os.environ['CXX'] +if os.environ.has_key('CXXFLAGS'): + env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS']) +if os.environ.has_key('LDFLAGS'): + env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS']) + +Help(opts.GenerateHelpText(env)) + +# replicate options values in local variables +debug = env['debug'] +dri = env['dri'] +machine = env['machine'] +platform = env['platform'] + +# derived options +x86 = machine == 'x86' +ppc = machine == 'ppc' +gcc = platform in ('linux', 'freebsd', 'darwin', 'embedded') +msvc = platform in ('windows', 'winddk') + +Export([ + 'debug', + 'x86', + 'ppc', + 'dri', + 'platform', + 'gcc', + 'msvc', +]) + + +####################################################################### +# Environment setup + +# Always build trace, rbug, identity, softpipe, and llvmpipe (where possible) +if 'trace' not in env['drivers']: + env['drivers'].append('trace') +if 'rbug' not in env['drivers']: + env['drivers'].append('rbug') +if 'galahad' not in env['drivers']: + env['drivers'].append('galahad') +if 'identity' not in env['drivers']: + env['drivers'].append('identity') +if 'softpipe' not in env['drivers']: + env['drivers'].append('softpipe') +if env['llvm'] and 'llvmpipe' not in env['drivers']: + env['drivers'].append('llvmpipe') +if 'sw' not in env['drivers']: + env['drivers'].append('sw') + +# Includes +env.Prepend(CPPPATH = [ + '#/include', +]) +env.Append(CPPPATH = [ + '#/src/gallium/include', + '#/src/gallium/auxiliary', + '#/src/gallium/drivers', + '#/src/gallium/winsys', +]) + +if env['msvc']: + env.Append(CPPPATH = ['#include/c99']) + +# Embedded +if platform == 'embedded': + env.Append(CPPDEFINES = [ + '_POSIX_SOURCE', + ('_POSIX_C_SOURCE', '199309L'), + '_SVID_SOURCE', + '_BSD_SOURCE', + '_GNU_SOURCE', + + 'PTHREADS', + ]) + env.Append(LIBS = [ + 'm', + 'pthread', + 'dl', + ]) + +# Posix +if platform in ('posix', 'linux', 'freebsd', 'darwin'): + env.Append(CPPDEFINES = [ + '_POSIX_SOURCE', + ('_POSIX_C_SOURCE', '199309L'), + '_SVID_SOURCE', + '_BSD_SOURCE', + '_GNU_SOURCE', + 'PTHREADS', + 'HAVE_POSIX_MEMALIGN', + ]) + if gcc: + env.Append(CFLAGS = ['-fvisibility=hidden']) + if platform == 'darwin': + env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE']) + env.Append(LIBS = [ + 'm', + 'pthread', + 'dl', + ]) + +# for debugging +#print env.Dump() + +Export('env') + + +####################################################################### +# Invoke SConscripts + +# TODO: Build several variants at the same time? +# http://www.scons.org/wiki/SimultaneousVariantBuilds + +SConscript( + 'src/SConscript', + variant_dir = env['build'], + duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html +) + +env.Default('src') + --- mesa-7.9+repack.orig/common.py +++ mesa-7.9+repack/common.py @@ -0,0 +1,93 @@ +####################################################################### +# Common SCons code + +import os +import os.path +import re +import subprocess +import sys +import platform as _platform + + +####################################################################### +# Defaults + +_platform_map = { + 'linux2': 'linux', + 'win32': 'windows', +} + +default_platform = sys.platform +default_platform = _platform_map.get(default_platform, default_platform) + +_machine_map = { + 'x86': 'x86', + 'i386': 'x86', + 'i486': 'x86', + 'i586': 'x86', + 'i686': 'x86', + 'ppc' : 'ppc', + 'x86_64': 'x86_64', +} + + +# find default_machine value +if 'PROCESSOR_ARCHITECTURE' in os.environ: + default_machine = os.environ['PROCESSOR_ARCHITECTURE'] +else: + default_machine = _platform.machine() +default_machine = _machine_map.get(default_machine, 'generic') + + +# find default_llvm value +if 'LLVM' in os.environ: + default_llvm = 'yes' +else: + # Search sys.argv[] for a "platform=foo" argument since we don't have + # an 'env' variable at this point. + platform = default_platform + pattern = re.compile("(platform=)(.*)") + for arg in sys.argv: + m = pattern.match(arg) + if m: + platform = m.group(2) + + default_llvm = 'no' + try: + if platform != 'windows' and subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0: + default_llvm = 'yes' + except: + pass + + +# find default_dri value +if default_platform in ('linux', 'freebsd'): + default_dri = 'yes' +elif default_platform in ('winddk', 'windows', 'wince', 'darwin'): + default_dri = 'no' +else: + default_dri = 'no' + + +####################################################################### +# Common options + +def AddOptions(opts): + try: + from SCons.Variables.BoolVariable import BoolVariable as BoolOption + except ImportError: + from SCons.Options.BoolOption import BoolOption + try: + from SCons.Variables.EnumVariable import EnumVariable as EnumOption + except ImportError: + from SCons.Options.EnumOption import EnumOption + opts.Add(BoolOption('debug', 'debug build', 'yes')) + opts.Add(BoolOption('profile', 'profile build', 'no')) + opts.Add(BoolOption('quiet', 'quiet command lines', 'yes')) + opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine, + allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) + opts.Add(EnumOption('platform', 'target platform', default_platform, + allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded', 'cygwin', 'sunos5', 'freebsd8'))) + opts.Add('toolchain', 'compiler toolchain', 'default') + opts.Add(BoolOption('llvm', 'use LLVM', default_llvm)) + opts.Add(BoolOption('dri', 'build DRI drivers', default_dri)) --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11-i686.shlibs +++ mesa-7.9+repack/debian/libgl1-mesa-swx11-i686.shlibs @@ -0,0 +1 @@ +libGL 1 libgl1-mesa-glx | libgl1 --- mesa-7.9+repack.orig/debian/libglw1-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libglw1-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGLw1 --- mesa-7.9+repack.orig/debian/libopenvg1-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libopenvg1-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libOpenVG1 --- mesa-7.9+repack.orig/debian/libosmesa6.shlibs +++ mesa-7.9+repack/debian/libosmesa6.shlibs @@ -0,0 +1,3 @@ +libOSMesa 6 libosmesa6 (>= 6.5.2-1) | libgl1-mesa-glide3 +libOSMesa16 6 libosmesa6 (>= 6.5.2-1) +libOSMesa32 6 libosmesa6 (>= 6.5.2-1) --- mesa-7.9+repack.orig/debian/libgl1-mesa-dev.install +++ mesa-7.9+repack/debian/libgl1-mesa-dev.install @@ -0,0 +1,2 @@ +usr/lib/libGL.so usr/lib/mesa/ +usr/lib/pkgconfig/gl.pc --- mesa-7.9+repack.orig/debian/libegl1-mesa.symbols +++ mesa-7.9+repack/debian/libegl1-mesa.symbols @@ -0,0 +1,62 @@ +libEGL.so.1 libegl1-mesa #MINVER# | libegl1-x11 + # These are all internal symbols between libEGL and the + # drivers. Handle the dependency explicitly in the driver + # package. + (regex)"^_egl.*@Base$" 7.8.1 + eglBindAPI@Base 7.8.1 + eglBindTexImage@Base 7.8.1 + eglChooseConfig@Base 7.8.1 + eglChooseModeMESA@Base 7.8.1 + eglClientWaitSyncKHR@Base 7.9 + eglCopyBuffers@Base 7.8.1 + eglCopyContextMESA@Base 7.8.1 + eglCreateContext@Base 7.8.1 + eglCreateDRMImageMESA@Base 7.9 + eglCreateImageKHR@Base 7.8.1 + eglCreatePbufferFromClientBuffer@Base 7.8.1 + eglCreatePbufferSurface@Base 7.8.1 + eglCreatePixmapSurface@Base 7.8.1 + eglCreateScreenSurfaceMESA@Base 7.8.1 + eglCreateSyncKHR@Base 7.9 + eglCreateWindowSurface@Base 7.8.1 + eglDestroyContext@Base 7.8.1 + eglDestroyImageKHR@Base 7.8.1 + eglDestroySurface@Base 7.8.1 + eglDestroySyncKHR@Base 7.9 + eglExportDRMImageMESA@Base 7.9 + eglGetConfigAttrib@Base 7.8.1 + eglGetConfigs@Base 7.8.1 + eglGetCurrentContext@Base 7.8.1 + eglGetCurrentDisplay@Base 7.8.1 + eglGetCurrentSurface@Base 7.8.1 + eglGetDRMDisplayMESA@Base 7.9 + eglGetDisplay@Base 7.8.1 + eglGetError@Base 7.8.1 + eglGetModeAttribMESA@Base 7.8.1 + eglGetSyncAttribKHR@Base 7.9 + eglGetModesMESA@Base 7.8.1 + eglGetProcAddress@Base 7.8.1 + eglGetScreensMESA@Base 7.8.1 + eglInitialize@Base 7.8.1 + eglMakeCurrent@Base 7.8.1 + eglQueryAPI@Base 7.8.1 + eglQueryContext@Base 7.8.1 + eglQueryModeStringMESA@Base 7.8.1 + eglQueryScreenMESA@Base 7.8.1 + eglQueryScreenModeMESA@Base 7.8.1 + eglQueryScreenSurfaceMESA@Base 7.8.1 + eglQueryString@Base 7.8.1 + eglQuerySurface@Base 7.8.1 + eglReleaseTexImage@Base 7.8.1 + eglReleaseThread@Base 7.8.1 + eglScreenPositionMESA@Base 7.8.1 + eglShowScreenSurfaceMESA@Base 7.8.1 + eglSignalSyncKHR@Base 7.9 + eglSurfaceAttrib@Base 7.8.1 + eglSwapBuffers@Base 7.8.1 + eglSwapBuffersRegionNOK@Base 7.9 + eglSwapInterval@Base 7.8.1 + eglTerminate@Base 7.8.1 + eglWaitClient@Base 7.8.1 + eglWaitGL@Base 7.8.1 + eglWaitNative@Base 7.8.1 --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11-dev.install +++ mesa-7.9+repack/debian/libgl1-mesa-swx11-dev.install @@ -0,0 +1,2 @@ +usr/lib/libGL.a usr/lib/mesa/ +usr/lib/libGL.so usr/lib/mesa/ --- mesa-7.9+repack.orig/debian/libgles2-mesa.symbols +++ mesa-7.9+repack/debian/libgles2-mesa.symbols @@ -0,0 +1,164 @@ +libGLESv2.so.2 libgles2-mesa #MINVER# | libgles2 +# _glapi_* are internal GL dispatch symbols. They should probably be hidden. + (regex)"^_glapi_.*@Base$" 7.8.1 +# These are optimised assembly versions of functions, accessed through a +# dispatch table. They're arch-specific, and should probably be hidden. + (regex|optional=mesa internal ASM optimized functions)"^_mesa_.*@Base$" 7.8.1 + _glthread_GetID@Base 7.8.1 + glActiveTexture@Base 7.8.1 + glAttachShader@Base 7.8.1 + glBindAttribLocation@Base 7.8.1 + glBindBuffer@Base 7.8.1 + glBindFramebuffer@Base 7.8.1 + glBindRenderbuffer@Base 7.8.1 + glBindTexture@Base 7.8.1 + glBlendColor@Base 7.8.1 + glBlendEquation@Base 7.8.1 + glBlendEquationSeparate@Base 7.8.1 + glBlendFunc@Base 7.8.1 + glBlendFuncSeparate@Base 7.8.1 + glBufferData@Base 7.8.1 + glBufferSubData@Base 7.8.1 + glCheckFramebufferStatus@Base 7.8.1 + glClear@Base 7.8.1 + glClearColor@Base 7.8.1 + glClearDepthf@Base 7.8.1 + glClearStencil@Base 7.8.1 + glColorMask@Base 7.8.1 + glCompileShader@Base 7.8.1 + glCompressedTexImage2D@Base 7.8.1 + glCompressedTexImage3DOES@Base 7.8.1 + glCompressedTexSubImage2D@Base 7.8.1 + glCompressedTexSubImage3DOES@Base 7.8.1 + glCopyTexImage2D@Base 7.8.1 + glCopyTexSubImage2D@Base 7.8.1 + glCopyTexSubImage3DOES@Base 7.8.1 + glCreateProgram@Base 7.8.1 + glCreateShader@Base 7.8.1 + glCullFace@Base 7.8.1 + glDeleteBuffers@Base 7.8.1 + glDeleteFramebuffers@Base 7.8.1 + glDeleteProgram@Base 7.8.1 + glDeleteRenderbuffers@Base 7.8.1 + glDeleteShader@Base 7.8.1 + glDeleteTextures@Base 7.8.1 + glDepthFunc@Base 7.8.1 + glDepthMask@Base 7.8.1 + glDepthRangef@Base 7.8.1 + glDetachShader@Base 7.8.1 + glDisable@Base 7.8.1 + glDisableVertexAttribArray@Base 7.8.1 + glDrawArrays@Base 7.8.1 + glDrawElements@Base 7.8.1 + glEGLImageTargetRenderbufferStorageOES@Base 7.8.1 + glEGLImageTargetTexture2DOES@Base 7.8.1 + glEnable@Base 7.8.1 + glEnableVertexAttribArray@Base 7.8.1 + glFinish@Base 7.8.1 + glFlush@Base 7.8.1 + glFramebufferRenderbuffer@Base 7.8.1 + glFramebufferTexture2D@Base 7.8.1 + glFramebufferTexture3DOES@Base 7.8.1 + glFrontFace@Base 7.8.1 + glGenBuffers@Base 7.8.1 + glGenFramebuffers@Base 7.8.1 + glGenRenderbuffers@Base 7.8.1 + glGenTextures@Base 7.8.1 + glGenerateMipmap@Base 7.8.1 + glGetActiveAttrib@Base 7.8.1 + glGetActiveUniform@Base 7.8.1 + glGetAttachedShaders@Base 7.8.1 + glGetAttribLocation@Base 7.8.1 + glGetBooleanv@Base 7.8.1 + glGetBufferParameteriv@Base 7.8.1 + glGetBufferPointervOES@Base 7.8.1 + glGetError@Base 7.8.1 + glGetFloatv@Base 7.8.1 + glGetFramebufferAttachmentParameteriv@Base 7.8.1 + glGetIntegerv@Base 7.8.1 + glGetProgramBinaryOES@Base 7.8.1 + glGetProgramInfoLog@Base 7.8.1 + glGetProgramiv@Base 7.8.1 + glGetRenderbufferParameteriv@Base 7.8.1 + glGetShaderInfoLog@Base 7.8.1 + glGetShaderPrecisionFormat@Base 7.8.1 + glGetShaderSource@Base 7.8.1 + glGetShaderiv@Base 7.8.1 + glGetString@Base 7.8.1 + glGetTexParameterfv@Base 7.8.1 + glGetTexParameteriv@Base 7.8.1 + glGetUniformLocation@Base 7.8.1 + glGetUniformfv@Base 7.8.1 + glGetUniformiv@Base 7.8.1 + glGetVertexAttribPointerv@Base 7.8.1 + glGetVertexAttribfv@Base 7.8.1 + glGetVertexAttribiv@Base 7.8.1 + glHint@Base 7.8.1 + glIsBuffer@Base 7.8.1 + glIsEnabled@Base 7.8.1 + glIsFramebuffer@Base 7.8.1 + glIsProgram@Base 7.8.1 + glIsRenderbuffer@Base 7.8.1 + glIsShader@Base 7.8.1 + glIsTexture@Base 7.8.1 + glLineWidth@Base 7.8.1 + glLinkProgram@Base 7.8.1 + glMapBufferOES@Base 7.8.1 + glMultiDrawArraysEXT@Base 7.8.1 + glMultiDrawElementsEXT@Base 7.8.1 + glPixelStorei@Base 7.8.1 + glPolygonOffset@Base 7.8.1 + glProgramBinaryOES@Base 7.8.1 + glReadPixels@Base 7.8.1 + glReleaseShaderCompiler@Base 7.8.1 + glRenderbufferStorage@Base 7.8.1 + glSampleCoverage@Base 7.8.1 + glScissor@Base 7.8.1 + glShaderBinary@Base 7.8.1 + glShaderSource@Base 7.8.1 + glStencilFunc@Base 7.8.1 + glStencilFuncSeparate@Base 7.8.1 + glStencilMask@Base 7.8.1 + glStencilMaskSeparate@Base 7.8.1 + glStencilOp@Base 7.8.1 + glStencilOpSeparate@Base 7.8.1 + glTexImage2D@Base 7.8.1 + glTexImage3DOES@Base 7.8.1 + glTexParameterf@Base 7.8.1 + glTexParameterfv@Base 7.8.1 + glTexParameteri@Base 7.8.1 + glTexParameteriv@Base 7.8.1 + glTexSubImage2D@Base 7.8.1 + glTexSubImage3DOES@Base 7.8.1 + glUniform1f@Base 7.8.1 + glUniform1fv@Base 7.8.1 + glUniform1i@Base 7.8.1 + glUniform1iv@Base 7.8.1 + glUniform2f@Base 7.8.1 + glUniform2fv@Base 7.8.1 + glUniform2i@Base 7.8.1 + glUniform2iv@Base 7.8.1 + glUniform3f@Base 7.8.1 + glUniform3fv@Base 7.8.1 + glUniform3i@Base 7.8.1 + glUniform3iv@Base 7.8.1 + glUniform4f@Base 7.8.1 + glUniform4fv@Base 7.8.1 + glUniform4i@Base 7.8.1 + glUniform4iv@Base 7.8.1 + glUniformMatrix2fv@Base 7.8.1 + glUniformMatrix3fv@Base 7.8.1 + glUniformMatrix4fv@Base 7.8.1 + glUnmapBufferOES@Base 7.8.1 + glUseProgram@Base 7.8.1 + glValidateProgram@Base 7.8.1 + glVertexAttrib1f@Base 7.8.1 + glVertexAttrib1fv@Base 7.8.1 + glVertexAttrib2f@Base 7.8.1 + glVertexAttrib2fv@Base 7.8.1 + glVertexAttrib3f@Base 7.8.1 + glVertexAttrib3fv@Base 7.8.1 + glVertexAttrib4f@Base 7.8.1 + glVertexAttrib4fv@Base 7.8.1 + glVertexAttribPointer@Base 7.8.1 + glViewport@Base 7.8.1 --- mesa-7.9+repack.orig/debian/libglu1-mesa.install +++ mesa-7.9+repack/debian/libglu1-mesa.install @@ -0,0 +1 @@ +usr/lib/libGLU.so.* --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11.lintian-overrides +++ mesa-7.9+repack/debian/libgl1-mesa-swx11.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGL1 --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx.postinst +++ mesa-7.9+repack/debian/libgl1-mesa-glx.postinst @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +THIS_PACKAGE=libgl1-mesa-glx +THIS_SCRIPT=postinst + +case "$1" in + configure) + # Use alternatives to make it easier to switch between Mesa and 3rd party modules + update-alternatives --force \ + --install /etc/ld.so.conf.d/GL.conf gl_conf /usr/lib/mesa/ld.so.conf 500 \ + --slave /usr/lib/xorg/extra-modules xorg_extra_modules /usr/lib/xorg/x11-extra-modules + + # ldconfig needs to be run immediately as we're changing /etc/ld.so.conf.d/ with + # alternatives. + LDCONFIG_NOTRIGGER=y ldconfig + +esac + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=2 ts=2 tw=80: + --- mesa-7.9+repack.orig/debian/libopenvg1-mesa.install +++ mesa-7.9+repack/debian/libopenvg1-mesa.install @@ -0,0 +1,2 @@ +dri/usr/lib/libOpenVG.so.1* usr/lib +dri/usr/lib/egl/st_OpenVG.so usr/lib/egl --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11.postinst +++ mesa-7.9+repack/debian/libgl1-mesa-swx11.postinst @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +THIS_PACKAGE=libgl1-mesa-swx11 +THIS_SCRIPT=postinst + +case "$1" in + configure) + # Use alternatives to make it easier to switch between Mesa and 3rd party modules + update-alternatives --force \ + --install /etc/ld.so.conf.d/GL.conf gl_conf /usr/lib/mesa/ld.so.conf 500 \ + --slave /usr/lib/xorg/extra-modules xorg_extra_modules /usr/lib/xorg/x11-extra-modules + + # ldconfig needs to be run immediately as we're changing /etc/ld.so.conf.d/ with + # alternatives. + LDCONFIG_NOTRIGGER=y ldconfig + +esac + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=2 ts=2 tw=80: + --- mesa-7.9+repack.orig/debian/copyright +++ mesa-7.9+repack/debian/copyright @@ -0,0 +1,196 @@ +This package was debianized by James A. Treacy treacy@debian.org on Thu, +6 Jan 2000 01:11:34 -0500. It was newly debianized by Marcelo E. +Magallon on Sat, 25 Dec 2004 14:50:02 -0600. It was +again debianized by Thierry Reding on Sat, 14 Oct 2006 +02:01:12 +0200. + +It was downloaded from http://www.mesa3d.org/download.html + +For more information see: + + http://www.mesa3d.org/ + +The tarball was built by combining MesaLib and MesaDemos tarballs, and +deleting the progs/objviewer/ directory. + +Copyright: + +Upstream Author: Brian Paul + +License: + + License / Copyright Information + + The Mesa distribution consists of several components. Different + copyrights and licenses apply to different components. For + example, GLUT is copyrighted by Mark Kilgard, some demo programs + are copyrighted by SGI, some of the Mesa device drivers are + copyrighted by their authors. See below for a list of Mesa's + components and the copyright/license for each. + + The core Mesa library is licensed according to the terms of the + XFree86 copyright (an MIT-style license). This allows integration + with the XFree86/DRI project. Unless otherwise stated, the Mesa + source code and documentation is licensed as follows: + + Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Attention, Contributors + + When contributing to the Mesa project you must agree to relinquish + your work to the holder of the copyright for the particular + component you're contributing to. That is, you can't put your own + copyright on the code, unless it's a modular piece that can be + omitted from Mesa (like a new device driver). If for example, you + contribute a bug fix to Mesa's texture mapping code, your code + will become a part of the body of work which is copyrighted by + Brian Paul and licensed by the above terms. + +---------------------------------------------------------------------- + +Some files, as listed below, are made available under the SGI Free B +license. This license is as follows: + +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + +Copyright (C) [dates of first publication] Silicon Graphics, Inc. All Rights +Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice including the dates of first publication and either +this permission notice or a reference to http://oss.sgi.com/projects/FreeB/ +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 SILICON GRAPHICS, INC. 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. +Except as contained in this notice, the name of Silicon Graphics, Inc. shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Silicon +Graphics, Inc. + +-------------------------------------------------------------------------- + +Some other files listed below are made available from Silicon Graphics, +Inc. under a more liberal, MIT-style license, as follows: + + Permission to use, copy, modify, and distribute this software for + any purpose and without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both the copyright notice + and this permission notice appear in supporting documentation, and that + the name of Silicon Graphics, Inc. not be used in advertising + or publicity pertaining to distribution of the software without specific, + written prior permission. + + THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" + AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE + INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR + FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, + SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY + KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, + LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF + THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. + + US Government Users Restricted Rights + Use, duplication, or disclosure by the Government is subject to + restrictions set forth in FAR 52.227.19(c)(2) or subparagraph + (c)(1)(ii) of the Rights in Technical Data and Computer Software + clause at DFARS 252.227-7013 and/or in similar or successor + clauses in the FAR or the DOD or NASA FAR Supplement. + Unpublished-- rights reserved under the copyright laws of the + United States. Contractor/manufacturer is Silicon Graphics, + Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. + +-------------------------------------------------------------------------- + + Mesa Component Licenses: + + Component Files Primary Author License + ---------------------------------------------------------------------------- + core Mesa code src/*.[ch] Brian Paul Mesa + include/GL/gl.h + + GLX driver src/X/* Brian Paul Mesa + include/GL/glx.h + include/GL/xmesa.h + + OS/Mesa driver src/OSmesa/* Brian Paul Mesa + include/GL/osmesa.h + + 3Dfx driver src/FX/* David Bucciarelli Mesa + include/GL/fxmesa.h + + BeOS R4 driver mesa/drivers/beos/ Brian Paul Mesa + + MGL driver include/GL/mglmesa.h SciTech, Inc GNU LGPL + + Windows driver mesa/drivers/windows/ Li Wei GNU LGPL + include/GL/wmesa.h + + SVGA driver mesa/drivers/svga/ Brian Paul GNU LGPL + include/GL/svgamesa.h + + DOS driver mesa/drivers/dos/ Charlie Wallace GNU LGPL + include/GL/dosmesa.h + + GGI driver mesa/drivers/ggi/ Uwe Maurer GNU LGPL + include/GL/ggimesa.h + + GLUT src/glut/* Mark Kilgard Mark's copyright + include/GL/*glut*.h + + GLU library src/glu/* Brian Paul GNU LGPL + + SGI GLU library src/glu/sgi/* SGI SGI Free B + include/GL/glu.h + + Ext registry include/GL/glext.h SGI SGI Free B + include/GL/glxext.h + + demo programs progs/demos/* various see source files + + X demos progs/xdemos/* Brian Paul see source files + + SGI demos progs/samples/* SGI SGI MIT-style + + RedBook demos progs/redbook/* SGI SGI MIT-style + + +On Debian systems the full text of the GNU LGPL license is found in +/usr/share/common-licenses/LGPL. + +------------------------------------------------------------------------------ + +The Debian packaging is (C) 2006, Thierry Reding and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. + --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11.prerm +++ mesa-7.9+repack/debian/libgl1-mesa-swx11.prerm @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +THIS_PACKAGE=libgl1-mesa-swx11 +THIS_SCRIPT=prerm + +case "$1" in + remove) + # Use alternatives to make it easier to switch between Mesa and 3rd party modules + update-alternatives --remove gl_conf /usr/lib/GL/ld.so.conf + + # explicit ldconfig due to alternatives + ldconfig + +esac + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=2 ts=2 tw=80: + --- mesa-7.9+repack.orig/debian/libgles1-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libgles1-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGLESv1-CM1 --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx.install +++ mesa-7.9+repack/debian/libgl1-mesa-glx.install @@ -0,0 +1 @@ +dri/usr/lib/libGL.so.* usr/lib/mesa --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx-i686.install +++ mesa-7.9+repack/debian/libgl1-mesa-glx-i686.install @@ -0,0 +1 @@ +dri/usr/lib/i686/cmov/libGL.so.* usr/lib/i686/cmov --- mesa-7.9+repack.orig/debian/compat +++ mesa-7.9+repack/debian/compat @@ -0,0 +1 @@ +7 --- mesa-7.9+repack.orig/debian/watch +++ mesa-7.9+repack/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts="uversionmangle=s/-rc/~rc/" \ +ftp://freedesktop.org/pub/mesa/([\d\.]*)/ MesaLib-(.*)\.tar\.gz --- mesa-7.9+repack.orig/debian/libglu1-mesa.shlibs +++ mesa-7.9+repack/debian/libglu1-mesa.shlibs @@ -0,0 +1 @@ +libGLU 1 libglu1-mesa | libglu1 --- mesa-7.9+repack.orig/debian/libegl1-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libegl1-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libEGL1 --- mesa-7.9+repack.orig/debian/mesa-common-dev.install +++ mesa-7.9+repack/debian/mesa-common-dev.install @@ -0,0 +1,8 @@ +dri/usr/include/GL/gl.h usr/include/GL +dri/usr/include/GL/glext.h usr/include/GL +dri/usr/include/GL/gl_mangle.h usr/include/GL +dri/usr/include/GL/glx.h usr/include/GL +dri/usr/include/GL/glxext.h usr/include/GL +dri/usr/include/GL/glx_mangle.h usr/include/GL +dri/usr/include/GL/internal/dri_interface.h usr/include/GL/internal +dri/usr/lib/pkgconfig/dri.pc usr/lib/pkgconfig/ --- mesa-7.9+repack.orig/debian/libglw1-mesa.install +++ mesa-7.9+repack/debian/libglw1-mesa.install @@ -0,0 +1 @@ +usr/lib/libGLw.so.* --- mesa-7.9+repack.orig/debian/libgles1-mesa.install +++ mesa-7.9+repack/debian/libgles1-mesa.install @@ -0,0 +1,2 @@ +dri/usr/lib/libGLESv1_CM.so.1* usr/lib +dri/usr/lib/egl/st_GLESv1_CM.so usr/lib/egl --- mesa-7.9+repack.orig/debian/libosmesa6.install +++ mesa-7.9+repack/debian/libosmesa6.install @@ -0,0 +1,3 @@ +usr/lib/libOSMesa.so.* +usr/lib/libOSMesa16.so.* +usr/lib/libOSMesa32.so.* --- mesa-7.9+repack.orig/debian/README.source +++ mesa-7.9+repack/debian/README.source @@ -0,0 +1,35 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. + +The .orig.tar.gz is upstream's MesaLib tarball. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. + Thus, the patching system requires a build dependency on quilt. --- mesa-7.9+repack.orig/debian/libgl1-mesa-dev.links +++ mesa-7.9+repack/debian/libgl1-mesa-dev.links @@ -0,0 +1 @@ +/usr/lib/mesa/libGL.so /usr/lib/libGL.so --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11.shlibs +++ mesa-7.9+repack/debian/libgl1-mesa-swx11.shlibs @@ -0,0 +1 @@ +libGL 1 libgl1-mesa-glx | libgl1 --- mesa-7.9+repack.orig/debian/libgles2-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libgles2-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGLESv2-2 --- mesa-7.9+repack.orig/debian/libgles2-mesa-dev.install +++ mesa-7.9+repack/debian/libgles2-mesa-dev.install @@ -0,0 +1,3 @@ +dri/usr/lib/libGLESv2.so usr/lib +dri/usr/include/GLES2 usr/include +dri/usr/lib/pkgconfig/glesv2.pc usr/lib/pkgconfig --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11.install +++ mesa-7.9+repack/debian/libgl1-mesa-swx11.install @@ -0,0 +1 @@ +usr/lib/libGL.so.* usr/lib/mesa/ --- mesa-7.9+repack.orig/debian/libosmesa6-dev.install +++ mesa-7.9+repack/debian/libosmesa6-dev.install @@ -0,0 +1,8 @@ +usr/include/GL/osmesa.h +usr/lib/libOSMesa.a +usr/lib/libOSMesa.so +usr/lib/libOSMesa16.a +usr/lib/libOSMesa16.so +usr/lib/libOSMesa32.a +usr/lib/libOSMesa32.so +usr/lib/pkgconfig/osmesa.pc --- mesa-7.9+repack.orig/debian/README.Debian +++ mesa-7.9+repack/debian/README.Debian @@ -0,0 +1,18 @@ +Documentation for the libegl1-x11, libgles1, libgles2, and libopenvg1 virtual +packages. + +Although there are is no standardised linux ABI for GL|ES or OpenVG, there is +a “strongly encouraged” set of standard headers, type and linkage definitions +supplied by the Khronos group[1]. The mesa implementation provides this ABI. +Any non-mesa implementation that wants to provide these packages should +conform to the Khronos group's de-facto ABI. + +The case of EGL is similar; Khronos again supplies a de-facto linux ABI. +The EGL ABI is necessarily tied to the native windowing system by the +eglNativeDisplayType, eglNativeWindowType, and eglNativePixmapType typedefs. +The EGL virtual package therefore includes the name of the x11 windowing +system to leave room should further windowing ABIs be standardised. + +[1]: http://www.khronos.org/registry/implementers_guide.html#uncontrolled + + -- Christopher James Halse Rogers , Fri, 30 Jul 2010 17:55:56 +1000 --- mesa-7.9+repack.orig/debian/changelog +++ mesa-7.9+repack/debian/changelog @@ -0,0 +1,2963 @@ +mesa (7.9+repack-1ubuntu6) natty; urgency=low + + * No-change rebuild + + -- Bryce Harrington Tue, 18 Jan 2011 18:18:45 -0800 + +mesa (7.9+repack-1ubuntu5) natty; urgency=low + + * debian/patches/108-r300g-fixup-rs690-tiling-stride-align.patch + - Cherry pick 32218e4cc88f7dedebadffe4a80247decf4498f1 from upstream + r300g: fixup rs690 tiling stride alignment calculations + itself cherrypicked from d19b5cbd317620f3977e68fffb7a74793436b7e2 + addressing unity (and other) text and icon rendering problems. + (LP: #681915) + + -- John S Gruber Sun, 09 Jan 2011 14:25:53 -0500 + +mesa (7.9+repack-1ubuntu4) natty; urgency=low + + * debian/patches/winsys_buffer_nullptr.patch: Null pointer check for + winsys buffer. + (LP: #691653) + + -- Bryce Harrington Thu, 06 Jan 2011 14:44:43 -0800 + +mesa (7.9+repack-1ubuntu3) natty; urgency=low + + * debian/patches/106_fix_renderbuffer_segfault.patch: + - Cherrypick of 9b1ac4d1 from 7.9 branch to fix segfault in + renderbuffer update that occurs in Compiz while resizing windows, + giving the error message "failed to attach dri2 front buffer XX" + (LP: #683361) + + -- Bryce Harrington Thu, 02 Dec 2010 17:15:02 -0800 + +mesa (7.9+repack-1ubuntu2) natty; urgency=low + + * debian/patches/105_use_shared_libdricore.patch: + - Fix makefile dependencies to ensure libdricore gets built before + the DRI drivers. Fixes FTBFS on buildds, which ues parallel builds. + + -- Christopher James Halse Rogers Fri, 26 Nov 2010 13:24:55 +1100 + +mesa (7.9+repack-1ubuntu1) natty; urgency=low + + * Merge from Debian experimental. Remaining Ubuntu changes: + - debian/control + + Drop lesstif-dev from Build-Depends; it's in Universe. + + Comment out GLw libs since it depends on lesstif-dev. + + Drop i686 swx11 libgl package. + + Add libdrm-dev to mesa-common-dev Depends. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Use lzma compression for binary debs to save CD space. + + Drop unloved mach64 driver. + - debian/patches + + 100_no_abi_tag.patch + + 101_ubuntu_hidden_glname.patch + + 103_savage-expose_fbmodes_with_nonzero_alpha.patch + + 104_i915_fragment_shader_disable.patch: + - Disable the (experimental) ARB_fragment_shader option by default + on i915, which breaks KDE compositing (LP 628930). + + 107_glxgears_is_not_a_benchmark.patch + - rules, libgl1-mesa-{glx,dev,swx11,swx11-dev}.install, + libgl1-mesa-{glx,swx11}.{postinst,prerm}, libgl1-mesa-dev.links: + Install libGL.so* in /usr/lib/mesa to allow things to work with + alternatives. + - debian/gbp.conf + + Point at Ubuntu branch to make git-buildpackage less narky. + * Drop 107_glxgears_is_not_a_benchmark.patch. Demos have been moved out to + the mesa-demos package. + * debian/rules: + * debian/libgl1-mesa-dri.install: + - Install both r300c/r300g and r600c/r600g, renaming the non-default + r300c to r300c_dri.so and r600g to r600g_dri.so to avoid conflicts. + The radeon DDX will get a patch to select between these appropriately. + * debian/patches/105_use_shared_libdricore.patch: + * debian/rules: + * debian/libgl1-mesa-dri.install + - Build a shared library of common mesa routines and link DRI drivers + against it. Shaves about 30MiB of disc space off the DRI drivers. + * debian/control: + - Add libudev-dev to build-depends. This is requried for the DRI2 EGL + driver to work with a drm display. + * debian/control: + - Build classic nouveau_vieux DRI driver, and install in libgl1-mesa-dri. + this is no less stable than other DRI drivers we ship there. + + -- Christopher James Halse Rogers Wed, 24 Nov 2010 11:46:17 +1100 + +mesa (7.9+repack-1) experimental; urgency=low + + * Repack the upstream tarball to get rid of duplicate files which make dpkg + choke. Thanks to Luca Falavigna for his help diagnosing this. + + -- Julien Cristau Mon, 15 Nov 2010 23:04:45 +0100 + +mesa (7.9-1) experimental; urgency=low + + [ Christopher James Halse Rogers ] + * debian/control: + - Add EGL, GLESv1, GLESv2, and OpenVG virtual packages. The Khronos group + specifies a de-facto linux ABI for these libraries. We have a similar + package for libgl1. + * debian/README.Debian: + - Document the virtual packages above. + + [ Sven Joachim ] + * Bump libdrm-dev build dependency to 2.4.21-2~, the Nouveau Gallium + driver does not build with squeeze's libdrm-nouveau1. + + [ Julien Cristau ] + * New upstream release. + * Update patches: + - 03_optional-progs-and-install.patch dropped, demos moved to a separate + package + - 07-nouveau-update.diff and + 09-intel-fix-invalidate-before-initialisation.diff dropped, they were + backports from upstream + - 04_osmesa_version.diff updated + * Add build-dep on talloc. + * Drop the mesa-utils package, demos were moved out of the mesa tree. + * Use --with-egl-platforms instead of --with-egl-displays, and replace kms + with drm. + * Merge some packaging changes from ubuntu: + - libegl1-mesa-drivers-x11,kms: There are no longer separate kms or x11 + drivers for EGL, libegl1-mesa-drivers now contains a single driver that + provides both backends (Christopher James Halse Rogers) + - Remove pre-generated .pc's, use the ones generated at build time instead + (Robert Hooker) + - Build the r600 gallium driver + - Update symbols files + * README.source: we don't need to repack MesaLib.tar.gz anymore. + * Kill old sourceforge url from debian/watch. + * Ship the gallium r300 driver instead of the classic one. + + -- Julien Cristau Sat, 13 Nov 2010 00:36:11 +0100 + +mesa (7.9~git20100924-0ubuntu3) natty; urgency=low + + * debian/control: + - libgl1-mesa-dev should depends on libxext-dev other pkg-config gl fails. + + -- Didier Roche Fri, 12 Nov 2010 15:37:48 +0100 + +mesa (7.9~git20100924-0ubuntu2) maverick; urgency=low + + * Cherry-pick b24238c4 from 7.9 release branch. Fixes the lookup of + drawables after switching the GLX context, which was causing BadDrawable + errors in clutter applications which use multiple stages (LP: #561734) + + -- Christopher James Halse Rogers Thu, 30 Sep 2010 14:48:12 +1000 + +mesa (7.9~git20100924-0ubuntu1) maverick; urgency=low + + * New upstream snapshot from the 7.9 release branch up to commit 3ad02793. + - Fixes GPU hang in occlusion-query on i965 (LP: #634683) + - Fixes hang/crash when changing desktop-effects settings in + KDE. (LP: #633406) + * debian/rules: + - Update configure options for kms → drm EGL backend name change + - Remove unused HAVE_KMS variable. + + -- Christopher James Halse Rogers Thu, 23 Sep 2010 11:25:10 +1000 + +mesa (7.9~git20100909-0ubuntu3) maverick; urgency=low + + * Drop the changes from previous upload. The Unity white screen problem + is clutter bug #632352, fixed in clutter-1.0 1.2.12-0ubuntu12. + + -- Christopher James Halse Rogers Thu, 16 Sep 2010 16:04:28 +0200 + +mesa (7.9~git20100909-0ubuntu2) maverick; urgency=low + + * 105_old_gc_ignore_destroyed_drawable_events.patch (revert), + 106_old_gc_fix_use_after_free.patch (revert), + 107_old_gc_drop_broken_drawable_garbage_collector.patch (revert): + These three related patches introduced a new garbage collector, however + this introduces a regression causing clutter/mutter/unity to load with + a blank white screen. Revert these three patches to restore mesa to + a working condition for unity. + (LP: #638808, #638725) + + -- Bryce Harrington Wed, 15 Sep 2010 19:32:52 -0700 + +mesa (7.9~git20100909-0ubuntu1) maverick; urgency=low + + [ Robert Hooker ] + * New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413) + * New features include ATI HD5xxx series support in r600, and a vastly + improved glsl compiler. + * Remove pre-generated .pc's, use the ones generated at build time + instead. + * Remove all references to mesa-utils now that its no longer shipped + with the mesa source. + * Add 104_i915_fragment_shader_disable.patch: + - Disable the experimental ARB_fragment_shader option by default on + i915, it exposes incomplete functionality that breaks KDE compositing + among other things. It can be enabled via driconf still. (LP: #628930). + + [ Christopher James Halse Rogers ] + * debian/patches/04_osmesa_version.diff: + - Refresh for new upstream + * Bugs fixed in this release: + - Fixes severe rendering corruption in Unity on radeon (LP: #628727, + LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741). + - Also fixes rendering in gnome-shell (LP: #578619). + - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541). + - Provides preliminary support for new intel chips (LP: #601052). + * debian/rules: + - Update configure flags to match upstream reshuffling. + - Explicitly remove gallium DRI drivers that we don't want to ship. + * Update debian/gbp.conf for this Maverick-specific packaging + * libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers + for EGL, libegl1-mesa-drivers now contains a single driver that provides + both backends. + + -- Robert Hooker Tue, 14 Sep 2010 08:55:40 -0400 + +mesa (7.8.2-2ubuntu2) maverick; urgency=low + + * Cherry-pick EGL/GL|ES/OpenVG virtual packages from Debian experimental git + * debian/control: + - Add EGL, GLESv1, GLESv2, and OpenVG virtual packages. The Khronos group + specifies a de-facto linux ABI for these libraries. We have a similar + package for libgl1. + * debian/README.Debian: + - Document the virtual packages above. + + -- Christopher James Halse Rogers Fri, 30 Jul 2010 19:08:57 +1000 + +mesa (7.8.2-2ubuntu1) maverick; urgency=low + + * Merge from Debian experimental. Remaining Ubuntu changes: + - debian/control + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + + Drop i686 swx11 libgl package. + + Add libdrm-dev to mesa-common-dev Depends. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Use lzma compression for binary debs to save CD space. + - debian/patches + + 100_no_abi_tag.patch + + 101_ubuntu_hidden_glname.patch + + 103_savage-expose_fbmodes_with_nonzero_alpha.patch + + 107_glxgears_is_not_a_benchmark.patch + - rules, libgl1-mesa-{glx,dev,swx11,swx11-dev}.install, + libgl1-mesa-{glx,swx11}.{postinst,prerm}, libgl1-mesa-dev.links: + Install libGL.so* in /usr/lib/mesa to allow things to work with + alternatives. + * debian/rules: Drop get-orig-source target. mesa-demos is now split out + of git, so this divergence from Debian will no longer be informative. + + -- Christopher James Halse Rogers Tue, 27 Jul 2010 16:31:13 +1000 + +mesa (7.8.2-2) experimental; urgency=low + + * Add missing dependencies to libegl1-mesa-dev, thanks to Alexandros + Frantzis (LP: #600243). + * gallium: handle kfreebsd like freebsd, fixing FTBFS (closes: #585618) + * intel: Fix invalidate before initialisation (stolen from fdo bugzilla + #29091, fixes server 1.9rc crash when starting an app using GLX 1.3) + * Pull from 7.8-branch up to commit d06e011. + * Fixup hurd and kfreebsd patches to apply. + + -- Julien Cristau Tue, 20 Jul 2010 15:57:31 +0200 + +mesa (7.8.2-1) experimental; urgency=low + + [ Robert Hooker ] + * Adjust the build system to install the dri target in a separate + DESTDIR, no longer passing --libdir=/usr/lib/glx at configure time + messing with the .pc's since it is used for a majority of the + packages now. + * Fix up the mesa-common-dev header install location. + + [ Julien Cristau ] + * Add ${misc:Depends} to all packages. + * libc6-dev is build-essential, no need to depend on it. + * Replace nonsensical dependency of libglw1-mesa-dev on libxext6 with a + dependency on libxt-dev and lesstif2-dev. + * Add new lintian overrides for the package-name-doesnt-match-sonames stuff. + * Don't ship progs/objviewer in the tarball, it's insanely big and unused. + * New upstream release. + * Refresh patches. + * Stop shipping an upstream git log, it's unlikely to be useful to anyone, + and it's big. + * debian/scripts/choose-configs: use DEB_HOST_ARCH, not DEB_BUILD_ARCH + (closes: #451648). + * Rename radeong_dri.so to r300_dri.so in build, not binary. + + [ Christopher James Halse Rogers ] + * debian/patches/07-nouveau-update.diff: + - Pull in nouveau_class.h header no longer shipped by libdrm 2.4.21 and + update nouveau build to use it. Fixes FTBFS against libdrm 2.4.21. + * debian/rules: + - Simplify selecting which gallium drivers are built. Use this to only + act on gallium packages on archs where we're actually building them. + Part of the fix for FTBFS on Hurd and kFreeBSD. + + -- Julien Cristau Thu, 01 Jul 2010 12:50:18 +0200 + +mesa (7.8.1-3ubuntu3) maverick; urgency=low + + [ Alexandros Frantzis ] + * Make libegl1-mesa-dev depend on the following libraries which + contain the required .pc files, as specified in egl.pc: + libdrm-dev, x11proto-dri2-dev, x11proto-gl-dev, libx11-dev, + libxext-dev, libxxf86vm-dev, libxdamage-dev, libxfixes-dev. + + -- Alberto Milone Thu, 15 Jul 2010 19:01:10 +0200 + +mesa (7.8.1-3ubuntu2) maverick; urgency=low + + * Fix up the mesa-common-dev header installation location + causing FTBS on packages needing GL headers (LP: #594863) + + -- Robert Hooker Tue, 15 Jun 2010 19:04:38 -0400 + +mesa (7.8.1-3ubuntu1) maverick; urgency=low + + * Merge from Debian experimental git. Remaining Ubuntu changes: + - debian/control + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + + Drop i686 swx11 libgl package. + + Add libdrm-dev to mesa-common-dev Depends. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Use lzma compression for binary debs to save CD space. + - debian/patches + + 100_no_abi_tag.patch + + 101_ubuntu_hidden_glname.patch + + 103_savage-expose_fbmodes_with_nonzero_alpha.patch + + 107_glxgears_is_not_a_benchmark.patch + - rules, libgl1-mesa-{glx,dev,swx11,swx11-dev}.install, + libgl1-mesa-{glx,swx11}.{postinst,prerm}, libgl1-mesa-dev.links: + Install libGL.so* in /usr/lib/mesa to allow things to work with + alternatives. + + -- Christopher James Halse Rogers Tue, 15 Jun 2010 08:49:05 +1000 + +mesa (7.8.1-2) experimental; urgency=low + + [ Tormod Volden ] + * debian/rules: Do not strip the same packages twice + + [ Julien Cristau ] + * Stop building the ffb dri driver on sparc, it no longer exists. + * Merge changes from 7.7.1-2. + + [ Christopher James Halse Rogers ] + * debian/compat: + - Bump to v7 for dh_install search path behaviour + * debian/rules: + - Enable gallium for dri build. + - Enable egl for dri build. + - Build nouveau, radeon & swrast gallium drivers + - Build OpenVG, OpenGL|ES, dri, glx & egl state trackers + * debian/libegl1-mesa-dev.install: + * debian/libegl1-mesa.install: + * debian/libegl1-mesa.symbols: + - New libEGL package. + * debian/libgles1-mesa-dev.install: + * debian/libgles1-mesa.install: + * debian/libgles1-mesa.symbols: + - New OpenGL|ES v1.x package. + * debian/libgles2-mesa-dev.install: + * debian/libgles2-mesa.install: + * debian/libgles2-mesa.symbols: + - New OpenGL|ES v2.x package. + * debian/libopenvg1-mesa-dev.install: + * debian/libopenvg1-mesa.install: + * debian/libopenvg1-mesa.symbols: + - New OpenVG package. + * debian/libegl1-mesa-drivers-x11.install: + - New gallium EGL drivers package. + * debian/libegl1-mesa-drivers-kms.install: + - New gallium EGL kms driver package. + * debian/egl.pc: + * debian/vg.pc: + * debian/glesv1_cm.pc: + * debian/glesv2.pc: + - Pull pkg-config files from master and install them in the respective + -dev packages. + * debian/libgl1-mesa-dri-experimental.install: + * debian/libgl1-mesa-dri.install: + - “make install” puts classic and gallium drivers in the same path, but + builds gallium drivers in the gallium/ subdirectory. Copy the drivers + directly from the build path, rather than trying to separate them out + post-hock. + * debian/control: + - Add new packages. + - Add new build-depends on libx11-xcb-dev, libxcb-dri2-0-dev, + libxcb-xfixes0-dev and python-libxml2 for gallium. + - Bump build-depends on dpkg-dev for regex in symbols files. + + -- Julien Cristau Fri, 11 Jun 2010 03:19:09 +0200 + +mesa (7.8.1-1ubuntu1) maverick; urgency=low + + [ Timo Aaltonen ] + * Merged from Debian experimental, remaining changes: + - debian/control + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + - debian/patches + + 100_no_abi_tag.patch + + 101_ubuntu_hidden_glname.patch + + 103_savage-expose_fbmodes_with_nonzero_alpha.patch + + 107_glxgears_is_not_a_benchmark.patch + - rules, libgl1-mesa-{glx,dev,swx11,swx11-dev}.install, + libgl1-mesa-{glx,swx11}.{postinst,prerm}, libgl1-mesa-dev.links: + Install libGL.so* in /usr/lib/mesa to allow things to work with + alternatives. + * Dropped patches: + - 102_dont_vblank.patch: should be obsolete by now + - 104_savage_init_mesa.patch: merged upstream + * control: Drop dependencies on dpkg, since lucid has it and it's the + only version where upgrades are supported from. + * libgl1-mesa-dri.postinst: Drop, same as above. + + [ Robert Hooker ] + * debian/rules: Stop building/shipping abandoned the mach64 DRI driver. + + [ Christopher James Halse Rogers ] + * debian/patches/103_savage-expose_fbmodes_with_nonzero_alpha.patch + - Refresh for driCreateConfigs API change + * debian/gbp.conf + - Set debian-branch=ubuntu to make git-buildpackage less annoying + * debian/rules + - Add get-orig-source target to document the way the orig.tar.gz is + generated. + - The i386 architecture for Maverick is now i686, not i486. Adapt rules + so that the Intel DRI drivers are actually built. + - Drop LDFLAGS unexport. Mesa builds fine on amd64 with Ubuntu's + default LDFLAGS. + * debian/control: + - Drop libgl1-mesa-swx11-i686 package. This package is pointless on + Maverick, as i386 now defaults to i686 + * debian/scripts/choose-configs: + - Drop libgl1-mesa-swx11-i686 from CPU-optimised swrast configs. + + * Changes from unreleased debian-expemental 7.8.1-2 packaging: + [ Tormod Volden ] + * debian/rules: Do not strip the same packages twice + + [ Julien Cristau ] + * Stop building the ffb dri driver on sparc, it no longer exists. + + -- Christopher James Halse Rogers Wed, 19 May 2010 14:47:25 +1000 + +mesa (7.8.1-1) experimental; urgency=low + + * New upstream release. + + Pull from upstream 7.8 branch up to commit db3b3421. + * Refresh patches. + * Bump build dependency to libdrm-dev 2.4.19, x11proto-gl-dev 1.4.11, + and x11proto-dri2-dev 2.1. + + -- Brice Goglin Sun, 18 Apr 2010 09:25:39 +0200 + +mesa (7.7.1-2) unstable; urgency=low + + * debian/rules: use DEB_HOST_ARCH_CPU instead of DEB_HOST_GNU_CPU. Prompted + by Ubuntu which changed the latter to i686, breaking their packages on + i386. + * Pull from mesa_7_7_branch (commit 8ba378d). + + -- Julien Cristau Thu, 20 May 2010 17:34:19 +0200 + +mesa (7.7.1-1ubuntu3) lucid-proposed; urgency=low + + * Add 104_savage_init_mesa.patch: Savage driver needs to initialize + &ctx->Meta->Save. Fixes crash when using _mesa_CopyTexImage2D + on Savage hardware. Cherrypick from upstream. Thanks Tormod. + (LP: #562718) + + -- Bryce Harrington Wed, 21 Apr 2010 09:48:09 -0700 + +mesa (7.7.1-1ubuntu2) lucid; urgency=low + + * Add 103_savage-expose_fbmodes_with_nonzero_alpha.patch: Expose + fbmodes with non-zero alpha depth. Fixes issue where clutter apps + crash when using the savage driver. Thanks to knarf for developing + the fix. + (LP: #467474) + * mesa-common-dev should depend on libdrm-dev + (LP: #490811) + + -- Bryce Harrington Wed, 14 Apr 2010 12:06:00 -0700 + +mesa (7.7.1-1ubuntu1) lucid; urgency=low + + [ Alberto Milone ] + * debian/rules: pass --with-dri-searchpath=/usr/lib/dri:/usr/lib32/dri + to confflags-dri on i386 so that /usr/lib32/dri is used for 32 bit + compatibility on 64 bit systems (LP: #248392). + + -- Timo Aaltonen Thu, 01 Apr 2010 13:31:09 +0300 + +mesa (7.7.1-1) unstable; urgency=low + + [ Brice Goglin ] + * Remove Thierry Reding from Uploaders, closes: #572539. + * Bump Standards-Version to 3.8.4, no changes needed. + + [ Timo Aaltonen ] + * New upstream release. + + -- Brice Goglin Tue, 30 Mar 2010 17:15:09 +0200 + +mesa (7.7-4ubuntu1) lucid; urgency=low + + [Timo Aaltonen] + * libgl1-mesa-dri: Get rid of the old hook (65mesa-check-x86-64). + (LP: #460809) + + [Rolf Leggewie] + * debian/control: depend on dpkg package where u-a supports --force + (LP: #525592) + + -- Timo Aaltonen Tue, 02 Mar 2010 17:11:31 +0200 + +mesa (7.7-4) unstable; urgency=low + + * Pull from upstream mesa_7_7_branch up to commit 293f4d51. + + r6xx/r7xx: emit relocation for FRAG & TILE buffer, closes: #569663. + + -- Brice Goglin Wed, 24 Feb 2010 22:44:11 +0100 + +mesa (7.7-3ubuntu1) lucid; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian experimental. + + [ Robert Hooker ] + * Add 100_no_abi_tag.patch: Removes the ABI tag in /usr/lib/libGL.so.1 + which prevented ldconfig from using a libGL from another directory + at a higher priority than the one in /usr/lib. + * Install libGL alternatives with libgl1-mesa-swx11 as well. (LP: #522048) + + -- Timo Aaltonen Fri, 19 Feb 2010 15:52:12 +0200 + +mesa (7.7-3) experimental; urgency=low + + * Pull from upstream mesa_7_7_branch up to commit f5145a6e. + * Build against libdrm-radeon1 2.4.17 to get DRI2 support. + + -- Brice Goglin Mon, 01 Feb 2010 22:55:36 +0100 + +mesa (7.7-2) experimental; urgency=low + + [ Julien Cristau ] + * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no + good reason. Thanks, Colin Watson! + * Remove myself from Uploaders + + [ Brice Goglin ] + * Pull from upstream mesa_7_7_branch up to commit 2f28ca0a. + + Fix funky colors on radeon/r200/r300. + + -- Brice Goglin Wed, 27 Jan 2010 09:14:38 +0100 + +mesa (7.7-0ubuntu8) lucid; urgency=low + + * debian/libgl1-mesa-glx.postinst: + - Pass LDCONFIG_NOTRIGGER=y to ldconfig as it needs to be run + immediately as we're changing /etc/ld.so.conf.d/ with + alternatives. + + -- Alberto Milone Wed, 20 Jan 2010 13:17:54 +0100 + +mesa (7.7-0ubuntu7) lucid; urgency=low + + * debian/libgl1-mesa-glx.postinst + - Install alternative with --force so that files that + already exist are overwritten thus avoiding to install a + broken alternative. + + -- Alberto Milone Tue, 19 Jan 2010 17:29:19 +0100 + +mesa (7.7-0ubuntu6) lucid; urgency=low + + * debian/libgl1-mesa-glx.postinst + - Remove gl_libraries slave link as the file in ld.so.conf.d is + enough. + + -- Alberto Milone Sun, 17 Jan 2010 16:55:36 +0100 + +mesa (7.7-0ubuntu5) lucid; urgency=low + + * debian/rules: + - Remove invalid "install -d" command. + - Do not pass --libdir=/usr/lib/mesa flag any more. + * debian/libgl1-mesa-dev.install, libgl1-mesa-swx11-dev.install, + libgl1-mesa-swx11.install, libglu1-mesa-dev.install, + libglu1-mesa.install: + - Install *.pc files in /usr/lib/pkgconfig instead of + /usr/lib/mesa/pkgconfig. + - Do not Install libGLU* in /usr/lib/mesa (LP: #506547). + * debian/libglu1-mesa-dev.links: + - Remove file as we install libGLU in the right place now. + + -- Alberto Milone Wed, 13 Jan 2010 20:18:17 +0100 + +mesa (7.7-0ubuntu4) lucid; urgency=low + + * debian/libgl1-mesa-dev.links: + - Add link to /usr/lib/mesa/libGL.so in /usr/lib so as not to break + software that build against mesa (LP: #505359). + * debian/libgl1-mesa-glx.{postinst|prerm}: + - Use alternatives so that /usr/lib/GL is a slave which points to + /usr/lib/mesa. + * debian/libglu-mesa-dev.links: + - Add link to /usr/lib/mesa/libGLU.so in /usr/lib/libGLU.so. + * debian/rules: + - Install /usr/lib/mesa/ld.so.conf + - Create an empty directory (for alternatives) just to be sure: + /usr/lib/xorg/x11-extra-modules. + + -- Alberto Milone Mon, 11 Jan 2010 16:49:14 +0100 + +mesa (7.7-0ubuntu3) lucid; urgency=low + + * Add -l/usr/lib/mesa to dh_shlibdeps to fix FTBFS, thanks to + Albert Damen for the patch! + + -- Stefan Potyra Sun, 10 Jan 2010 00:41:48 +0100 + +mesa (7.7-0ubuntu2) lucid; urgency=low + + * Moving just libGL.so.* to /usr/lib/mesa broke all builds depending on + libGL.so or gl.pc. Fix the swx11 target --libdir to use /usr/lib/mesa. + + -- Timo Aaltonen Sat, 09 Jan 2010 11:21:13 +0200 + +mesa (7.7-0ubuntu1) lucid; urgency=low + + * Merge from Debian experimental. + + -- Timo Aaltonen Sat, 09 Jan 2010 00:12:29 +0200 + +mesa (7.7-1) experimental; urgency=low + + [ Brice Goglin ] + * Bump libdrm build dependency to 2.4.15, closes: #561058. + * New upstream release. + * Pull from upstream mesa_7_7_branch up to commit 6d6c9c66. + + [ Julien Cristau ] + * Add freedesktop.org ftp to watch file since that's where newer upstream + tarballs are. + * Don't include GLUT sources since we don't use them. + + -- Brice Goglin Mon, 11 Jan 2010 17:52:31 +0100 + +mesa (7.7~rc2-1) experimental; urgency=low + + * New upstream release candidate. + + s3v and trident DRI drivers removed since they never worked. + + -- Brice Goglin Sat, 12 Dec 2009 13:02:55 +0100 + +mesa (7.6.1-1) unstable; urgency=low + + * New upstream release + + Pull upstream mesa_7_6_branch up to commit da876fa3 + * Bump linux-libc-dev build-dep to 2.6.31 for the r600 dri driver (fixes + ftbfs on mips). + * Drop hunk from 05_hurd-ftbfs.diff that was applied upstream. Refresh + other patches. + + -- Julien Cristau Tue, 29 Dec 2009 10:42:24 +0000 + +mesa (7.6.1~rc3-1ubuntu2) lucid; urgency=low + + * debian/libgl1-mesa-glx.install: + - Install libGL.so* in /usr/lib/mesa so as to allow things to + work with alternatives. + + -- Alberto Milone Fri, 08 Jan 2010 19:38:14 +0100 + +mesa (7.6.1~rc3-1ubuntu1) lucid; urgency=low + + * Merge from Debian unstable. + + -- Timo Aaltonen Mon, 14 Dec 2009 16:49:11 +0200 + +mesa (7.6.1~rc3-1) unstable; urgency=low + + * New upstream release candidate. + + Pull upstream mesa_7_6_branch up to commit 7d41b424. + + Includes sparc64 xform asm patch from #560403. + * Update debian/rules to fix sparc64 FTBFS, thanks Aurelien Jarno, + closes: #560403. + * Build r600 DRI driver. + + -- Brice Goglin Fri, 11 Dec 2009 18:36:36 +0100 + +mesa (7.6.1~rc2-1ubuntu1) lucid; urgency=low + + * Merge from Debian unstable, remaining changes: + - debian/control + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Build .debs with lzma compression. + - debian/patches + + 101_ubuntu_hidden_glname.patch + + 102_dont_vblank.patch + + 107_glxgears_is_not_a_benchmark.patch + * Drop patches now included upstream: + - 108_fix_scissors_regression.patch + - 109_revert-dma-reuse.patch + - 110_dont_free.patch + + -- Timo Aaltonen Mon, 07 Dec 2009 18:07:26 +0200 + +mesa (7.6.1~rc2-1) unstable; urgency=low + + * New upstream release candidate. + + Pull upstream mesa_7_6_branch up to commit b2953ee. + + i965: Fix the bounds emitted in the vertex buffer packets, + closes: #556541. + + Fix window drawing regression in Kwin on older Radeon hardware, + fix assertion failure leading to crash on kwin when compositing + is enabled, closes: #549588. + + Refresh patches. + + -- Brice Goglin Sun, 06 Dec 2009 00:14:34 +0100 + +mesa (7.6.0-1ubuntu4) karmic; urgency=low + + * Add 110_dont_free.patch: It is not necessary to worry about freeing + the textures, VBOs, etc. in _mesa_meta_free() since these are already + handled by the normal context deallocation code. Fixes a crash in + Blender in brw_prepare_vertices(). + (LP: #438657) + + -- Bryce Harrington Tue, 13 Oct 2009 13:48:03 -0700 + +mesa (7.6.0-1ubuntu3) karmic; urgency=low + + * Add 109_revert-dma-reuse.patch: Fix assertion failure leading to crash + on kwin when compositing is enabled. This reverts commit 284a7af27. + (LP: #446578) + + -- Bryce Harrington Tue, 13 Oct 2009 00:52:32 -0700 + +mesa (7.6.0-1ubuntu2) karmic; urgency=low + + * Add 108_fix_scissors_regression.patch: Fix window drawing regression + in Kwin on older Radeon hardware. + (LP: #446425) + + -- Bryce Harrington Fri, 09 Oct 2009 14:12:44 -0700 + +mesa (7.6.0-1ubuntu1) karmic; urgency=low + + * Merge from Debian. (LP: #420803) + Remaining Ubuntu changes: + - debian/control + + Change maintainer address to Ubuntu. + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + + Require at least libdrm_2.4.12+git20090801.45078630 + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Build .debs with lzma compression. + + Serialize install phase as suggested by Julien Cristau, + fixes amd64 FTBFS. + - debian/patches + + 101_ubuntu_hidden_glname.patch + + 102_dont_vblank.patch + + 107_glxgears_is_not_a_benchmark.patch + * Drop patches now included upstream: + + 108_big_endian.patch + + 109_fix_relocation_delta_for_wm_surfaces.patch + + 110_deassociate_drawables.patch + + 111_dridrawable_nullptr.patch + + 112_dont_corrupt_random_number_state.patch + * Mesa 7.6 fixes the following Ubuntu bugs: + + Suppress excessive warnings on unsupported GLX 1.3 calls. + (LP: #433488) + * See http://www.mesa3d.org/relnotes-7.6.html for more details. + + -- Bryce Harrington Wed, 07 Oct 2009 14:51:41 -0700 + +mesa (7.6-1) unstable; urgency=low + + [ Brice Goglin ] + * New upstream release. + + Fix software fallback assertion on RS480, closes: #539162. + + Fix segfault in _swrast_ReadPixels on i915, closes: #545085. + + [ Julien Cristau ] + * Don't run install from the various configs in parallel, hopefully fixing a + bug in the previous debian/rules. Thanks to Bernhard R. Link for the + suggestions. + + -- Brice Goglin Tue, 29 Sep 2009 11:51:58 +0200 + +mesa (7.6.0~git20090817.7c422387-0ubuntu8) karmic; urgency=low + + * Add 112_dont_corrupt_random_number_state.patch: Fix predictable + numbers being seeded into the RNG in OpenGL when glutCreateWindow() is + called. + (LP: #421651) + + -- Bryce Harrington Wed, 07 Oct 2009 00:38:40 -0700 + +mesa (7.6.0~git20090817.7c422387-0ubuntu7) karmic; urgency=low + + * Add 110_deassociate_drawables.patch, 111_dridrawable_nullptr.patch: + Fix X crash when 3D wine applications are closed. + (LP: #401067) + + -- Bryce Harrington Fri, 02 Oct 2009 18:00:02 -0700 + +mesa (7.6.0~git20090817.7c422387-0ubuntu6) karmic; urgency=low + + * Fix build failures for big endian architectures, update + 108_big_endian.patch. + + -- Matthias Klose Sun, 27 Sep 2009 15:34:47 +0200 + +mesa (7.6.0~git20090817.7c422387-0ubuntu5) karmic; urgency=low + + * debian/rules: Disable r600: Disable r600 as 3D support is still + experimental and causes problems with the gnome session when + compiz is enabled (LP: #419126). + + -- Alberto Milone Wed, 16 Sep 2009 17:43:59 +0200 + +mesa (7.6.0~git20090817.7c422387-0ubuntu4) karmic; urgency=low + + * Add 109_fix_relocation_delta_for_wm_surfaces.patch: Fix relocation + delta for WM surfaces. This was a regression introduced in + 0f328c90dbc893e15005f2ab441d309c1c176245 (LP: #429241). + + -- Alberto Milone Tue, 15 Sep 2009 18:14:48 +0200 + +mesa (7.6.0~git20090817.7c422387-0ubuntu3) karmic; urgency=low + + * Add 108_big_endian.patch: Fix a couple build issues on big-endian hw. + * changelog: Restore missing changelog entries lost during merge. + + -- Bryce Harrington Wed, 26 Aug 2009 13:25:56 -0700 + +mesa (7.6.0~git20090817.7c422387-0ubuntu2) karmic; urgency=low + + * control: Require at least libdrm_2.4.12+git20090801.45078630 + + -- Bryce Harrington Fri, 21 Aug 2009 21:09:03 -0700 + +mesa (7.6.0~git20090817.7c422387-0ubuntu1) karmic; urgency=low + + [Bryce Harrington] + * Checkout from git 20090817 (master branch) up to commit + 7c4223876b4f8a78335687c7fcd7448b5a83ad10 + + Add DRI2 support to -ati + (LP: #329654, #404428, #327698, #321108) + + Fix portion of MythTV Frontend does not work with RADEON DRI + (LP: #341898) + + Fix selection mode on RS482 + (LP: #273329) + + Fix issue running 3D acceleration games on ATI chipsets + (LP: #374590) + + Provide DRI2 swap buffers + (LP: #377090) + + Fix blender unusable with UXA when DRI2 enabled + (LP: #353763) + + Fix glxgears blanking screens on -ati + (LP: #411251) + * Drop 108_bo_assertion.patch (applied upstream) + + [Robert Hooker] + * Only added debian/ tree from origin/ubuntu + * Enable r600 driver. Note that it requires seperate drm modules + not provided in this PPA or in ubuntu, and also does not work with + KMS. + + -- Bryce Harrington Fri, 21 Aug 2009 19:14:36 -0700 + +mesa (7.5.1-1) unstable; urgency=low + + [ Brice Goglin ] + * New upstream release. + * Add README.source. + * Bump Standards-Version to 3.8.3. + + [ Julien Cristau ] + * Override 'package-name-doesnt-match-sonames' lintian warnings for libGLU, + libGLw and both libGLs. + * Use dh_lintian and bump debhelper build-dep accordingly. + + -- Brice Goglin Fri, 04 Sep 2009 11:38:46 +0200 + +mesa (7.5-3) unstable; urgency=low + + * Pull from upstream mesa_7_5_branch up to commit b4ba6a66 + (early 7.5.1 release snapshot). + * Only install the huge upstream changelog in mesa-common-dev, + closes: #538094. + * Enable i686 optimized libraries on hurd-i386. + + -- Brice Goglin Fri, 24 Jul 2009 00:29:28 +0200 + +mesa (7.5-2) unstable; urgency=low + + * Pull from upstream mesa_7_5_branch up to commit a6b31415 + + radeon/DRI1: if we have HW stencil, only expose fbconfigs with stencil, + closes: #537732. + * Install the upstream changelog. + + -- Brice Goglin Tue, 21 Jul 2009 22:21:50 +0200 + +mesa (7.5-1ubuntu1) karmic; urgency=low + + * Merge from Debian. Remaining Ubuntu changes: + - debian/control + + Change maintainer address to Ubuntu. + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Build .debs with lzma compression. + + Serialize install phase as suggested by Julien Cristau, + fixes amd64 FTBFS. + - debian/patches + + 101_ubuntu_hidden_glname.patch + + 102_dont_vblank.patch + + 107_glxgears_is_not_a_benchmark.patch + * Dropped patches, applied upstream: + - 108_bo_assertion.patch + * Mesa 7.5 fixes the following Ubuntu bugs: + - Fixes intelTexImage Assertion failed (LP: #358403) + - Fixes segv during glean/makeCurrent (LP: #333748) + + -- Bryce Harrington Tue, 21 Jul 2009 00:41:19 -0700 + +mesa (7.5-1) unstable; urgency=low + + [ Timo Aaltonen ] + * Move dri.pc to mesa-common-dev (closes: #521667) + + [ Brice Goglin ] + * Enable i686 optimized libraries on kfreebsd-i386, closes: #537345. + * New upstream release: + + i915: Fix assertion failure on remapping a non-BO-backed VBO, + closes: #537147. + + GLX/DRI1: Mark GLX visuals with depth != screen depth non-conformant, + closes: #532980. + + -- Brice Goglin Sun, 19 Jul 2009 12:53:41 +0200 + +mesa (7.5~rc4-1ubuntu3) karmic; urgency=low + + * Add 108_bo_assertion.patch: Fix assertion failure on remapping a + non-BO-backed VBO with intel video. (LP: #396667) + + -- Robert Hooker (Sarvatt) Tue, 07 Jul 2009 14:35:54 -0400 + +mesa (7.5~rc4-1ubuntu2) karmic; urgency=low + + * rules: Add a missing semicolon (FTBFS). + + -- Timo Aaltonen Tue, 30 Jun 2009 19:49:17 +0300 + +mesa (7.5~rc4-1ubuntu1) karmic; urgency=low + + * Merge from Debian experimental, remaining changes: + - debian/control + + Change maintainer address to Ubuntu. + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Use --disable-glw for swx11 targets too. + + Don't enable motif for swx11 targets. + + Build .debs with lzma compression. + - debian/patches + + 101_ubuntu_hidden_glname.patch refreshed. + + 102_dont_vblank.patch refreshed. + - debian/mesa-common-dev.install + + Install dri.pc + * Dropped patches, applied upstream: + 104_fix_dri2_ext_tfp.diff + 105_glXWaitX_segfaults.patch + 108_destroy_intel_fb.patch + 109_release_direct_rendering_resources.patch + 110_null_ptr_during_screen_tear_down.patch + * rules: Serialize install phase as suggested by Julien Cristau, + fixes amd64 FTBFS. + + -- Timo Aaltonen Tue, 30 Jun 2009 17:52:14 +0300 + +mesa (7.5~rc4-1) experimental; urgency=low + + [ Timo Aaltonen ] + * New upstream release candidate. + + xdriinfo now works with DRI2 (closes: #527132) + * rules: Disable EGL. + * mesa-common-dev.install: Don't install glxew.h, conflicts with libglew. + + [ Julien Cristau ] + * Update patches: + + 02_use-ieee-fp-on-s390-and-m68k.patch moved from imports.h to compiler.h + + 03_optional-progs-and-install.patch refreshed + + 05_hurd-ftbfs.diff partly applied upstream + + 06_kfreebsd-ftbfs.diff refreshed + * Install dri.pc, which will be needed to build xorg-server 1.7. + * Don't build gallium for now. + + -- Julien Cristau Sun, 28 Jun 2009 20:21:37 +0200 + +mesa (7.4.4-1) unstable; urgency=low + + [ Julien Cristau ] + * New upstream release. + + fixes a crash in swrast glXWaitX (closes: #528708) + * Don't build hardware dri drivers on s390. + * Update 04_osmesa_version.diff, refresh 06_kfreebsd-ftbfs.diff. + + [ Brice Goglin ] + * Enable motif in GLw, closes: #527483. + + -- Julien Cristau Sun, 28 Jun 2009 18:58:27 +0200 + +mesa (7.4.1-1ubuntu6) karmic; urgency=low + + * Install dri.pc in libgl1-mesa-dev as well + (LP: #379797) + + -- Robert Hooker Wed, 24 Jun 2009 17:47:08 -0400 + +mesa (7.4.1-1ubuntu5) karmic; urgency=low + + * Drop 111_fix_mesa_ref_fb_call_syntax.patch: Testing showed that 110 + alone is sufficient to fix the issue. + + -- Bryce Harrington Wed, 24 Jun 2009 17:07:33 -0700 + +mesa (7.4.1-1ubuntu4) karmic; urgency=low + + * Add 110_null_ptr_during_screen_tear_down.patch and + 111_fix_mesa_ref_fb_call_syntax.patch to fix crashes caused by errors + in the previous memory leak fixes in -1u3. + (LP: #391808) + + -- Bryce Harrington Wed, 24 Jun 2009 15:32:54 -0700 + +mesa (7.4.1-1ubuntu3) karmic; urgency=low + + * Add 108_destroy_intel_fb.patch: Release fb backing regions in + intelDestroyBuffer(). Cherrypicked patch. Fixes memory leak when + destroying framebuffers. + (LP: #360319) + * Add 109_release_direct_rendering_resources.patch: Cherrypicked patch. + Also release direct rendering resources in glXDestroyGLXPixmap. + Fixes leak running compiz with direct rendering. + (LP: #376092) + + -- Bryce Harrington Tue, 23 Jun 2009 13:44:02 -0700 + +mesa (7.4.1-1ubuntu2) karmic; urgency=low + + * Add 107_glxgears_is_not_a_benchmark.patch: glxgears makes + troubleshooting performance issues difficult because bug reporters + see it provides fps output, and end up not looking for a better + benchmark. + + -- Bryce Harrington Mon, 04 May 2009 12:49:12 -0700 + +mesa (7.4.1-1ubuntu1) karmic; urgency=low + + * Merge from debian unstable, remaining changes: + - debian/control + + Change maintainer address to Ubuntu. + + Drop lesstif-dev from Build-Depends. + + Comment out GLw libs since it depends on lesstif-dev. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + use --disable-glw for swx11 targets too. + + Build .debs with lzma compression. + - debian/patches + + 101_ubuntu_hidden_glname.patch. + + 102_dont_vblank.patch: + + 104_fix_dri2_ext_tfp.diff + + 105_glXWaitX_segfaults.patch + + -- Timo Aaltonen Fri, 15 May 2009 14:50:57 +0300 + +mesa (7.4.1-1) unstable; urgency=low + + [ Julien Cristau ] + * Make libgl1-mesa-dev and mesa-common-dev 'Architecture: any'. This gets + rid of uninstallability when a new upstream version isn't built on all + architectures, and allows us to ship potentially arch-specific .pc files. + * Install pkgconfig files for libGLU, libOSMesa and libGLw. + * Make libgl1-mesa-dri{,-dbg} 'Architecture: any', as swrast_dri.so should + get built everywhere. + * Drop the dependency on libgl1-mesa-glx from -dri, and make -glx recommend + -dri instead. The dri drivers are also loaded by the X server, which + doesn't need libGL. On the other hand, libGL needs one of the dri drivers + for direct rendering (either software or hardware). Mark libgl1-mesa-dri + as breaking old xserver-xorg-core and libgl1-mesa-glx, to avoid + incompatibilities. + * Add patch by Samuel Thibault to fix FTBFS on hurd-i386. + * Pull from mesa_7_4_branch as of May 3rd (commit 63375254). + * Move -dbg packages to new 'debug' section. + + [ Brice Goglin ] + * Add patch by Aurelien Jarno to fix FTBFS on kfreebsd-i386, closes: #524690. + + -- Julien Cristau Sun, 03 May 2009 16:05:09 +0200 + +mesa (7.4-2) unstable; urgency=low + + * Upload to unstable. + + -- Julien Cristau Wed, 08 Apr 2009 23:53:47 +0100 + +mesa (7.4-1) experimental; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + + -- Julien Cristau Wed, 01 Apr 2009 20:25:00 +0200 + +mesa (7.4-0ubuntu4) karmic; urgency=low + + * debian/patches/106_compiz_ring_switcher_xorg_segv_on_radeon.diff: + fix xserver segv triggered by compiz ring switcher plugin for users + with r300/r400 radeon chipsets and -ati driver. Patch previously + commited to mesa master as c28707b50701b1cf8727be29d61e2d939c6ee58f + and also to mesa_7_4_branch as a1ce4efefbb7f796a0a24544a1e893a56848f0c1. + Note: it was commited to the 7.4 branch after mesa 7.4.0 release. + (LP: #368049) + + -- Martin Olsson Mon, 04 May 2009 12:25:29 +0200 + +mesa (7.4-0ubuntu3) jaunty; urgency=low + + * Disable 103_bump_965_texture_limit.diff. This is suspected to cause X + freeze issues. + (LP: 359392, Reopen: 146298) + + -- Bryce Harrington Fri, 17 Apr 2009 11:48:50 -0700 + +mesa (7.4-0ubuntu2) jaunty; urgency=low + + * Add 105_glXWaitX_segfaults.patch. Resolves segfaults from unitialized + variables when using swrast based drivers. (LP: #355242) + + -- Mario Limonciello Wed, 15 Apr 2009 01:03:30 -0500 + +mesa (7.4-0ubuntu1) jaunty; urgency=low + + * New upstream release, merge from debian-experimental + (LP: #330476, #347171, #349127) + * Drop 103_rs600_support.patch, included in this version. + * Drop 104_swrast_fbconfigs.patch, included in this version. + * Add 103_bump_965_texture_limit.diff. (LP: #146298) + * Add 104_fix_dri2_ext_tfp.diff. (LP: #324854) + + -- Timo Aaltonen Fri, 03 Apr 2009 12:42:06 +0300 + +mesa (7.4~rc1-1) experimental; urgency=low + + * New upstream release candidate. + * Fix watch file to make uscan not consider release candidates as newer than + actual releases. + * debian/control: add lpia to the Architecture field for + libgl1-mesa-dri{,-dbg} to match Ubuntu. + * debian/rules: on lpia, only build the i915 and i965 dri drivers (based on + Ubuntu changes). + * Build-depend on linux-libc-dev >= 2.6.29 on linux archs. + + -- Julien Cristau Wed, 25 Mar 2009 11:34:42 +0100 + +mesa (7.3-1ubuntu4) jaunty; urgency=low + + * Backport 104_swrast_fbconfigs.patch from mesa git. + - Properly assigns an fbconfig for the root visual. This fixes + issues with MythTV not being able to show fonts when using a software + rasterizer. (LP: #341898) + + -- Mario Limonciello Fri, 27 Mar 2009 02:50:13 -0500 + +mesa (7.3-1ubuntu3) jaunty; urgency=low + + * Add 103_rs600_support.patch: Adds support for the RS600 chip and sets + the number of gb pipes properly for r3xx/r5xx cards. + + -- Bryce Harrington Tue, 03 Mar 2009 00:26:59 -0800 + +mesa (7.3-1ubuntu2) jaunty; urgency=low + + [ Julien Cristau ] + * Drop CFLAGS mangling for lpia and armel from debian/rules, the issue has + been fixed upstream. + + [ Timo Aaltonen ] + * 102_dont_vblank.patch: Disable vblank again for intel, and revisit it + again during the next cycle. + + -- Timo Aaltonen Mon, 23 Feb 2009 16:48:56 +0200 + +mesa (7.3-1ubuntu1) jaunty; urgency=low + + * Merge with Debian experimental. + * Drop 102_remove_flip.diff, included in 7.3.. + + -- Timo Aaltonen Sat, 31 Jan 2009 12:38:44 +0200 + +mesa (7.3-1) experimental; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + + [ Julien Cristau ] + * Try to make the diff a bit smaller by removing directories that are in + upstream git but not in tarballs. + + -- Julien Cristau Fri, 30 Jan 2009 20:00:34 +0100 + +mesa (7.3~rc3-1ubuntu2) jaunty; urgency=low + + * 102_remove_flip.diff: Add a patch from upstream which removes the + remaining bits of pageflipping support. (LP: #320690) + + -- Timo Aaltonen Sun, 25 Jan 2009 00:00:04 +0200 + +mesa (7.3~rc3-1ubuntu1) jaunty; urgency=low + + * Merge with Debian experimental. + * Drop 102_dont_vblank.patch, since the new drm code in the kernel + fixes the bugs that it worked around. + * Bump the build-dependency of libdrm to 2.4.4. It's the first version + with necessary changes to build this. + + -- Timo Aaltonen Fri, 23 Jan 2009 10:20:24 +0200 + +mesa (7.3~rc3-1) experimental; urgency=low + + [ Timo Aaltonen ] + * New upstream release candidate. + + [ Julien Cristau ] + * Refresh patches 03 and 04. + + -- Julien Cristau Wed, 21 Jan 2009 19:01:21 +0100 + +mesa (7.3~rc1-1) experimental; urgency=low + + * New upstream release candidate. + + provides DRI2 (closes: #411141). + + i915: fallback for cube map texture. Fixes GPU hang with scorched3d + (closes: #484049). + + [ Timo Aaltonen ] + * Remove debian/patches/01_disable-intel-classic-warn.diff, the + warning is gone now. + * debian/control: + - Build-depend on x11proto-dri2-dev (>= 1.99.3) + + [ Julien Cristau ] + * Require libdrm-dev 2.4.3. + * Merge packaging changes from unstable, from 7.0.3-5 to 7.0.3-7. + * Delete unused configs/debian-*, and install-source.sh script. We've + switched to using autoconf, and mesa-swx11-source is gone. + * Delete some now unused code from debian/rules. + + -- Julien Cristau Sat, 10 Jan 2009 22:14:55 +0100 + +mesa (7.2+git20081209.a0d5c3cf-0ubuntu4) jaunty; urgency=low + + * debian/rules: Add -D_GNU_SOURCE for lpia & armel (FTBFS). + + -- Timo Aaltonen Fri, 12 Dec 2008 02:15:40 +0200 + +mesa (7.2+git20081209.a0d5c3cf-0ubuntu3) jaunty; urgency=low + + * debian/rules (CFLAGS): Avoid recursive reference. + + -- Matthias Klose Thu, 11 Dec 2008 22:34:43 +0100 + +mesa (7.2+git20081209.a0d5c3cf-0ubuntu2) jaunty; urgency=low + + * debian/rules: Add -D_BSD_SOURCE to CFLAGS for lpia & armel (FTBFS). + * Drop the Xsession.d hook, not needed anymore. + + -- Timo Aaltonen Thu, 11 Dec 2008 23:20:47 +0200 + +mesa (7.2+git20081209.a0d5c3cf-0ubuntu1) jaunty; urgency=low + + * Merge from debian-experimental git branch. + * 103_fix-crash-in-i830_emit_state.dpatch: deleted, included + upstream. + + -- Timo Aaltonen Tue, 09 Dec 2008 21:54:28 +0200 + +mesa (7.2-1ubuntu2) intrepid; urgency=low + + * debian/patches/103_fix-crash-in-i830_emit_state.dpatch: + - Apply upstream commit to fix a crash in i830_emit_state + (LP: #277709) + + -- Chris Coulson Tue, 21 Oct 2008 17:55:10 +0100 + +mesa (7.2-1ubuntu1) intrepid; urgency=low + + * Merge from Debian experimental. + + -- Timo Aaltonen Wed, 24 Sep 2008 21:00:38 +0300 + +mesa (7.2-1) experimental; urgency=low + + [ Brice Goglin ] + * Fix grammar and punctuation in glxinfo(1), thanks Sam Hocevar, + closes: #498595. + + [ Timo Aaltonen ] + * New upstream release. + * Refresh patch 04_osmesa_version.diff + + [ Julien Cristau ] + * Remove the build-dep on dri2proto, DRI2 support has been removed. + * intel: don't warn about TTM init failure. + + -- Julien Cristau Wed, 24 Sep 2008 14:28:21 +0200 + +mesa (7.1-1ubuntu3) intrepid; urgency=low + + * debian/rules: Build i915 and i965 DRI drivers on lpia. (LP: #270106) + + -- Timo Aaltonen Tue, 16 Sep 2008 13:07:02 +0300 + +mesa (7.1-1ubuntu2) intrepid; urgency=low + + * 102_dont_vblank.patch + - Revert the commit which defaults to vblank on intel. It breaks + DPMS with compiz, resulting in a hang. (LP: 262605) + + -- Timo Aaltonen Fri, 12 Sep 2008 11:25:01 +0300 + +mesa (7.1-1ubuntu1) intrepid; urgency=low + + * Merge from debian experimental, remaining changes: + - debian/control + + Change maintainer address to Ubuntu. + + Drop lesstif-dev from Build-Depends since it's a universe component + that Ubuntu doesn't want in main due to security concerns about it + (it's a large codebase without active development - last release >2 + yrs ago). + + Comment out GLw libs since it depends on lesstif-dev. + + Add lpia to -dri and -dri-dbg package in. + + Add Pre-Depends: dpkg (>= 1.14.12ubuntu3) to ensure dpkg + support for lzma. + - debian/rules + + Unexport LDFLAGS (amd64 FTBFS). + + Add Xsession hook to disable ASM optimizations when running on + 64-but processors that don't support them + (LP: 87661, Deb: 484180, fdo: 8724) + + use --disable-glw for swx11 targets too. + + Build .debs with lzma compression. + - debian/patches + + Add 101_ubuntu_hidden_glname.patch. + + -- Timo Aaltonen Thu, 28 Aug 2008 01:18:35 +0300 + +mesa (7.1-1) experimental; urgency=low + + * Add parallel build support. + * New upstream development release + + libGLU now only exports its public interface (closes: #319388) + * Some more parallel build updates. + + -- Julien Cristau Wed, 27 Aug 2008 19:52:24 +0200 + +mesa (7.1~rc3-1ubuntu4) intrepid; urgency=low + + * debian/control: Add Pre-Depends: dpkg (>= 1.14.12ubuntu3) to ensure dpkg + support for lzma. + + -- Martin Pitt Sun, 11 May 2008 10:42:54 +0200 + +mesa (7.1~rc3-1ubuntu3) intrepid; urgency=low + + * Build .debs with lzma compression to reduce libgl1-mesa-dri from 13.2 to + 2.8 MB. + + -- Martin Pitt Tue, 12 Aug 2008 09:31:01 +0200 + +mesa (7.1~rc3-1ubuntu2) intrepid; urgency=low + + * 102_fix-fdo-14441.diff: fix tfp on i965. (LP: #245888) + + -- Timo Aaltonen Fri, 01 Aug 2008 16:08:01 +0300 + +mesa (7.1~rc3-1ubuntu1) intrepid; urgency=low + + * merged with debian-experimental + + -- Michael Vogt Tue, 15 Jul 2008 15:07:41 +0100 + +mesa (7.1~rc3-1) experimental; urgency=low + + [ Julien Cristau ] + * New upstream release candidate (updated to git commit 4fab47b1). + * Build against libdrm >= 2.3.1. + * 04_osmesa_version.diff: fix libOSMesa versioning, to revert accidental + SONAME bump. + + [ Timo Aaltonen ] + * Refresh patches, and drop obsolete 00_create-libdir.patch and + 01_fix-makefile.patch. + * Build-depend on x11proto-dri2-dev. + * Drop mesa-swx11-source. + * Add dri_interface.h to mesa-common-dev. + * Add gl.pc to libgl1-mesa-dev + * rules: Replace the old build system with the new autotools-based + system. + * Run autoreconf before building the various flavours.. + * Add automake & autoconf to build-deps. + * Use --enable-glx-tls for dri. + + -- Julien Cristau Sun, 13 Jul 2008 19:41:42 +0200 + +mesa (7.1~rc1-0ubuntu2) intrepid; urgency=low + + * Merge with debian git, fixes FTBFS on sparc/hppa/ia64. + + -- Timo Aaltonen Mon, 07 Jul 2008 11:12:26 +0300 + +mesa (7.1~rc1-0ubuntu1) intrepid; urgency=low + + [ Bryce Harrington ] + * Merge from git.debian.org, remaining changes: + - Change maintainer address to Ubuntu. + - Drop lesstif-dev from Build-Depends since it's a universe component + that Ubuntu doesn't want in main due to security concerns about it + (it's a large codebase without active development - last release >2 + yrs ago). + - Comment out GLw libs from control since it depends on lesstif-dev. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add Xsession hook to disable ASM optimizations when running on + 64-but processors that don't support them + (LP: 87661, Deb: 484180, fdo: 8724) + - Add 101_ubuntu_hidden_glname.patch. + + [ Timo Aaltonen ] + * Dropped patches + 102_ubuntu_no_glw.patch: + - the new build system handles this better + 103_dlopen_in_driveropen.diff and 104_fix_driveropen.diff: + - upstream + * debian/rules: use --disable-glw for swx11 targets too. + * Unexport LDFLAGS (amd64 FTBFS). + + -- Timo Aaltonen Fri, 04 Jul 2008 13:19:57 +0300 + +mesa (7.0.3-7) unstable; urgency=low + + * Cherry-pick patch from upstream: + Use 3Dnow! x86-64 routines only on processors that support 3Dnow! + (closes: #484180). + * Also build the x86-specific dri drivers on kfreebsd (closes: #492894). + + -- Julien Cristau Sun, 14 Dec 2008 07:34:58 +0530 + +mesa (7.0.3-6) unstable; urgency=high + + * Update debian/copyright to the SGI Free Software License B, version 2.0. + It now mirrors the free X11 license used by X.Org (closes: #368560). + http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html + + -- Julien Cristau Sat, 20 Sep 2008 16:30:44 +0200 + +mesa (7.0.3-5) unstable; urgency=low + + * Disable the i915tex driver, it doesn't build against libdrm 2.3.1. + * Pull from mesa_7_0_branch (27425708). + + -- Julien Cristau Sat, 12 Jul 2008 18:56:19 +0200 + +mesa (7.0.3-4) unstable; urgency=low + + * Pull from mesa_7_0_branch (2ac4919d). + * Put back our configs/ changes into the .diff.gz since choose-configs + needs them before quilt is invoked. Put 04_cleanup-osmesa-configs.patch + there as well for #485161. + + -- Brice Goglin Wed, 18 Jun 2008 20:59:14 +0200 + +mesa (7.0.3-3ubuntu1) intrepid; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer address to Ubuntu. + - Drop lesstif-dev from Build-Depends since it's a universe component + that Ubuntu doesn't want in main due to security concerns about it + (it's a large codebase without active development - last release >2 + yrs ago). + - Comment out GLw libs from control since it depends on lesstif-dev. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch to remove lesstif build depends since + its a universe component. + - Add 103_dlopen_in_driveropen.diff and 104_fix_driveropen.diff from + upstream; "Always call dlopen in DriverOpen". + (LP: 189580, fdo: 13541) + - Add Xsession hook to disable ASM optimizations when running on + 64-but processors that don't support them + (LP: 87661, Deb: 484180, fdo: 8724) + + -- Bryce Harrington Tue, 17 Jun 2008 16:47:35 -0700 + +mesa (7.0.3-3) unstable; urgency=low + + * Pull from mesa_7_0_branch (718724de). + + Fix intel_batchbuffer_space on i965, closes: #455817. + + Fix busy error in i915_wait_irq for real now, closes: #467319. + * Move our configs/ changes from the .diff.gz into our quilt patches, + with 04_cleanup-osmesa-configs.patch renamed into 04_debian-configs.patch, + closes: #485161. + + -- Brice Goglin Tue, 17 Jun 2008 20:00:51 +0200 + +mesa (7.0.3-2) unstable; urgency=low + + * Pull from mesa_7_0_branch (03447de3). + * Set right cliprects for the current draw region on Intel, closes: #467319. + * Use BRW_TEXCOORDMODE_CLAMP instead of BRW_TEXCOORDMODE_CLAMP_BORDER + to implement GL_CLAMP on i965, closes: #478880. + * Fix segment fault with BASE_LEVEL set to 5 for MipMap on i915, + closes: #451339. + * Disable low impact fallback on r300 by default, closes: #440868. + + -- Brice Goglin Fri, 13 Jun 2008 06:53:29 +0200 + +mesa (7.0.3-1ubuntu2) intrepid; urgency=low + + * Add Xsession hook to disable ASM optimizations when running on + 64-but processors that don't support them (LP: #87661) + + -- Tormod Volden Thu, 05 Jun 2008 12:41:25 +0200 + +mesa (7.0.3-1ubuntu1) intrepid; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer address. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + - Add 103_dlopen_in_driveropen.diff and 104_fix_driveropen.diff from + upstream; "Always call dlopen in DriverOpen". (LP: #189580) + + -- Timo Aaltonen Wed, 04 Jun 2008 18:38:43 +0300 + +mesa (7.0.3-1) unstable; urgency=low + + * New upstream release. + * Only call ProgramStringNotify if program parsing succeeded, + closes: #473551. + + -- Brice Goglin Fri, 11 Apr 2008 08:42:37 +0200 + +mesa (7.0.3~rc2-2) unstable; urgency=low + + * Pull from mesa_7_0_branch (1e83d70b). + * Fixes regression in the i965 dri driver (closes: #470984, #470084) + * Update 02_use-ieee-fp-on-s390-and-m68k.patch. + * Change libgl1-mesa-swx11-i686's pre-dependency on libgl1-mesa-swx11 to a + regular versioned dependency, and add ${shlibs:Depends}. + + -- Julien Cristau Mon, 31 Mar 2008 16:47:31 +0200 + +mesa (7.0.3~rc2-1ubuntu3) hardy; urgency=low + + * debian/patches/107_fix_-ve_rhw_regression.patch: Fixes regression + introduced upstream where a -ve rhw workaround is being applied only + for IGD systems, when it should be applied only for *non*-IGD systems. + This resulted in rendering issues in 3D games and drawing programs. + (LP: #199823, #206287) + + -- Bryce Harrington Fri, 04 Apr 2008 19:46:40 -0700 + +mesa (7.0.3~rc2-1ubuntu2) hardy; urgency=low + + [ Laurent Bigonville ] + * debian/patches/105_vblank_fix.patch: Fix "drmWaitVBlank returned -1" error + (LP: #186764) + + [ Timo Aaltonen ] + * Add 106_i965_wine_fix.diff from upstream, "Only call + ProgramStringNotify if program parsing succeeded". (LP: #178292) + + -- Timo Aaltonen Wed, 12 Mar 2008 12:33:41 +0200 + +mesa (7.0.3~rc2-1ubuntu1) hardy; urgency=low + + * Merge from debian unstable (LP: #189167), remaining changes: + - Change maintainer address. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + * Drop patch 103_fix_rv410se.diff, applied upstream. + * Add 103_dlopen_in_driveropen.diff and 104_fix_driveropen.diff from + upstream; "Always call dlopen in DriverOpen". (LP: #189580) + + -- Timo Aaltonen Tue, 26 Feb 2008 13:07:45 +0200 + +mesa (7.0.3~rc2-1) unstable; urgency=low + + * New upstream release candidate. + + enable user-defined clip planes for R300 (closes: #408679) + + 03_optional-progs-and-install.patch: partly applied upstream, fixed up + * Stop building with -O0 on hppa. Bug #451047 should be fixed in recent gcc + versions. + + -- Julien Cristau Sun, 24 Feb 2008 10:22:54 +0100 + +mesa (7.0.2-4ubuntu2) hardy; urgency=low + + * 103_fix_rv410se.diff: + - patch from upstream; "Fix rendering on x700 SE chips." + (LP: #151974) + + -- Timo Aaltonen Wed, 30 Jan 2008 13:18:23 +0200 + +mesa (7.0.2-4ubuntu1) hardy; urgency=low + + * Merge from debian unstable (LP: #151974), remaining changes: + - Change maintainer address. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + + -- Timo Aaltonen Tue, 29 Jan 2008 12:09:30 +0200 + +mesa (7.0.2-4) unstable; urgency=low + + * Update to mesa_7_0_branch head (commit 48ae5cf0). + * Add Vcs-Git, Vcs-Browser and Homepage fields in debian/control. + + -- Julien Cristau Thu, 17 Jan 2008 22:23:06 +0100 + +mesa (7.0.2-3ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer address. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + * debian/control: Do not build-depend on gcc-3.4 anymore. + * Drop 110_ubuntu_use_gcc-3.4_for_i965.patch + + -- Timo Aaltonen Sat, 05 Jan 2008 00:45:31 +0200 + +mesa (7.0.2-3) unstable; urgency=low + + * Update to mesa_7_0_branch head (commit 0107acde). + * Bump Standards-Version to 3.7.3. + * Move libgl1-mesa-swx11-dbg, mesa-common-dev and libosmesa6-dev to section + libdevel. + * libgl1-mesa-swx11 conflicts with libgl1-mesa-glx. Move it and + libgl1-mesa-swx11-dev to priority extra. + * Fix typo in mesa-common-dev's long description. + + -- Julien Cristau Tue, 18 Dec 2007 19:13:18 +0100 + +mesa (7.0.2-2ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer address. + - Add gcc-3.4 as a build dependency for amd64, i386 and lpia. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + - Add 110_ubuntu_use_gcc-3.4_for_i965.patch + + -- Timo Aaltonen Fri, 16 Nov 2007 09:00:24 +0200 + +mesa (7.0.2-2) unstable; urgency=low + + [ Julien Cristau ] + * Don't set -fno-strict-aliasing in configs/debian-default. It is set + upstream now. + * Workaround gcc ICE on hppa: build libOSMesa with -O0 (see bug#451047). + * Add build-dep on libxext-dev. Thanks, Timo Aaltonen! + + -- Brice Goglin Tue, 13 Nov 2007 21:43:40 +0100 + +mesa (7.0.2-1ubuntu2) hardy; urgency=low + + * Add libxext-dev to Build-Depends. + + -- Timo Aaltonen Mon, 12 Nov 2007 14:50:38 +0200 + +mesa (7.0.2-1ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer address. + - Add gcc-3.4 as a build dependency for amd64, i386 and lpia. + - Drop lesstif-dev from Build-Depends. + - Comment out GLw libs from control. + - Add lpia to -dri and -dri-dbg package in debian/control. + - Add lpia to ARCH_X86 in configs/debian-dri-default. + - Add 101_ubuntu_hidden_glname.patch + - Add 102_ubuntu_no_glw.patch + - Add 110_ubuntu_use_gcc-3.4_for_i965.patch + + -- Timo Aaltonen Mon, 12 Nov 2007 12:55:33 +0200 + +mesa (7.0.2-1) unstable; urgency=low + + * New upstream release. + + Fix Blender crash in triangle_twoside(), closes: #439668, #446315. + + Fix crash in _generic_read_RGBA_span_RGB565_MMX(), closes: #445313. + + Fix the new __gluInvertMatrix() function, closes: #440137 ,#441071. + + Refresh 03_optional-progs-and-install.patch since libGLU is not + built when building progs/xdemos. + + Refresh 04_cleanup-osmesa-configs.patch. + + Drop 05_static-nonpic.patch,, applied upstream. + + Remove DESTDIR from INSTALL_DIR in configs/debian-default since + the upstream Makefiles now support DESTDIR. + * Add myself to Uploaders. + + -- Brice Goglin Sun, 11 Nov 2007 11:53:26 +0100 + +mesa (7.0.1-2) unstable; urgency=low + + * Update to latest git (from mesa_7_0_branch) + + adds support for some new intel chipsets (i915 and i915_tex dri drivers) + (closes: #437333) + + broken inline asm in dri drivers fixed (closes: #423739) + + -- Julien Cristau Tue, 28 Aug 2007 12:11:30 +0200 + +mesa (7.0.1-1ubuntu3) gutsy; urgency=low + + * Add lpia to -dri and -dri-dbg package in debian/control. + * Add lpa top ARCH_X86 in configs/debian-dri-default. + + -- Tollef Fog Heen Fri, 12 Oct 2007 14:12:21 +0200 + +mesa (7.0.1-1ubuntu2) gutsy; urgency=low + + * Add fix-965-vblank.patch, pulled from upstream + b3fc9a1585f390274fa26b3e3f80bc6d16f4388a which fixes missed vbl + interrupts on Intel i965 hardware. + + -- Kyle McMartin Wed, 3 Oct 2007 11:11:22 -0400 + +mesa (7.0.1-1ubuntu1) gutsy; urgency=low + + * Merge from debian unstable, remaining changes: + - Change maintainer to Ubuntu + - Add gcc-3.4 as a build dependency for lpia. + - Add support for Intel 945GME, G33, Q33, Q35 + + 200_945gme.patch, upstream a74eec5af5397b612d60dd4b0d81666027f19bb0, + ad6351a994fd14af9d07da4f06837a7f9b9d0de4 + + 201_g33.patch, upstream 8331d9d7aa7cde7126d38d4e1eb5fe8a168077f3 + - Comment out GLw libs from control file + - Dropped Ubuntu addition of conflicts of libgl1-mesa-glx against + libgl1-mesa-swx11, since Debian has hadded a shlibs file for + libgl1-mesa-swx11-i686 + + -- Bryce Harrington Wed, 15 Aug 2007 15:08:32 -0700 + +mesa (7.0.1-1) unstable; urgency=low + + * New upstream release. + * Upload to unstable. + + -- Julien Cristau Thu, 09 Aug 2007 11:56:16 +0200 + +mesa (7.0.1~rc2-1) experimental; urgency=low + + [ David Nusinow ] + * New upstream release candidate + * Bite the bullet and add myself to uploaders + + [ Julien Cristau ] + * Modify the short descriptions of various packages so they fit in .changes + files without being cut off. Thanks, Marc 'HE' Brockschmidt! + * Add a shlibs file for libgl1-mesa-swx11-i686. + + -- Julien Cristau Fri, 27 Jul 2007 20:17:48 +0200 + +mesa (7.0.0-0ubuntu3) gutsy; urgency=low + + * Add gcc-3.4 as a build dependency for lpia. + + -- Matthias Klose Tue, 07 Aug 2007 17:15:37 +0000 + +mesa (7.0.0-0ubuntu2) gutsy; urgency=low + + [ Kyle McMartin ] + * Add support for Intel 945GME, G33, Q33, Q35 + - 200_945gme.patch, upstream a74eec5af5397b612d60dd4b0d81666027f19bb0, + ad6351a994fd14af9d07da4f06837a7f9b9d0de4 + - 201_g33.patch, upstream 8331d9d7aa7cde7126d38d4e1eb5fe8a168077f3 + + -- Kyle McMartin Tue, 03 Jul 2007 19:32:39 +0000 + +mesa (7.0.0-0ubuntu1) gutsy; urgency=low + + [ Bryce Harrington ] + * New upstream release + - Adds OpenGL 2.0 and 2.1 API support. + - Fixed a few fog-related bugs. + - Fixed broken GLSL mix() function. + - Fixed broken GLSL exp() functions. + - Fixed GLSL mod4(vec4, vec4) bug. + - Implemented GLSL asin(), acos(), atan() functions. + - Fixed an R300 driver bug that caused Xorg composite manager to + crash + - Fixed R300 vertex program/matrix bug (fdo# 10848) + - GLSL dFdx() and dFdy() work for fragment program inputs now + (texcoords) + - Fixed potential crash when specifying an invalid texture unit as a + sampler + - Fixed incorrect GLX protocol request for glXDestroyPBuffer() + (fdo# 10983) + - ARB vp state.light[n].half value was incorrect (fdo# 10987) + - Fixed a positional light source bug (fdo# 11009) + - Fixed point size attenuation problem (fdo# 11042) + - Fixed problem where glPopAttrib didn't restore texture object's + LOD bias (fdo# 11049) + - Fixed a TLS / TEXTREL problem (fdo# 7459) + - Some texture code consolidation and simplifiction + - R300 driver clean-ups. + + [ Sarah Hobbs ] + * Added a conflicts of libgl1-mesa-glx against libgl1-mesa-swx11, and vice + versa + + -- Sarah Hobbs Tue, 26 Jun 2007 15:32:00 +1000 + +mesa (6.5.3-1ubuntu1) gutsy; urgency=low + + * Update Maintainer for Ubuntu + + [ Kyle McMartin ] + * Merge with Debian experimental: + - Remove lesstif-dev from Build-Depends (Timo Aaltonen) + - Comment out GLw libs from control file + - Add 102_ubuntu_no_glw.patch to remove lesstif build depends + - Add libxext-dev to Build-Depends (Paul Sladen) + - Add gcc-3.4 [i386 amd64] to Build-Depends (Ben Collins) + - Add 110_ubuntu_use_gcc-3.4_for_i965.patch (Timo Aaltonen) + - Add 101_ubuntu_hidden_glname.patch + - Add 112_fedora-hush-synthetic-visual-warning.patch (Adam Jackson) + + * Dropped patches: + - 103_ubuntu_fd.org-9686-fog.patch merged upstream + - 104_r300_call_radeonsetcliprects.patch merged upstream + - 105_radeon_call_radeonsetcliprects.patch merged upstream + - 106_r200_call_radeonsetcliprects.patch merged upstream + - 107_r200_simplify_r200setcliprects.patch merged upstream + - 111_unichrome_remove_xdrawoffset.patch merged upstream + + -- Kyle McMartin Fri, 25 May 2007 16:43:31 +0000 + +mesa (6.5.3-1) experimental; urgency=low + + [ David Nusinow ] + * New upstream release + + [ Julien Cristau ] + * Cherry-pick commit 65faf023679988f93da82b4c7ebdc689f2094459 by Michel + Dänzer to fix r300 crash. + + -- Julien Cristau Mon, 21 May 2007 11:34:51 +0200 + +mesa (6.5.3~rc3-1) experimental; urgency=low + + [ Brice Goglin ] + * Split out libGLw libs and headers from libgl1-mesa-swx11 and ship both + static and shared libraries, creating libglw1-mesa and libglw1-mesa-dev + (closes: #374904). + + [ Julien Cristau ] + * New upstream release candidate. + + 06_fix_texture_data_corruption.patch, + 07_call_radeonSetCliprects_from_radeonMakeCurrent.patch, + 08_r300_update_window_state_when_bound_but_stamp_changed.patch, + 09_i915_always_enable_pixel_fog.patch: remove, included upstream. + + 01_fix-makefile.patch, 02_use-ieee-fp-on-s390-and-m68k.patch: refresh. + * Add build-dependencies on libxdamage-dev and libxfixes-dev. + * Resync debian/scripts/install-source.sh. + * Build mesa-swx11-source only in binary-indep. + * Update from upstream git (commit + dee1b0d5bbe91f83854813cbbcd3090327bcb5c2). + + -- Julien Cristau Wed, 25 Apr 2007 10:36:50 +0200 + +mesa (6.5.2-7) unstable; urgency=low + + [ Brice Goglin ] + * libgl1-mesa-dev does not need to depend on libgl1-mesa-dri, + libgl1-mesa-glx is enough (since their split in 6.4.1-0.1); + closes: #432081. Thanks, Samuel Thibault! + + [ Julien Cristau ] + * libgl1-mesa-dev Depends on libgl1-mesa-glx (>= ${source:Upstream-Version}) + instead of >= ${Source-Version}. This way it's still installable on + architectures where mesa isn't built yet when a minor revision is + uploaded. + + -- Julien Cristau Wed, 11 Jul 2007 05:50:45 +0200 + +mesa (6.5.2-6) unstable; urgency=low + + * libgl1-mesa-swx11 needs to depend on libosmesa6 (>= 6.5.2-1) because + it used to contain libOSMesa.so.6. This means that programs linked + against this lib got a dependency on -swx11 which was broken since + 6.5.2-1. + * Fix build on hurd-i386 (build libgl1-mesa-glx without dri support and + don't build the dri drivers); closes: #420403. Thanks, Samuel Thibault! + + -- Julien Cristau Thu, 05 Jul 2007 00:56:35 +0200 + +mesa (6.5.2-5) unstable; urgency=low + + [ Brice Goglin ] + * Add 07_call_radeonSetCliprects_from_radeonMakeCurrent.patch + (closes: #420164). Thanks to Christian Ohm. + * Add 08_r300_update_window_state_when_bound_but_stamp_changed.patch + * Add 09_i915_always_enable_pixel_fog.patch + + -- Julien Cristau Fri, 18 May 2007 13:36:25 +0200 + +mesa (6.5.2-4) unstable; urgency=low + + [ Julien Cristau ] + * debian/control: libgl1-mesa-dri now suggests libglide3, with an + explanation in the description (closes: #387339). + * Upload to unstable. + + [ Brice Goglin ] + * Add 06_fix_texture_data_corruption.patch (closes: #412346). + + -- Julien Cristau Fri, 20 Apr 2007 05:57:35 +0200 + +mesa (6.5.2-3) experimental; urgency=low + + * Set LIB_DIR and EXTRA_LIB_PATH in configs/debian-default to override + settings in configs/linux-x86-64. This fixes a FTBFS on amd64, thanks to + Marc 'HE' Brockschmidt for the report (closes: #410118). + + -- Julien Cristau Wed, 7 Feb 2007 23:04:28 +0100 + +mesa (6.5.2-2) experimental; urgency=low + + * Sync Section/Priority for all packages with the override. + * Build the arch:all debs in binary-indep, and use the debhelper -s option + for commands in binary-arch, to fix FTBFS on non-i386 archs, thanks to + Marc 'HE' Brockschmidt (closes: #409638). + * Add myself to Uploaders. + + -- Julien Cristau Sun, 4 Feb 2007 21:14:02 +0100 + +mesa (6.5.2-1) experimental; urgency=low + + [ Thierry Reding ] + * New upstream release. + * Set the Debian X Strike Force as maintainer. + * Add myself to uploaders. + * Build the i915tex DRI module on the i386 and amd64 architectures. + * Add patch 04_cleanup-osmesa-configs that makes the OSMesa configurations + behave as expected. + * Add patch 05_static-nonpic to build static libraries without -fPIC. + * Make debugging symbol packages depend on the corresponding binary package + and put them into the libdevel section. + * Bump shlibs file for the libosmesa6 package to account for added symbols. + Thanks Julien Cristau. + * Build the DRI modules with the default optimization flags. Thanks Julien + Cristau. + * mesa-common-dev now ships the GLX header files so it needs to replace + libgl1-mesa-swx11-dev and libgl1-mesa-dev. Thanks Julien Cristau. + * All OSMesa libraries were moved to the libosmesa6 and libosmesa6-dev + package, so have them replace libgl1-mesa-swx11, libgl1-mesa-swx11-dev and + mesa-common-dev respectively. Thanks Julien Cristau. + + [ Julien Cristau ] + * Drop obsolete depends on xlibs. + + -- Thierry Reding Thu, 11 Jan 2007 15:06:52 +0100 + +mesa (6.5.2~rc3-0.1) experimental; urgency=low + + * Non-maintainer upload. + * Update to latest upstream release candidate. + + -- Thierry Reding Fri, 1 Dec 2006 01:06:28 +0100 + +mesa (6.5.2~rc2-0.1) experimental; urgency=low + + * Non-maintainer upload. + * New upstream release candidate: + + Refresh 02_use-ieee-fp-on-s390-and-m68k.patch. + * Add manual pages for the glxdemo, glxgears, glxheads and glxinfo + utilities (Closes: #385463). + + -- Thierry Reding Wed, 22 Nov 2006 20:49:06 +0100 + +mesa (6.5.2~rc1-0.1) experimental; urgency=low + + * Non-maintainer upload. + * New upstream release candidate. + * Update patches: + + Drop hunk #2 of 01_fix-makefile.patch, applied upstream. + + Drop 03_handle-sync-and-dont-unlock-display.patch, applied upstream. + * Bump build-dependency on libdrm-dev (>= 2.2.0). + * Use the new upstream minstall utility to install files and directories. + Using /usr/bin/install would result in a symlink's target being copied + instead of the symlink. + + -- Thierry Reding Sat, 18 Nov 2006 22:23:04 +0100 + +mesa (6.5.1-0.6) experimental; urgency=low + + * Non-maintainer upload. + * Rewrote the debian/rules file to make it easier to understand. + * Provide i686 optimized versions in libgl1-mesa-swx11-i686 instead of in + libgl1-mesa-swx11. + * Statically link libOSMesa with the software rasterization code from libGL + so that it works independently of the installed libGL. (Closes: #387706) + * Make libosmesa6-dev depend on mesa-common-dev because it only needs the + gl.h header file and no libGL anymore. + * Move glx*.h headers from libgl1-mesa(-swx11)-dev into mesa-common-dev + because both packages provide identical files. + * Add debugging symbol packages for libgl1-mesa-swx11, libgl1-mesa-glx and + libgl1-mesa-dri. + * Repack the contents of the three Mesa tarballs (MesaDemos, MesaGLUT and + MesaLib) as the original source tarball. (Closes: #392715) + * Make mesa-common-dev depend on libx11-dev. + * Provide a new package: mesa-utils. These utilities are shipped in the + MesaDemos package so mesa is the right package to provide them. + + -- Thierry Reding Sat, 18 Nov 2006 18:50:07 +0100 + +mesa (6.5.1-0.5) unstable; urgency=low + + * Non-maintainer upload. + * Build with -fno-strict-aliasing to fix misbuild of i965_dri.so + (closes: #394311). Thanks to Michel Dänzer for the fix, and to Ryan + Richter for the report and testing. + + -- Julien Cristau Wed, 3 Jan 2007 13:48:20 +0100 + +mesa (6.5.1-0.4) unstable; urgency=medium + + * Non-maintainer upload (and brown paper bag release). + * _Depend_ on libx11-dev from libgl1-mesa-dev; revert previous change. + Fixes FTBFS in other packages. (Really Closes: #396498) + + -- Steinar H. Gunderson Sat, 11 Nov 2006 13:55:20 +0100 + +mesa (6.5.1-0.3) unstable; urgency=medium + + * Non-maintainer upload. + * Build-depend on libx11-dev; fixes FTBFS. (Closes: #396498) + + -- Steinar H. Gunderson Wed, 8 Nov 2006 20:58:40 +0100 + +mesa (6.5.1-0.2) unstable; urgency=low + + * Non-maintainer upload + * Disable generation of SSE instructions (closes: #390560) + * Remove duplicate and unused build configurations + * Remove extra source files left from CVS snapshots (closes: #389283) + * Enable i965 DRI driver on i386 and amd64. Thanks to Ryan Richter + for the patch. (closes: #392030) + * Enable Unichrome DRI driver on amd64 (closes: #391900) + * Enable FFB DRI driver on sparc, not i386 (closes: #388025) + * Consistently compile C sources as C99 (closes: #373623) + * Fix X display locking error in GLX. Thanks to Josh Triplett for + the patch. (closes: #391681) + + -- Ben Hutchings Fri, 13 Oct 2006 02:25:52 +0100 + +mesa (6.5.1-0.1) unstable; urgency=low + + * New upstream version + * Build-dep on x11proto-gl-dev >= 1.4.8 + * Stuff not in the upstream tarballs + + os2 glut stuff + + docs/gears.png + * Bump libdrm-dev build-dep to >= 2.0.2 + * Add libdrm cflags to the debian-dri config. This allows the build system + to find drm.h + * Make sure that libGl looks for the dri drivers in the proper location. Do + this by setting the appropriate variables in the debian config + * Re-add s390 and m68k to the USE_IEEE test in src/mesa/main/imports.h. This + package seriously needs to store patches somewhere that are easy to find + and re-apply. + * Add patch from Cyril Brulebois to allow package to build on HURD, which + lacks DRI and directfb. This includes not using lib-directfb in the + build-depends for hurd-i386. It also creates a new debian config, + debian-indirect, which is used when building for HURD. This config is + invoked in the debian-dri config on hurd-i386. Thanks to Cyril Brulebois + for the patch, Michael Banck, Michel Dänzer, and Samuel Thibault for + input on an appropriate fix. (closes: #358065) + + -- David Nusinow Mon, 25 Sep 2006 21:21:47 -0400 + +mesa (6.5.0.cvs.20060524-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Upload mesa 6.5 cvs to unstable, because we need it for Xorg 7.1. + * Upload with medium urgency instead of high, since this is a new + upstream that should get some testing in unstable in spite of the + multiple RC bugfixes. + * Update debian/copyright with the full text of the SGI Free B and SGI + MIT-style licenses in use in the package, and take a stab at + cleaning up the list of paths and licenses. + Closes: #368562. + * Make mesa-common-dev Replaces: xlibosmesa-dev from sarge. + Closes: #384057. + * Fix libgl1-mesa-glx to not Provides: libgl1-mesa-dri, since it + definitely doesn't provide DRI support and this Provides: breaks + upgrades from sarge. Closes: #384282. + * debian/libgl1-mesa-swx11.shlibs: create a static shlibs file, + because libOSMesa.so.6 is not provided by all implementations of + libGL and so needs a separate shlibs declaration. Also make + libgl1-mesa-glx the default alternative instead of libgl1-mesa-swx11 + for consistency even when building against libgl1-mesa-swx11, + because to the extent these are interchangeable (i.e., 99%...), + there should be no reason to prefer one over the other -- and to the + extent that they aren't interchangeable, it's wrong to list libgl1 + as an alternative dependency at all. Closes: #386185. + * Don't provide shlibs at all for libgl1-mesa-swx11-dbg; this is an + unnecessary duplication of the existing libgl1-mesa-swx11 shlibs + since packages should not really be linking against /usr/lib/debug/ + separately. + * src/mesa/tnl/t_vb_render.c: Drop a pointless printf() in the + RENDER_LINE macro, getting rid of copious debug output on console. + Closes: #369895. + * libgl1-mesa-swx11 has no reason to depend on libglu, anything that + wants libglu will have its own dependency on it; drop this + hard-coded dependency from debian/control. + * Have libglu1-mesa-dev Provides: xlibmesa-glu-dev, since it's the + successor to that package and xlibmesa-glu-dev is still referenced + in a number of places and this makes for more reliable builds than + depending on alternatives without requiring another dummy -dev + package from xorg. + * Replace references to Source-Version in debian/control with either + binary:Version or source:Version, depending on whether the + relationship references an arch: any or arch: all package, making + mesa binNMU-safe; add build-depends on dpkg-dev (>= 1.13.19) to + ensure these substvars are available. + + -- Steve Langasek Fri, 15 Sep 2006 15:51:16 -0700 + +mesa (6.5.0.cvs.20060524-1) experimental; urgency=low + + * The "-O666 -fwater-c00ling -DBE_F4ST" release + * New pull from CVS + * Merge back and forth with 6.4.2-1 + * configs/debian*_i386: disabled, optimized build fuxxored. + + -- Marcelo E. Magallon Wed, 24 May 2006 14:12:13 -0600 + +mesa (6.5.0.cvs.20060512-0.0.1) experimental; urgency=low + + * New upstream release (6.5.0) + * Pulled CVS as of 2006-05-12 + * debian/control: remove DirectFB packages + + -- Marcelo E. Magallon Fri, 12 May 2006 15:23:49 -0600 + +mesa (6.4.2-1) unstable; urgency=low + + * The "please, please, please don't hate me" release. + * New upstream release. + * Ack NMUs + * debian/control: mesa-common-dev Replaces xlibmesa-gl-dev (<< 1:7) + AGAINST MY BETTER JUDGEMENT. The problem here is gratuitous package + renames within a system that does not support them. (closes: + bug#362063) + * debian/control: hurd-i386 doesn't have drm. Doesn't fix #358065, + yet. + * bin/mklib: fix from Robert Millan to support hurd-i386 and + GNU/kFreeBSD. Thanks Robert. (closes: bug#358066) + * src/glx/x11/indirect_vertex_array.c, src/mesa/main/glheader.h, + src/mesa/drivers/dri/common/glcontextmodes.c: fix broken indirect + rendering on 64-bit platforms. Thanks Aaron M. Ucko. (closes: + bug#364228) + * debian/control: b-d on x11proto-gl-dev. Please don't hate me! + * debian/control: Standards-Version: 3.7.2 + * debian/rules: export DEB_HOST_ARCH + * configs/debian-dri: use DEB_HOST_ARCH to decide if certain DRI drivers + should be built or not. + + Built only for i386: i810 i830 sis. + Rationale: integrated chipsets available only for i386 processors. + + Built only for i386: ffb. + Rationale: Michel Dänzer said so, no idea why. + + Built only for i386, amd64: i915. + Rationale: Apparently this is available in the 64-bit Intel chipset. + Please file a bug report stating which drivers should be included/excluded + for which architectures. Positive lists are preferred. If possible state + why. + * debian/mesa-swx11-source.install: nuke this abomination. Dinamically + generate the list at build time. + * debian/drivers.map: add gl-debian-dri_i386 + * debian/README.build: updated, add big friendly letters in short sentences. + Perhaps I can read it myself this way... + * debian/rules, configs/debian, configs/debian-dri, configs/debian_i386, + configs/debian-dri_i386, debian/libdir.map, debian/drivers.map: hack in + support for variable driver's dir. If you want this for your pet + architecture please provide BOTH configs/debian_arch and + configs/debian-dri_arch. If you just want to include/exclude DRI drivers + on your architecture look in configs/debian-dri. + * configs/debian*_i386: disabled, optimized build fuxxored. + * debian/rules: remove misguided Perl construct, replace by something + simpler in shell. I actually meant to do something else with the Perl + thing, but got distracted and forgot about it. Thanks Aaron M. Ucko! + * debian/rules: make it work like debian/README.build says it works wrt to + building optimized targets. + + -- Marcelo E. Magallon Tue, 16 May 2006 18:07:53 -0600 + +mesa (6.4.1-0.4) unstable; urgency=low + + * NMU + * Add versioned conflict between libgl1-mesa-dri and xlibmesa-dri so that + the xlibmesa-dri transitional upgrade package works + + -- David Nusinow Mon, 6 Mar 2006 21:46:18 -0500 + +mesa (6.4.1-0.3) unstable; urgency=low + + * NMU + * Add s390 and m68k to the USE_IEEE test in src/mesa/main/imports.h. + (closes: #349437) + + -- David Nusinow Sat, 11 Feb 2006 17:59:26 -0500 + +mesa (6.4.1-0.2) unstable; urgency=low + + * NMU + * Re-add dh_installdirs call to binary-indep target so that we get + arch-specific dirs for the mesa-swx11-source package + * Remove makedepend from build-depends. Now we'll just build-dep on xutils + to get the app, which will translate over to our own xorg 7.0 plans. + + -- David Nusinow Tue, 31 Jan 2006 19:21:12 -0500 + +mesa (6.4.1-0.1) unstable; urgency=low + + [ Marcelo E. Magallon ] + * debian/control: build-depend on xutils + * include/GL/glx{int,proto,md,tokens}.h: missing upstream (closes: bug#326466) + * debian/libgl1-mesa-dri-dev.install: install GLX include files here, too. + * debian/rules: GLU and GLW don't have arch-specific targets. + + [ Daniel Stone ] + * New upstream version, incorporating changes from Ubuntu 6.3 packaging. + * Rename packages: + - mesag3 -> libgl1-mesa-swrast + - mesag-dev -> libgl1-mesa-swrast-dev + - libgl1-mesa-dri -> libgl1-mesa + - libgl1-mesa-dri-dev -> libgl1-mesa-dev + - libgl1-mesa-dri still exists, but now contains the DRI modules only. + * Drop dependency *from* mesa-common-dev on libgl1-mesa-dev and + libglu1-mesa-dev; it should be the other way around. (closes: #336565) + * Add Build-Depends on pkg-config to get flags from libdrm, and libexpat-dev + for DRI configuration. Break out xlibs-dev Build-Depends to the + individual libraries required. + * Bump libdrm-dev Build-Depends to >> 1.0.5, in order to get new + via_drm.h to build the unichrome DRI driver. + * Configs: pare DRI drivers down to a sensible set for each architecture. + * Remove completely broken Glide target, which caused FTBFS. + * Add mesa-swrast-source package, providing the source for the software + rasteriser for libGLcore in the X server. + * Drop tight libosmesa6 -> libgl1-mesa-swrast Depends, replace with + shlibs:Depends. + + [ David Nusinow ] + * New upstream version (6.4.1) (closes: #232665) + * Merge changes from Ubuntu version 6.4.1-0ubuntu1. + (closes: #341479, #340168, #334742) + + Add new files required by xorg-server GL build to mesa-swrast-source. + * NMU to begin getting Xorg 7.0 in to Debian + * Change libgl1-mesa-swrast Depends on libx11-6-dev to libx11-dev. + * Change libgl1-mesa-swrast to be named libgl1-mesa-swx11 + * Change libgl1-mesa to be named libgl1-mesa-glx + * mesa-swrast-src.install stop looking for the swx11 dir and look for swrast + + -- David Nusinow Sat, 21 Jan 2006 21:43:37 -0500 + +mesa (6.3.2-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Adjust Build-Depends: + + xlibs transition (Closes: #347129). + + xutils, xlibmesa-gl-dev (Closes: #326466). + * mesag-dev: Depends: libx11-dev (Closes: #347205). + + -- Christoph Berg Fri, 20 Jan 2006 20:45:43 +0100 + +mesa (6.3.2-2) unstable; urgency=low + + * debian/rules: build only whatever needs to be build according to + debian/control. + * debian/libdir.map: it's usr/lib/debug not usr/lib/dbg + * debian/rules: select optimized targets for the current host architecture + only (thanks Michel!) + * debian/README.build: reword some of the directions, add more info. + * debian/control: forgot to add CPR relationships in the new packages + (thanks Michel!) + * debian/control: Set maintainer to pkg-mesa-devel, add myself as uploader + + -- Marcelo E. Magallon Sun, 28 Aug 2005 14:41:15 -0600 + +mesa (6.3.2-1) unstable; urgency=low + + * New upstream + * configs/debian-dri: new target + * debian/control: add build-depends on libdrm-dev + * debian/rules: pass SRC_DIRS instead of SUBDIRS on the command line. + This allows for configurations to override the command line in a + sane way. + * configs/debian-dri: override SRC_DIRS + * configs/debian: add -D_GNU_SOURCE (required by dri drivers) + * debian/control, debian/rules: drop glide out of this package, it + will be moved to the mesa-legacy package, forked from 6.2.1-7. + * debian/drivers.map, debian/rules: take into account that some + drivers have external components. + + To be fixed: debian/drivers.map hardcodes locations + * debian/control: libgl1-mesa-dri, libgl1-mesa-directfb: new drivers + * dh_makeshlibs for libgl1-mesa-dri and libgl1-mesa-directfb + * debian/control: priority is optional... again... + + -- Marcelo E. Magallon Sun, 21 Aug 2005 17:13:19 -0600 + +mesa (6.2.1-7) unstable; urgency=low + + * Previous upload got lost somewhere + + bin/mklib: add GNU/kFreeBSD, patch from Aurelien Jarno (closes: + bug#307154) + + recompile with newer g++ + + -- Marcelo E. Magallon Tue, 02 Aug 2005 06:47:20 -0600 + +mesa (6.2.1-6) unstable; urgency=low + + * bin/mklib: add GNU/kFreeBSD, patch from Aurelien Jarno (closes: + bug#307154) + * recompile with newer g++ + + -- Marcelo E. Magallon Sun, 24 Jul 2005 11:47:16 -0600 + +mesa (6.2.1-5) unstable; urgency=low + + * debian/rules: big mess up, files are not being moved to their proper + places. I naively assumed that command-line options to debhelper + commands would override DH_OPTIONS, that is, that having + DH_OPTIONS=-i (as suggested in the documentation) would mean + something like "use -i unless -p is passed on the command line". It + actually means "use -i in addition to -p passed on the command + line", which does not make any sense, but is consistent with the + wording in the documentation. (closes: bug#306499, bug#306918, + bug#307095) + + -- Marcelo E. Magallon Sun, 01 May 2005 09:45:12 -0600 + +mesa (6.2.1-4) unstable; urgency=low + + * debian/control: fix description to reflect the exact content and + purpose of package (libosmesa-dev, mesag-dev). + * debian/rules: DH_OPTIONS=-s added to binary-arch target. (closes: + bug#306091) + + -- Marcelo E. Magallon Sat, 26 Mar 2005 08:03:44 -0600 + +mesa (6.2.1-3) unstable; urgency=low + + * debian/control: try to match the override file. If mesa is "extra" + (for whatever reason), all the packages should be extra. + * debian/rules: quick workaround for left-over libGL.so in GLU -dev + package. + + -- Marcelo E. Magallon Thu, 24 Mar 2005 19:35:34 -0600 + +mesa (6.2.1-2) unstable; urgency=low + + * The "thank you so much, I'm still voting against you" release. + * debian/rules: correct artifact of me not having had a proper + pbuilder environment to build stuff on and the repackaging from the + previous release. The -glu- and -glw- targets now explicitly depend + on the matching -gl- target, and symlinks are placed in the build + directories in order to actually have a libGL.so to make ld happy + when creating the libraries. + * debian/rules: uncomment dh_install :-\ There was a reason why I had + commented that out... + * First change closes: bug#298922 + * Second change closes: bug#300302, bug#300284, bug#300430 + * debian/control: "An X", whatever, I've been corrected multiple times + in both ways (translators beware). (closes: bug#300012) + + -- Marcelo E. Magallon Sun, 20 Mar 2005 22:03:29 -0600 + +mesa (6.2.1-1) unstable; urgency=low + + * The "autobuilders, please please please don't hate me" release. + * New upstream. + * Repackage: + + Fall prey to debhelper + + Entries below this one preserved for historical reasons or + sentimental value, pick as many as you want. They bear NO + relation to the actual packages! + * configs/debian, configs/debian-debug, configs/debian-debug-i386, + configs/debian-glide, configs/debian-glide-i386, configs/debian-i386, + configs/debian-osmesa16, configs/debian-osmesa16-static, + configs/debian-osmesa32, configs/debian-osmesa32-static, + configs/debian-static, configs/debian-static-i386: new files. + * configs/debian-sparc: Dave Miller confirmed that the sparc assembly + files do work on Linux. I don't know where to install the optimized + libraries, so the file doesn't actually exist. Please read + debian/README.build if you want to have a sparc-optimized library. + * debian/control: GGI and glide2 are gone. glide is glide3. + * debian/rules: modify shlibs file for the glide3 target to require glide3 + and only glide3 because that library exports functions not available in + other libGLs. Rationale: if someone is compiling a Debian package and + uses the glide target either he doesn't know what he is doing or he knows + exactly what he is doing. In the first case the package should not be + installable and in the second case the package requires this particular + version. + * debian/control: libgl1-mesa-glide3-dev does NOT provide a proper OpenGL + development environment (see above). + * PCR is bound to be wrong... *sigh* + + -- Marcelo E. Magallon Sat, 25 Dec 2004 14:50:02 -0600 + +mesa (6.0.1-1) unstable; urgency=low + + * New upstream release. + * debian/rules: redid a bunch of stuff in order to support new build system + without autoconf and automake stuff. The next version is going to change + this _again_. + + -- Marcelo E. Magallon Sun, 11 Apr 2004 07:00:19 -0600 + +mesa (5.0.0-5.1) unstable; urgency=low + + * Non-Maintainer Upload. + * Rename "GGIMesa"-references in src/GGI/default/Makefile.am to + "MesaGGI", which makes the package build again with newer libtool. + (Closes: #213836) + + -- Steinar H. Gunderson Sun, 15 Feb 2004 17:37:08 +0100 + +mesa (5.0.0-5) unstable; urgency=low + + * debian/control: yank and put error? Remove hard-coded + nvidia-glx-dev from mesag-glide2-dev dependencies. + + -- Marcelo E. Magallon Sun, 09 Feb 2003 10:31:51 +0100 + +mesa (5.0.0-4) unstable; urgency=low + + * debian/rules: fix typo in definition of GLIDE_ARCHS. (closes: bug#179622) + + -- Marcelo E. Magallon Mon, 03 Feb 2003 20:19:12 +0100 + +mesa (5.0.0-3) unstable; urgency=low + + * The "it's amazing how people pick severities" release + * debian/control: mesa-common-dev conflicts with xlibmesa-dev. Actually put + dependency of mesa-common-dev on the mesa-*-dev packages to avoid having + to track other libgl-dev packages popping up. IMO this is less error + prone. You can't install mesa-common-dev without installing mesa-*-dev, + and those packages conflict with other libgl-dev packages. (closes: + bug#177996) + * Rename libglu1c102 to libglu1-mesa; the libglu1c102 is incorrent since + this library does not export C++ functions. Sorry about the mess. + * Rename libglu1-dev to libglu1-mesa-dev to be consistent + * debian/rules: use grep-dctrl to extract architectures from debian/control + * debian/control: add grep-dctrl to build-depends + * debian/shlibs.libglu: libglu1-mesa | libglu1 + * debian/rules: install include/GL/xmesa.h in /usr/include/GL/xmesa.h; I'm + not 100% sure this is the right thing to do, but it's a niche so I don't + think it will actually make trouble (closes: bug#148866) + * debian/rules: install include/GL/glx*.h in the common package. (closes: + bug#178562) + * debian/rules: nasty hack to work arround libtool's idea of how libraries + should be linked (closes: bug#178514) + * debian/rules: even nastier hack. Getting environment variables to + percolate thru all the make calls isn't getting anywhere. + * si-glu/Makefile.am: export only glu.* symbols + * si-glu/Makefile.am: add -lm to link line + * src/Makefile.am: god damm it. If you use libm link to it! + * debian/control: mesa-common-dev depends on libglu1-mesa-dev to satisfy + libgl-dev's requirements + + -- Marcelo E. Magallon Mon, 27 Jan 2003 17:15:25 +0100 + +mesa (5.0.0-2) unstable; urgency=low + + * debian/control: Not funny, I'm sure I put lesstif and xlibs-dev in the + build-depends. CVS says I didn't. (closes: bug#176730) + * debian/control, debian/rules: regenerate auto-stuff (closes: bug#176729) + * debian/control, debian/rules: GCC C++ 3.2 transition (libglu1c102 -- ugly!) + * remove Makefile.in from CVS control + * si-glu/libnurbs/interface/Makefile.am: fix INCLUDES macro + + -- Marcelo E. Magallon Sun, 19 Jan 2003 00:48:32 +0100 + +mesa (5.0.0-1) unstable; urgency=low + + * New upstream release, it looks like glide and GGI are in working + condition again. + * FX patches from previous releases gone. They'll be back later. + * debian/rules: some clean ups. + * debian/control: add libglu1 packages + * debian/control: Standards-Version: 3.5.8 + * debian/rules: Build Xt widgets (if you need this stuff, you need to depend + on mesag-dev, libgl-dev is not enough) + * debian/control, debian/rules: add mesa-common-dev package + * debian/control, debian/rules: add osmesa packages. + + -- Marcelo E. Magallon Sun, 15 Dec 2002 12:28:49 +0100 + +mesa (4.0.3-1) unstable; urgency=low + + * New (and long delayed) upstream version + * Redid a bunch of FX patches, probably broke. + + -- Marcelo E. Magallon Thu, 03 Oct 2002 11:27:29 +0200 + +mesa (3.5-1) unstable; urgency=low + + * New upstream version. + * Redid patches. + * Disabled building GGI target. Someone with a good understanding of GGI + needs to write a driver for mesa. The old version doesn't cut it + anymore. + * Most makefiles won't work. Copied them out of CVS. + * src/Makefile.am: add -lm to library list. (closes: bug#102717) + * configure.in: adjust GLU's version info to match previous release. + + -- Marcelo E. Magallon Mon, 25 Jun 2001 22:13:40 +0200 + +mesa3 (3.4.2.1-4) unstable; urgency=low + + * So, here's the deal: the 3Dfx backend is going nowhere in 4.x and 5.x is + just arround the corner. Same thing for the GGI stuff. In order to leave + the people who need this stuff with _something_ to work with, I'll compile + those targets out of the mesa3 source package and the mesa package will + stuck to plain old X. + * debian/control, debian/rules: strip out all the parts concerning to mesa3g + and mesa3g-dev + * debian/control: update GGI architectures, let's see what happens + * debian/rules: special case alpha for stripping options. Chris, did you + ever figure out what the problem actually is? (closes: bug#99284) + * debian/rules: hereby I decree that everything in etc is a conffile. Die + future bugs, die!. + * configure: fix ggi_libdir, ggi_confdir (closes: bug#139598) + + -- Marcelo E. Magallon Sun, 29 Sep 2002 11:21:00 +0200 + +mesa (3.4.2.1-3) unstable; urgency=low + + * Actually install widgets on the mesag-dev package (closes: bug#98988) + + -- Marcelo E. Magallon Sat, 9 Jun 2001 16:39:36 +0200 + +mesa (3.4.2.1-2) unstable; urgency=low + + * src/X/xmesa1.c: I knew it, I knew it. This was bound to break. Stupid + typo. Restored MESA_GLX_FX (got renamed to GLX_FX accidentally, if you + have to know) (closes: bug#94114) + + -- Marcelo E. Magallon Mon, 21 May 2001 08:52:07 +0200 + +mesa (3.4.2.1-1) unstable; urgency=low + + * Upstream released 3.4.2. + * Hmmm... thought about it on my way home. The code to parse 3dfx.conf + is wrong. Redid. Still not tested. (closes: bug#94114) + * debian/README.Debian: document 3dfx.conf + + -- Marcelo E. Magallon Sat, 19 May 2001 11:57:33 +0200 + +mesa (3.4.2-1) unstable; urgency=low + + * New upstream version. + * debian/config.guess, debian/config.sub: newest versions from + http://subversions.gnu.org/cgi-bin/cvsweb/config (closes: bug#95338) + * GAAAAAAARGGH! src/X/xmesa1.c: horrible hack to use /etc/mesa/3dfx.conf + if there's no MESA_GLX_FX environment variable defined. I. Hate. + This. I'll make a deal with you: you find another of these things, + and you send me a nice tested patch. I don't have a 3DFX card and I + *HATE* uploading stuff I can't fully test. (closes: bug#94114) + * debian/rules: use the new files + * debian/rules: s/TMPDIR/DTEMPDIR/g + * gl3DfxSetDitherModeEXT from Zephaniah (closes: bug#65860) + * Disable GL_EXT_shared_texture_palette per default. Patch looks funny, + but I'll blindly trust Zephaniah. + * Hmmm... I hope Zephaniah tested this, because it broke in a rather silly + way at compile time. + * Fancy what people regard as "pretty important". + + -- Marcelo E. Magallon Fri, 18 May 2001 09:23:49 +0200 + +mesa (3.4.1-3) unstable; urgency=low + + * PLEASE SUBMIT NMUs TO THE BTS, DAMN IT! + * debian/control: exclude m68k from libggi2-dev build-dependency. + + -- Marcelo E. Magallon Sat, 17 Mar 2001 19:45:09 +0100 + +mesa (3.4.1-2) unstable; urgency=low + + * debian/control: add missing dependency on xlibs-dev and corrected the + one for libglide2-dev + + -- Marcelo E. Magallon Wed, 14 Mar 2001 00:21:42 +0100 + +mesa (3.4.1-1) unstable; urgency=low + + * New upstream version. + * New maintainer. (closes: bug#81139) + * Some fixes to get it to compile. + * debian/rules: some reorganization happened to allow me test different + builds better. + * debian/control: nuked widgets package, if you miss it, you are doing + something wrong. + * debian/rules: -dev packages will be missing some garbage they used to + install. If you miss any of those files, I'm fairly confident you + are doing something wrong. + * configure, ltmain.sh, aclocal.m4, acinclude.m4, ...: vicious hacks to + allow the GGI version to compile. + * TODO: add the widgets to the packages + * TODO: make OSmesa packages + + -- Marcelo E. Magallon Sat, 10 Feb 2001 18:34:13 +0100 + +mesa (3.2.1-1) unstable; urgency=low + + * New upstream version. + + -- James A. Treacy Mon, 31 Jul 2000 15:13:34 -0400 + +mesa (3.2-2) frozen unstable; urgency=low + + * add MMX and 3Dnow opts for x86. + + -- James A. Treacy Fri, 7 Jul 2000 16:06:43 -0400 + +mesa (3.2-1) frozen unstable; urgency=low + + * New upstream version. + * Made minor changes to README.3DFX. Closes bug#56827 + * Added symlinks for mesa widget libraries. Closes bug#63115 + + -- James A. Treacy Wed, 28 Jun 2000 11:21:09 -0400 + +mesa (3.1-17) frozen unstable; urgency=low + + * Fixed Makefile for demos in mesag-widgets-dev. Closes bug#62674 + + -- James A. Treacy Fri, 19 May 2000 13:23:00 -0400 + +mesa (3.1-16) frozen unstable; urgency=low + + * Add --prefix=/usr to ggi build. Closes bug#61705, #61486 + + -- James A. Treacy Wed, 12 Apr 2000 15:12:48 -0400 + +mesa (3.1-15) frozen unstable; urgency=low + + * Remove ggi from the build on m68k. Closes bug#59273 + + -- James A. Treacy Mon, 6 Mar 2000 13:20:29 -0500 + +mesa (3.1-14) frozen unstable; urgency=low + + * Fixed hard-coded location of config file in library. This is release + critical, even though no bug was filed (relates to bug#58267). + + -- James A. Treacy Mon, 28 Feb 2000 10:58:34 -0500 + +mesa (3.1-13) frozen unstable; urgency=low + + * Add missing ggi libraries. Closes bug#58267, #57760 + + -- James A. Treacy Thu, 24 Feb 2000 00:59:30 -0500 + +mesa (3.1-12) frozen unstable; urgency=low + + * Dependencies are now computed in a more intelligent way. Closes: bug#55861 + + -- James A. Treacy Fri, 21 Jan 2000 16:26:40 -0500 + +mesa (3.1-11) frozen unstable; urgency=low + + * Remove svgalib support from the software only package of mesa + + -- James A. Treacy Sat, 22 Jan 2000 05:33:13 +0000 + +mesa (3.1-10) frozen unstable; urgency=low + + * Fix the mesag3-glide2 postinst. Closes bug#55462 + + -- James A. Treacy Sat, 22 Jan 2000 02:06:27 +0000 + +mesa (3.1-9) frozen unstable; urgency=low + + * The ggi based packages are now built with the other versions of mesa. Closes: bug#49218, #55221 + + -- James A. Treacy Sat, 15 Jan 2000 22:24:13 -0500 + +mesa (3.1-8) unstable; urgency=low + + * fixed the postinst and prerm for the glide packages + * added Provides: mesag-dev to the mesag-glide2-dev package to maintain + backwards compatability + + -- James A. Treacy Sat, 15 Jan 2000 01:01:58 -0500 + +mesa (3.1-7) unstable; urgency=low + + * Fix version number for soname in the shlib file. Closes: bug#54926 + + -- James A. Treacy Thu, 13 Jan 2000 01:37:03 -0500 + +mesa (3.1-6) unstable; urgency=low + + * Include docs/README.3DFX in mesag3-glide2 package. Closes: bug#54625 + * Remove Provides: libgl1 from mesag3-widgets. Closes: bug#54774 + * conflicts with older versions of mesa. Closes: bug#54831 + + -- James A. Treacy Mon, 10 Jan 2000 11:50:49 -0500 + +mesa (3.1-5) unstable; urgency=low + + * now Conflicts: libgl1 + * remove extra '.' in library name + + -- James A. Treacy Sun, 9 Jan 2000 20:47:31 -0500 + +mesa (3.1-4) unstable; urgency=low + + * Added links libGL.so.1 <- libMesaGL.so.3 so existing progs don't break + * Copyright changed for version 3.1 + + -- James A. Treacy Thu, 6 Jan 2000 17:11:11 -0500 + +mesa (3.1-3) unstable; urgency=low + + * copyright file now refers to /usr/share/common-license/LGPL. + + -- James A. Treacy Tue, 4 Jan 2000 11:50:45 -0500 + +mesa (3.1-2) unstable; urgency=low + + * Second try. Fixed shlibs file. + + -- James A. Treacy Tue, 4 Jan 2000 00:00:29 -0500 + +mesa (3.1-1) unstable; urgency=low + + * New upstream version. + * glide version of packages added, since glide is now under the GPL. + * mesa widget libraries are now in a separate package + * library names are changed to lib{GL,GLU}.* + + -- James A. Treacy Tue, 14 Dec 1999 10:06:14 -0500 + +mesa (3.0-2) unstable; urgency=low + + * added symlinks from libMesaGL* -> libGL*. Fixes bug #37160 + * added lines (commented out) for building a glide version of mesa. Fixes bug #39758 + + -- James A. Treacy Thu, 13 May 1999 01:02:42 -0400 + +mesa (3.0-1) unstable; urgency=low + + * mesa libs moved to /usr/lib. Fixes bug #26874 + * motif widget library libMesaGLwM added (compiled using headers from lesstif). Fixes bug #25380 + + -- James A. Treacy Thu, 6 Aug 1998 13:49:37 -0400 + +mesa (2.6-4) unstable; urgency=low + + * call to ldconfig in postinst put back in. Fixes bug #20552 + * changelog.Debian file created for the mesa-doc package. + * deleted miscellaneous files. Fixes bug #21481 + + -- James A. Treacy Sat, 23 May 1998 23:41:34 -0400 + +mesa (2.6-3) frozen unstable; urgency=low + + * No changes. Just trying (again) to get this back in the distribution + + -- James A. Treacy Tue, 24 Mar 1998 00:53:09 -0500 + +mesa (2.6-2) unstable frozen; urgency=low + + * point copyright to LPGL in /usr/doc/copyright. Fixes bug #19633 + + -- James A. Treacy Sun, 15 Mar 1998 14:00:33 -0500 + +mesa (2.6-1) unstable; urgency=low + + * New upstream Release + * strip static lib with --strip-debug and shared with strip--unneeded: Fixes bug#17301 + * create doc package in build-indep: Fixes bug#16090 + * added widgets-mesa library to package: Fixes bug#15729 + * created mesa-glide* packages + + -- James A. Treacy Mon, 19 Jan 1998 23:45:50 -0500 + +mesa (2.5-2) unstable; urgency=low + + * Corrected i386 specific debian/rules file: Fixes bug#15640 + + -- James A. Treacy Fri, 5 Nov 1997 11:46:13 -0500 + +mesa (2.5-1) unstable; urgency=low + + * New upstream release. + + -- James A. Treacy Sun, 23 Nov 1997 20:46:13 -0500 + +mesa (2.4-1) unstable; urgency=low + + * New upstream release. + * New maintainer. + * libc6 release. + + -- James A. Treacy Mon, 3 Nov 1997 01:11:34 -0500 + +mesa (2.2-2) unstable; urgency=low + + * debian/control: mesa-doc no longer depends on mesa (bug #8840). + + -- Karl Sackett Wed, 30 Apr 1997 10:25:25 -0500 + +mesa (2.2-1) unstable; urgency=low + + * New upstream release. + * Make-config: linux-elf libraries compiled with -D_REENTRANT. + + -- Karl Sackett Wed, 19 Mar 1997 09:10:22 -0600 + +mesa (2.1-4) unstable; urgency=low + + * debian/control: lib packages moved from 'graphics' to 'libs'. + * debian/rules: headers moved from /usr/include/mesa to /usr/include + (no more -I/usr/include/mesa). + + -- Karl Sackett Tue, 25 Feb 1997 09:30:23 -0600 + +mesa (2.1-3) unstable; urgency=low + + * debian/control: mesa2 provides mesa and conflicts with mesa + (bug #7394). + + -- Karl Sackett Mon, 17 Feb 1997 09:25:42 -0600 + +mesa (2.1-2) unstable; urgency=low + + * debian/rules: install gmesa.h, osmesa.h, FooMesa.h in mesa-dev + (bug #6864). + + -- Karl Sackett Tue, 28 Jan 1997 09:37:41 -0600 + +mesa (2.1-1) unstable; urgency=low + + * New upstream release. + * Added soname to mesa and mesa-widgets. + * Moved static libraries to mesa2-dbg. + * debian/postinst, postinst-widgets: call ldconfig without explicit + pathname (bugs #6176, 6180). + + -- Karl Sackett Mon, 6 Jan 1997 09:30:10 -0600 + +mesa (2.0-2) unstable; urgency=low + + * Created mesa-widgets and mesa-widgets-dev (Bug #5029). + + -- Karl Sackett Wed, 30 Oct 1996 08:44:19 -0600 + +mesa (2.0-1) unstable; urgency=low + + * src/draw.c: replaced with upstream patch. + * Make-config: linux-elf target builds libMesaGLw.so library, looks + for XLIBS in /usr/X11R6/lib, removed -mieee-mp from CFLAGS. + * widgets-sgi/Makefile: builds libMesaGlw.a library + * New upstream release. + * Converted to new package standard. + * Maintainer address changed. + + -- Karl Sackett Mon, 14 Oct 1996 15:37:19 -0500 + +1.2.8-3 + * Package split into runtime, development, and documentation + packages. + * widgets now made as a sharable library. + * GLUT removed. This will be released as a separate package. + +1.2.8-2 + * Support files now architecture-independent + +1.2.8-1 + * Upgrade to latest release + * Brought support files up to latest packaging requirements + * mondello/Makefile: fixed error in realclean target + +1.2.7-2 + * debian.rules: clean all Makefiles out of widgets directory + * debian.postrm: remove /usr/lib/mesa entry from /etc/ld.so.config + (bug #2817) + +1.2.7-1 + * Added Debian support files + * Included the GLUT OpenGL Utility Toolkit + * Makefile - disable building programs in demos, samples, and book + directories + * mklib.linux - disabled building *.a libraries + * widgets/Makefile.in - disabled building demo programs --- mesa-7.9+repack.orig/debian/libgles1-mesa-dev.install +++ mesa-7.9+repack/debian/libgles1-mesa-dev.install @@ -0,0 +1,3 @@ +dri/usr/lib/libGLESv1_CM.so usr/lib +dri/usr/include/GLES usr/include +dri/usr/lib/pkgconfig/glesv1_cm.pc usr/lib/pkgconfig --- mesa-7.9+repack.orig/debian/control +++ mesa-7.9+repack/debian/control @@ -0,0 +1,676 @@ +Source: mesa +Section: graphics +Priority: optional +Maintainer: Ubuntu X-SWAT +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: David Nusinow , Brice Goglin +Standards-Version: 3.8.4 +Build-Depends: debhelper (>= 7.2.7), quilt (>= 0.40), pkg-config, + libdrm-dev (>= 2.4.21-2~) [!hurd-i386], libx11-dev, xutils-dev, + x11proto-gl-dev (>= 1.4.11), libxxf86vm-dev, + libexpat1-dev, dpkg-dev (>= 1.15.6), libxfixes-dev, + libxdamage-dev, libxext-dev, autoconf, automake, x11proto-dri2-dev (>= 2.1), + linux-libc-dev (>= 2.6.31) [!hurd-i386 !kfreebsd-amd64 !kfreebsd-i386], + libx11-xcb-dev, libxcb-dri2-0-dev, libxcb-xfixes0-dev, python-libxml2, + libtalloc-dev, libudev-dev, +Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa +Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git +Homepage: http://mesa3d.sourceforge.net/ + +Package: libgl1-mesa-swx11 +Section: libs +Priority: extra +Architecture: any +Depends: + libosmesa6 (>= 6.5.2-1), + ${shlibs:Depends}, + ${misc:Depends}, +Conflicts: mesag3-glide, mesag3-glide2, mesag3+ggi, libgl1, nvidia-glx, mesag3, libgl1-mesa-swrast +Provides: libgl1, mesag3, libgl1-mesa-swrast +Replaces: libgl1, mesag3, libgl1-mesa-swrast +Description: A free implementation of the OpenGL API -- runtime + Mesa is a 3-D graphics library with an API which is very similar to + that of OpenGL. To the extent that Mesa utilizes the OpenGL command + syntax or state machine, it is being used with authorization from + Silicon Graphics, Inc. However, the author makes no claim that Mesa + is in any way a compatible replacement for OpenGL or associated with + Silicon Graphics, Inc. + . + This library provides a pure software rasteriser; it does not provide + a direct rendering-capable library, or one which uses GLX. For that, + please see libgl1-mesa-glx. + . + On Linux, this library is also known as libGL or libGL.so.1. + +Package: libgl1-mesa-swx11-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libgl1-mesa-swx11 (= ${binary:Version}), + ${misc:Depends}, +Conflicts: libgl1-mesa-swrast-dbg +Provides: libgl1-mesa-swrast-dbg +Replaces: libgl1-mesa-swrast-dbg +Description: A free implementation of the OpenGL API -- debugging symbols + Mesa is a 3-D graphics library with an API which is very similar to + that of OpenGL. To the extent that Mesa utilizes the OpenGL command + syntax or state machine, it is being used with authorization from + Silicon Graphics, Inc. However, the author makes no claim that Mesa + is in any way a compatible replacement for OpenGL or associated with + Silicon Graphics, Inc. + . + This library provides a pure software rasteriser; it does not provide + a direct rendering-capable library, or one which uses GLX. For that, + please see libgl1-mesa-glx. + . + On Linux, this library is also known as libGL or libGL.so.1. + . + This package contains debugging symbols for the software rasterization GL + library. + +# Package: libgl1-mesa-swx11-i686 +# Section: libs +# Priority: extra +# Architecture: i386 kfreebsd-i386 hurd-i386 +# Depends: +# libgl1-mesa-swx11 (= ${binary:Version}), +# ${shlibs:Depends}, +# ${misc:Depends}, +# Description: Mesa OpenGL runtime [i686 optimized] +# Mesa is a 3-D graphics library with an API which is very similar to +# that of OpenGL. To the extent that Mesa utilizes the OpenGL command +# syntax or state machine, it is being used with authorization from +# Silicon Graphics, Inc. However, the author makes no claim that Mesa +# is in any way a compatible replacement for OpenGL or associated with +# Silicon Graphics, Inc. +# . +# This library provides a pure software rasteriser; it does not provide +# a direct rendering-capable library, or one which uses GLX. For that, +# please see libgl1-mesa-glx. +# . +# On Linux, this library is also known as libGL or libGL.so.1. +# . +# This set of libraries is optimized for i686 machines and will only be used if +# you are running a 2.6 kernel on an i686 class CPU. This includes Pentium Pro, +# Pentium II/II/IV, Celeron CPU's and similar class CPU's (including clones +# such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA C3 Ezla). + +Package: libgl1-mesa-swx11-dev +Section: libdevel +Priority: extra +Architecture: any +Depends: + libgl1-mesa-swx11 (= ${binary:Version}), + libx11-dev, + libxext6, + mesa-common-dev (= ${binary:Version}), + ${misc:Depends}, +Provides: libgl-dev, mesag-dev, libgl1-mesa-swrast-dev +Conflicts: mesa-dev, libgl-dev, mesag3 (<< 3.1-1), nvidia-glx-dev, mesag-dev, libgl1-mesa-swrast-dev +Replaces: libgl-dev, mesag-dev, libgl1-mesa-swrast-dev +Description: A free implementation of the OpenGL API -- development files + This package provides the development environment required for + compiling programs with Mesa. For a complete description of Mesa, + please look at the libgl1-mesa-swx11 package. + . + This library provides a pure software rasteriser; it does not provide + a direct rendering-capable library, or one which uses GLX. For that, + please see libgl1-mesa-dev. + +Package: libegl1-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Recommends: libegl1-mesa-drivers +Provides: libegl1-x11 +Conflicts: libegl1-x11 +Replaces: libegl1-x11 +Description: A free implementation of the EGL API -- runtime + This package contains the EGL native platform graphics interface library. + EGL provides a platform-agnostic mechanism for creating rendering surfaces + for use with other graphics libraries, such as OpenGL|ES and OpenVG. + . + This package contains modules to interface with the existing system GLX or + DRI2 drivers to provide OpenGL via EGL. The libegl1-mesa-drivers package + provides drivers to provide hardware-accelerated OpenGL|ES and OpenVG support. + +Package: libegl1-mesa-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libegl1-mesa (= ${binary:Version}), + ${misc:Depends}, +Description: A free implementation of the EGL API -- debugging symbols + This package contains the EGL native platform graphics interface library. + EGL provides a platform-agnostic mechanism for creating rendering surfaces + for use with other graphics libraries, such as OpenGL|ES and OpenVG. + . + This package contains the debugging symbols for the EGL library. + +Package: libegl1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libegl1-mesa (= ${binary:Version}), + libdrm-dev (>= 2.4.19) [!hurd-i386], + x11proto-dri2-dev (>= 2.1), + x11proto-gl-dev (>= 1.4.11), + libx11-dev, + libxext-dev, + libxxf86vm-dev, + libxdamage-dev, + libxfixes-dev, + ${misc:Depends}, +Description: A free implementation of the EGL API -- development files + This package contains the development environment required for compiling + programs against EGL native platform graphics interface library. + EGL provides a platform-agnostic mechanism for creating rendering surfaces + for use with other graphics libraries, such as OpenGL|ES and OpenVG. + . + This package provides the development environment for compiling programs + against the EGL library. + +Package: libegl1-mesa-drivers +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libegl1-mesa (= ${binary:Version}), +Description: A free implementation of the EGL API -- hardware drivers + This package contains the EGL native platform graphics interface library. + EGL provides a platform-agnostic mechanism for creating rendering surfaces + for use with other graphics libraries, such as OpenGL|ES and OpenVG. + . + This package contains the drivers required for hardware accelerated rendering + of EGL-based graphics libraries, such as OpenGL|ES and OpenVG. + +Package: libegl1-mesa-drivers-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libegl1-mesa-drivers (= ${binary:Version}), + ${misc:Depends}, +Description: A free implementation of the EGL API -- driver debugging symbols + This package contains the EGL native platform graphics interface library. + EGL provides a platform-agnostic mechanism for creating rendering surfaces + for use with other graphics libraries, such as OpenGL|ES and OpenVG. + . + This package contains the debugging symbols for the drivers required for + hardware accelerated rendering of EGL-based graphics libraries. + +Package: libopenvg1-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Provides: libopenvg1 +Conflicts: libopenvg1 +Replaces: libopenvg1 +Description: A free implementation of the OpenVG API -- runtime + This package contains the mesa implementation of the OpenVG 2D acceleration + library. OpenVG provides a device independent and vendor-neutral interface + for sophisticated 2D graphical applications, while allowing device + manufacturers to provide hardware acceleration on devices ranging from wrist + watches to full microprocessor-based desktop and server machines. + +Package: libopenvg1-mesa-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libopenvg1-mesa (= ${binary:Version}), + ${misc:Depends}, +Description: A free implementation of the OpenVG API -- debugging symbols + This package contains the mesa implementation of the OpenVG 2D acceleration + library. OpenVG provides a device independent and vendor-neutral interface + for sophisticated 2D graphical applications, while allowing device + manufacturers to provide hardware acceleration on devices ranging from wrist + watches to full microprocessor-based desktop and server machines. + . + This package contains the debugging symbols for the OpenVG library. + +Package: libopenvg1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libopenvg1-mesa (= ${binary:Version}), + libegl1-mesa-dev, + ${misc:Depends}, +Description: A free implementation of the OpenVG API -- development files + This package contains the mesa implementation of the OpenVG 2D acceleration + library. OpenVG provides a device independent and vendor-neutral interface + for sophisticated 2D graphical applications, while allowing device + manufacturers to provide hardware acceleration on devices ranging from wrist + watches to full microprocessor-based desktop and server machines. + . + This package contains the development environment required for compiling + programs against the OpenVG 2D acceleration library. + +Package: libgles1-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Provides: libgles1 +Conflicts: libgles1 +Replaces: libgles1 +Description: A free implementation of the OpenGL|ES 1.x API -- runtime + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 1.x provides an API for fixed-function hardware. + +Package: libgles1-mesa-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libgles1-mesa (= ${binary:Version}), + ${misc:Depends}, +Description: A free implementation of the OpenGL|ES 1.x API -- debugging symbols + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 1.x provides an API for fixed-function hardware. + . + This package contains the debugging symbols for the libGLESv1_CM library. + +Package: libgles1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libgles1-mesa (= ${binary:Version}), + libegl1-mesa-dev, + ${misc:Depends}, +Description: A free implementation of the OpenGL|ES 1.x API -- development files + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 1.x provides an API for fixed-function hardware. + . + This package provides a development environment for building programs using + the OpenGL|ES 1.x APIs. + +Package: libgles2-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Provides: libgles2 +Conflicts: libgles2 +Replaces: libgles2 +Description: A free implementation of the OpenGL|ES 2.x API -- runtime + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 2.x provides an API for programmable hardware including vertex + and fragment shaders. + +Package: libgles2-mesa-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libgles2-mesa (= ${binary:Version}), + ${misc:Depends}, +Description: A free implementation of the OpenGL|ES 2.x API -- debugging symbols + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 2.x provides an API for programmable hardware including vertex + and fragment shaders. + . + This package contains the debugging symbols for the libGLESv2 library. + +Package: libgles2-mesa-dev +Section: libdevel +Architecture: any +Depends: + libgles2-mesa (= ${binary:Version}), + libegl1-mesa-dev, + ${misc:Depends}, +Description: A free implementation of the OpenGL|ES 2.x API -- development files + OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on + embedded systems - including consoles, phones, appliances and vehicles. + It contains a subset of OpenGL plus a number of extensions for the + special needs of embedded systems. + . + OpenGL|ES 2.x provides an API for programmable hardware including vertex + and fragment shaders. + . + This package provides a development environment for building applications + using the OpenGL|ES 2.x APIs. + +Package: libgl1-mesa-glx +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends} +Recommends: libgl1-mesa-dri (>= 7.2) +Conflicts: libgl1, libgl1-mesa-dri (<< 6.4.0) +Replaces: libgl1, libgl1-mesa-dri (<< 6.4.0) +Provides: libgl1 +Description: A free implementation of the OpenGL API -- GLX runtime + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the modules themselves: these can be found + in the libgl1-mesa-dri package. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + +Package: libgl1-mesa-glx-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libgl1-mesa-glx (= ${binary:Version}), + ${misc:Depends}, +Description: Debugging symbols for the Mesa GLX runtime + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the modules themselves: these can be found + in the libgl1-mesa-dri package. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + . + This package contains debugging symbols for the GL library with GLX and DRI + capabilities. + +#Package: libgl1-mesa-glx-i686 +#Section: libs +#Priority: extra +#Architecture: i386 kfreebsd-i386 hurd-i386 +#Pre-Depends: libgl1-mesa-glx +#Description: A free implementation of the OpenGL API -- GLX runtime [i686 optimized] +# This version of Mesa provides GLX and DRI capabilities: it is capable of +# both direct and indirect rendering. For direct rendering, it can use DRI +# modules from the libgl1-mesa-dri package to accelerate drawing. +# . +# This package does not include the modules themselves: these can be found +# in the libgl1-mesa-dri package. +# . +# For a complete description of Mesa, please look at the +# libgl1-mesa-swx11 package. +# . +# This set of libraries is optimized for i686 machines and will only be used if +# you are running a 2.6 kernel on an i686 class CPU. This includes Pentium Pro, +# Pentium II/II/IV, Celeron CPU's and similar class CPU's (including clones +# such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA C3 Ezla). + +Package: libgl1-mesa-dri +Section: libs +Priority: optional +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends} +Suggests: libglide3 +Conflicts: xlibmesa-dri (<< 1:7.0.0) +Replaces: xlibmesa-dri (<< 1:7.0.0) +Breaks: xserver-xorg-core (<< 2:1.5), libgl1-mesa-glx (<< 7.2) +Description: A free implementation of the OpenGL API -- DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct rendering. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + . + The tdfx DRI module needs libglide3 to enable direct rendering. + +Package: libgl1-mesa-dri-dbg +Section: debug +Priority: extra +Architecture: any +Depends: + libgl1-mesa-dri (= ${binary:Version}), + ${misc:Depends}, +Description: Debugging symbols for the Mesa DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct rendering. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + . + This package contains debugging symbols for the DRI modules. + +Package: libgl1-mesa-dri-experimental +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Description: A free implementation of the OpenGL API -- Extra DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct and indirect rendering. The drivers + in this package may provide more features than the drivers in the + libgl1-mesa-dri at the cost of less stability. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + +Package: libgl1-mesa-dri-experimental-dbg +Section: debug +Priority: extra +Architecture: linux-any +Depends: + libgl1-mesa-dri-experimental (= ${binary:Version}), + ${misc:Depends}, +Description: Debugging symbols for the experimental Mesa DRI modules + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package does not include the OpenGL library itself, only the DRI + modules for accelerating direct rendering. + . + For a complete description of Mesa, please look at the + libgl1-mesa-swx11 package. + . + This package contains debugging symbols for the extra DRI modules. + +#Package: libgl1-mesa-dri-i686 +#Section: libs +#Priority: extra +#Architecture: i386 kfreebsd-i386 hurd-i386 +#Pre-Depends: libgl1-mesa-dri +#Description: A free implementation of the OpenGL API -- DRI modules [i686 optimized] +# This version of Mesa provides GLX and DRI capabilities: it is capable of +# both direct and indirect rendering. For direct rendering, it can use DRI +# modules from the libgl1-mesa-dri package to accelerate drawing. +# . +# This package does not include the OpenGL library itself, only the DRI +# modules for accelerating direct rendering. +# . +# For a complete description of Mesa, please look at the +# libgl1-mesa-swx11 package. +# . +# This set of libraries is optimized for i686 machines and will only be used if +# you are running a 2.6 kernel on an i686 class CPU. This includes Pentium Pro, +# Pentium II/II/IV, Celeron CPU's and similar class CPU's (including clones +# such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA C3 Ezla). + +Package: libgl1-mesa-dev +Section: libdevel +Architecture: any +Depends: + mesa-common-dev (= ${binary:Version}), + libgl1-mesa-glx (= ${binary:Version}), + libxext-dev, + ${misc:Depends}, +Conflicts: libgl-dev, libgl1-mesa-dri-dev +Replaces: libgl-dev, libgl1-mesa-dri-dev +Provides: libgl-dev, libgl1-mesa-dri-dev +Description: A free implementation of the OpenGL API -- GLX development files + This version of Mesa provides GLX and DRI capabilities: it is capable of + both direct and indirect rendering. For direct rendering, it can use DRI + modules from the libgl1-mesa-dri package to accelerate drawing. + . + This package includes headers and static libraries for compiling + programs with Mesa. + . + For a complete description of Mesa, please look at the libgl1-mesa-swx11 + package. + +Package: mesa-common-dev +Section: libdevel +Architecture: any +Replaces: xlibmesa-gl-dev (<< 1:7), xlibosmesa-dev, libgl1-mesa-swx11-dev (<< 6.5.2), libgl1-mesa-dev (<< 7.5~rc4-2) +Depends: + libx11-dev, + libdrm-dev, + ${misc:Depends}, +Description: Developer documentation for Mesa + This package includes the specifications for the Mesa-specific OpenGL + extensions, the complete set of release notes and the development header + files common to all Mesa packages. + +Package: libosmesa6 +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Replaces: libgl1-mesa-swx11 (<< 6.5.2) +Description: Mesa Off-screen rendering extension + OSmesa is a Mesa extension that allows programs to render to an + off-screen buffer using the OpenGL API without having to create a + rendering context on an X Server. It uses a pure software renderer. + . + This package provides both 16-bit and 32-bit versions of the off-screen + renderer which do not require external libraries to work. + +Package: libosmesa6-dev +Section: libdevel +Architecture: any +Depends: + libosmesa6 (= ${binary:Version}), + mesa-common-dev (= ${binary:Version}) | libgl-dev, + ${misc:Depends}, +Conflicts: xlibosmesa-dev, libosmesa4-dev, libosmesa-dev +Replaces: xlibosmesa-dev, libosmesa-dev, libgl1-mesa-swx11-dev (<< 6.5.2), mesa-common-dev (<< 6.5.2) +Provides: xlibosmesa-dev, libosmesa-dev +Description: Mesa Off-screen rendering extension -- development files + This package provides the required environment for developing programs + that use the off-screen rendering extension of Mesa. + . + For more information on OSmesa see the libosmesa6 package. + +Package: libglu1-mesa +Section: libs +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Provides: libglu1 +Conflicts: mesag3 (<< 5.0.0-1), xlibmesa3, libglu1 +Replaces: libglu1 +Description: The OpenGL utility library (GLU) + GLU offers simple interfaces for building mipmaps; checking for the + presence of extensions in the OpenGL (or other libraries which follow + the same conventions for advertising extensions); drawing + piecewise-linear curves, NURBS, quadrics and other primitives + (including, but not limited to, teapots); tesselating surfaces; setting + up projection matrices and unprojecting screen coordinates to world + coordinates. + . + On Linux, this library is also known as libGLU or libGLU.so.1. + . + This package provides the SGI implementation of GLU shipped with the + Mesa package (ergo the "-mesa" suffix). + +Package: libglu1-mesa-dev +Section: libdevel +Architecture: any +Depends: + libglu1-mesa (= ${binary:Version}), + libgl1-mesa-dev | libgl-dev, + ${misc:Depends}, +Provides: libglu-dev, xlibmesa-glu-dev +Conflicts: mesag-dev (<< 5.0.0-1), mesa-glide2-dev (<< 5.0.0-1), mesag3+ggi-dev (<< 5.0.0-1), xlibmesa-dev +Replaces: libglu-dev +Description: The OpenGL utility library -- development files + Includes headers and static libraries for compiling programs with GLU. + . + For a complete description of GLU, please look at the libglu1-mesa + package. + +# Package: libglw1-mesa +# Section: libs +# Architecture: any +# Depends: +# ${shlibs:Depends}, +# ${misc:Depends}, +# Provides: libglw1 +# Description: A free implementation of the OpenGL API -- runtime +# Mesa is a 3-D graphics library with an API which is very similar to +# that of OpenGL. To the extent that Mesa utilizes the OpenGL command +# syntax or state machine, it is being used with authorization from +# Silicon Graphics, Inc. However, the author makes no claim that Mesa +# is in any way a compatible replacement for OpenGL or associated with +# Silicon Graphics, Inc. +# . +# This package provides a simple widgets library, libGLw, which +# allows Motif-based applications to embed an OpenGL drawing context. +# . +# On Linux, this library is also known as libGLw or libGLw.so.1. + +# Package: libglw1-mesa-dev +# Section: libdevel +# Architecture: any +# Depends: +# libglw1-mesa (= ${binary:Version}), +# libx11-dev, +# libxt-dev, +# lesstif2-dev, +# mesa-common-dev (= ${binary:Version}), +# ${shlibs:Depends}, +# ${misc:Depends}, +# Provides: mesag3-widgets, mesag-widgets-dev, libglw-dev +# Conflicts: libglw-dev, libgl1-mesa-swx11-dev (<< 6.5.2-4) +# Replaces: libglw-dev +# Description: A free implementation of the OpenGL API -- development files +# This package provides the development environment required for +# compiling programs with the Mesa widgets library, libGLw, which +# allows Motif-based applications to embed an OpenGL drawing context. +# The headers and static libraries for compiling programs that use this +# library are included. + +# vim: tw=0 --- mesa-7.9+repack.orig/debian/libgles2-mesa.install +++ mesa-7.9+repack/debian/libgles2-mesa.install @@ -0,0 +1,2 @@ +dri/usr/lib/libGLESv2.so.2* usr/lib +dri/usr/lib/egl/st_GLESv2.so usr/lib/egl --- mesa-7.9+repack.orig/debian/libgl1-mesa-dri-experimental.install +++ mesa-7.9+repack/debian/libgl1-mesa-dri-experimental.install @@ -0,0 +1 @@ +build/dri/lib/gallium/nouveau_dri.so usr/lib/dri --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx.lintian-overrides +++ mesa-7.9+repack/debian/libgl1-mesa-glx.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGL1 --- mesa-7.9+repack.orig/debian/libegl1-mesa-dev.install +++ mesa-7.9+repack/debian/libegl1-mesa-dev.install @@ -0,0 +1,4 @@ +dri/usr/lib/libEGL.so usr/lib +dri/usr/include/EGL usr/include +dri/usr/include/KHR usr/include +dri/usr/lib/pkgconfig/egl.pc usr/lib/pkgconfig --- mesa-7.9+repack.orig/debian/libegl1-mesa.install +++ mesa-7.9+repack/debian/libegl1-mesa.install @@ -0,0 +1,4 @@ +dri/usr/lib/libEGL.so.1* usr/lib +dri/usr/lib/egl/egl_dri2.so usr/lib/egl +dri/usr/lib/egl/egl_glx.so usr/lib/egl +dri/usr/lib/egl/st_GL.so usr/lib/egl --- mesa-7.9+repack.orig/debian/libglu1-mesa.lintian-overrides +++ mesa-7.9+repack/debian/libglu1-mesa.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libGLU1 --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx.prerm +++ mesa-7.9+repack/debian/libgl1-mesa-glx.prerm @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +THIS_PACKAGE=libgl1-mesa-glx +THIS_SCRIPT=prerm + +case "$1" in + remove) + # Use alternatives to make it easier to switch between Mesa and 3rd party modules + update-alternatives --remove gl_conf /usr/lib/GL/ld.so.conf + + # explicit ldconfig due to alternatives + ldconfig + +esac + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=2 ts=2 tw=80: + --- mesa-7.9+repack.orig/debian/mesa-common-dev.docs +++ mesa-7.9+repack/debian/mesa-common-dev.docs @@ -0,0 +1,8 @@ +docs/bugs.html +docs/debugging.html +docs/envvars.html +docs/faq.html +docs/osmesa.html +docs/RELNOTES-* +docs/relnotes* +docs/*.spec --- mesa-7.9+repack.orig/debian/libglw1-mesa-dev.install +++ mesa-7.9+repack/debian/libglw1-mesa-dev.install @@ -0,0 +1,4 @@ +usr/include/GL/GLw*A.h +usr/lib/libGLw.a +usr/lib/libGLw.so +usr/lib/pkgconfig/glw.pc --- mesa-7.9+repack.orig/debian/libgl1-mesa-swx11-i686.install +++ mesa-7.9+repack/debian/libgl1-mesa-swx11-i686.install @@ -0,0 +1 @@ +usr/lib/i686/cmov/libGL.so.* --- mesa-7.9+repack.orig/debian/libegl1-mesa-drivers.install +++ mesa-7.9+repack/debian/libegl1-mesa-drivers.install @@ -0,0 +1,2 @@ +dri/usr/lib/egl/egl_gallium.so usr/lib/egl +dri/usr/lib/egl/pipe_*.so usr/lib/egl --- mesa-7.9+repack.orig/debian/libgl1-mesa-dri.install +++ mesa-7.9+repack/debian/libgl1-mesa-dri.install @@ -0,0 +1,5 @@ +build/dri/lib/*_dri.so usr/lib/dri +build/dri/lib/gallium/r300_dri.so usr/lib/dri +build/dri/lib/gallium/r600g_dri.so usr/lib/dri +build/dri/lib/libglsl.so usr/lib/dri +build/dri/lib/libdricore.so usr/lib/dri --- mesa-7.9+repack.orig/debian/libopenvg1-mesa.symbols +++ mesa-7.9+repack/debian/libopenvg1-mesa.symbols @@ -0,0 +1,82 @@ +libOpenVG.so.1 libopenvg1-mesa #MINVER# | libopenvg1 + mapi_get_proc_address@Base 7.9~ + mapi_init@Base 7.9~ + mapi_table_create@Base 7.9~ + mapi_table_destroy@Base 7.9~ + mapi_table_fill@Base 7.9~ + mapi_table_make_current@Base 7.9~ + vgAppendPath@Base 7.8.1 + vgAppendPathData@Base 7.8.1 + vgChildImage@Base 7.8.1 + vgClear@Base 7.8.1 + vgClearImage@Base 7.8.1 + vgClearPath@Base 7.8.1 + vgColorMatrix@Base 7.8.1 + vgConvolve@Base 7.8.1 + vgCopyImage@Base 7.8.1 + vgCopyPixels@Base 7.8.1 + vgCreateImage@Base 7.8.1 + vgCreatePaint@Base 7.8.1 + vgCreatePath@Base 7.8.1 + vgDestroyImage@Base 7.8.1 + vgDestroyPaint@Base 7.8.1 + vgDestroyPath@Base 7.8.1 + vgDrawImage@Base 7.8.1 + vgDrawPath@Base 7.8.1 + vgFinish@Base 7.8.1 + vgFlush@Base 7.8.1 + vgGaussianBlur@Base 7.8.1 + vgGetColor@Base 7.8.1 + vgGetError@Base 7.8.1 + vgGetImageSubData@Base 7.8.1 + vgGetMatrix@Base 7.8.1 + vgGetPaint@Base 7.8.1 + vgGetParameterVectorSize@Base 7.8.1 + vgGetParameterf@Base 7.8.1 + vgGetParameterfv@Base 7.8.1 + vgGetParameteri@Base 7.8.1 + vgGetParameteriv@Base 7.8.1 + vgGetParent@Base 7.8.1 + vgGetPathCapabilities@Base 7.8.1 + vgGetPixels@Base 7.8.1 + vgGetString@Base 7.8.1 + vgGetVectorSize@Base 7.8.1 + vgGetf@Base 7.8.1 + vgGetfv@Base 7.8.1 + vgGeti@Base 7.8.1 + vgGetiv@Base 7.8.1 + vgHardwareQuery@Base 7.8.1 + vgImageSubData@Base 7.8.1 + vgInterpolatePath@Base 7.8.1 + vgLoadIdentity@Base 7.8.1 + vgLoadMatrix@Base 7.8.1 + vgLookup@Base 7.8.1 + vgLookupSingle@Base 7.8.1 + vgMask@Base 7.8.1 + vgModifyPathCoords@Base 7.8.1 + vgMultMatrix@Base 7.8.1 + vgPaintPattern@Base 7.8.1 + vgPathBounds@Base 7.8.1 + vgPathLength@Base 7.8.1 + vgPathTransformedBounds@Base 7.8.1 + vgPointAlongPath@Base 7.8.1 + vgReadPixels@Base 7.8.1 + vgRemovePathCapabilities@Base 7.8.1 + vgRotate@Base 7.8.1 + vgScale@Base 7.8.1 + vgSeparableConvolve@Base 7.8.1 + vgSetColor@Base 7.8.1 + vgSetPaint@Base 7.8.1 + vgSetParameterf@Base 7.8.1 + vgSetParameterfv@Base 7.8.1 + vgSetParameteri@Base 7.8.1 + vgSetParameteriv@Base 7.8.1 + vgSetPixels@Base 7.8.1 + vgSetf@Base 7.8.1 + vgSetfv@Base 7.8.1 + vgSeti@Base 7.8.1 + vgSetiv@Base 7.8.1 + vgShear@Base 7.8.1 + vgTransformPath@Base 7.8.1 + vgTranslate@Base 7.8.1 + vgWritePixels@Base 7.8.1 --- mesa-7.9+repack.orig/debian/libglu1-mesa-dev.install +++ mesa-7.9+repack/debian/libglu1-mesa-dev.install @@ -0,0 +1,5 @@ +usr/include/GL/glu.h +usr/include/GL/glu_mangle.h +usr/lib/libGLU.a +usr/lib/libGLU.so +usr/lib/pkgconfig/glu.pc --- mesa-7.9+repack.orig/debian/gbp.conf +++ mesa-7.9+repack/debian/gbp.conf @@ -0,0 +1,2 @@ +[DEFAULT] +debian-branch=ubuntu --- mesa-7.9+repack.orig/debian/rules +++ mesa-7.9+repack/debian/rules @@ -0,0 +1,327 @@ +#!/usr/bin/make -f +# debian/rules for the Debian mesa package +# Copyright © 2006 Thierry Reding + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS = -Wall -g +ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) +DEB_BUILD_DIR ?= $(CURDIR)/build +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +# choose which configurations to build +include debian/scripts/choose-configs + +# build the following configurations by default +CONFIGS = $(SWX11_GLU_CONFIGS) \ + dri \ + osmesa \ + osmesa-static \ + osmesa16 \ + osmesa16-static \ + osmesa32 \ + osmesa32-static + +STAMP_DIR = debian/stamp +STAMP = $(STAMP_DIR)/$(DEB_BUILD_GNU_TYPE) +BUILD_STAMPS = $(addprefix $(STAMP)-build-, $(CONFIGS)) + +QUILT_STAMPFN = $(STAMP_DIR)/patch +include /usr/share/quilt/quilt.make + +confflags-common = \ + --disable-glu \ + --disable-glut \ + --disable-glw \ + CFLAGS="$(CFLAGS)" + +DRI_DRIVERS = swrast +GALLIUM_DRIVERS = swrast +EGL_DISPLAYS = x11 + +# hurd doesn't do direct rendering +ifeq ($(DEB_HOST_ARCH_OS), hurd) + DIRECT_RENDERING = --disable-driglx-direct +else + DIRECT_RENDERING = --enable-driglx-direct + + ifeq ($(DEB_HOST_ARCH_OS), linux) +# Gallium drivers require libdrm-{nouveau,radeon}, only available on Linux + GALLIUM_DRIVERS += nouveau radeon r600 +# Classic nouveau driver also requires libdrm-nouveau, only on Linux + DRI_DRIVERS += nouveau +# Although the KMS egl drivers will probably build on kfreebsd & hurd +# only linux actually has KMS drivers implemented at this point. + EGL_DISPLAYS += drm + endif + + ifeq ($(DEB_HOST_ARCH), lpia) + DRI_DRIVERS += i915 i965 + GALLIUM_DRIVERS += i915 + else ifneq ($(DEB_HOST_ARCH), s390) + DRI_DRIVERS += mga r128 r200 r300 r600 radeon savage tdfx + ifeq ($(DEB_HOST_ARCH_CPU), i386) + DRI_DRIVERS += i810 i915 i965 sis unichrome + GALLIUM_DRIVERS += i915 + else ifeq ($(DEB_HOST_ARCH_CPU), amd64) + DRI_DRIVERS += i915 i965 sis unichrome + GALLIUM_DRIVERS += i915 + endif + endif +endif + +confflags-dri = \ + --with-driver=dri \ + --with-dri-drivers="$(DRI_DRIVERS)" \ + --with-dri-driverdir=/usr/lib/dri \ + --with-egl-platforms="$(EGL_DISPLAYS)" \ + --enable-glx-tls \ + $(addprefix --enable-gallium-,$(GALLIUM_DRIVERS)) \ + --with-state-trackers=egl,glx,dri,vega \ + --enable-gles-overlay \ + --enable-gles1 \ + --enable-gles2 \ + --enable-shared-dricore \ + $(DIRECT_RENDERING) \ + $(confflags-common) + +confflags-osmesa = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + $(confflags-common) + +confflags-osmesa-static = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + --enable-static \ + $(confflags-common) + +confflags-osmesa16 = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + --with-osmesa-bits=16 \ + $(confflags-common) + +confflags-osmesa16-static = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + --with-osmesa-bits=16 \ + --enable-static \ + $(confflags-common) + +confflags-osmesa32 = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + --with-osmesa-bits=32 \ + $(confflags-common) + +confflags-osmesa32-static = \ + --disable-egl \ + --disable-gallium \ + --with-driver=osmesa \ + --with-osmesa-bits=32 \ + --enable-static \ + $(confflags-common) + +confflags-swx11+glu = \ + --disable-egl \ + --disable-gallium \ + --with-driver=xlib \ + --disable-gl-osmesa \ + --disable-egl \ + --disable-glut \ + --disable-glw \ + CFLAGS="$(CFLAGS)" + +confflags-swx11+glu-static = \ + --disable-egl \ + --disable-gallium \ + --with-driver=xlib \ + --disable-gl-osmesa \ + --enable-static \ + --disable-egl \ + --disable-glut \ + --disable-glw \ + CFLAGS="$(CFLAGS)" + +confflags-swx11+glu-i386-i686 = \ + --disable-egl \ + --disable-gallium \ + --with-driver=xlib \ + --disable-gl-osmesa \ + --disable-glut \ + --disable-egl \ + --disable-glw \ + --libdir=/usr/lib/i686/cmov \ + CFLAGS="$(CFLAGS) -march=i686" + +# Add /usr/lib32/dri/ on 32 bit systems so that this path is used +# for 32 bit compatibility on 64 bit systems +ifeq ($(DEB_BUILD_ARCH),i386) + confflags-dri += --with-dri-searchpath=/usr/lib/dri:/usr/lib32/dri +endif + +configure: $(QUILT_STAMPFN) configure.ac + autoreconf -vfi + +# list the configurations that will built +configs: + @echo Building the following configurations: $(CONFIGS) + +$(STAMP_DIR)/stamp: + dh_testdir + mkdir -p $(STAMP_DIR) + >$@ + +$(QUILT_STAMPFN): $(STAMP_DIR)/stamp + +build: build-stamp + +build-stamp: $(BUILD_STAMPS) +# Remove gallium drivers which replace existing classic drivers. +# Intel gallium is significantly behind the classic mesa drivers... + rm -f build/dri/lib/gallium/i915_dri.so +# We want to be able to ship both r300g & r300c for UMS support. +# If we're building both, rename classic r300_dri to r300c_dri +ifneq (,$(findstring r300,$(DRI_DRIVERS))) + ifneq (,$(findstring radeon,$(GALLIUM_DRIVERS))) + mv build/dri/lib/r300_dri.so build/dri/lib/r300c_dri.so + endif +endif +# Similarly, we want to ship both r600g & r600c, but this +# time r600c is the default, so rename r600g. +ifneq (,$(findstring r600,$(DRI_DRIVERS))) + ifneq (,$(findstring r600,$(GALLIUM_DRIVERS))) + mv build/dri/lib/gallium/r600_dri.so build/dri/lib/gallium/r600g_dri.so + endif +endif + >$@ + +$(STAMP)-build-%: configure + dh_testdir + + mkdir -p $(DEB_BUILD_DIR)/$* + find $(CURDIR)/* -maxdepth 0 -not -path '$(DEB_BUILD_DIR)*' | \ + xargs cp -rlf -t $(DEB_BUILD_DIR)/$* + cd $(DEB_BUILD_DIR)/$* && \ + ../../configure --prefix=/usr --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info --sysconfdir=/etc \ + --localstatedir=/var $(confflags) $(confflags-$*) + cd $(DEB_BUILD_DIR)/$* && $(MAKE) + >$@ + +install: build + # Add here commands to install the package into debian/tmp + dh_testdir + dh_testroot + dh_prep + dh_installdirs + set -e; for config in $(filter-out dri, $(CONFIGS)); do \ + $(MAKE) -C $(DEB_BUILD_DIR)/$$config DESTDIR=$(CURDIR)/debian/tmp install; \ + done + $(MAKE) -C $(DEB_BUILD_DIR)/dri DESTDIR=$(CURDIR)/debian/tmp/dri install + +clean: unpatch + dh_testdir + dh_testroot + rm -rf .pc + + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf build + rm -rf configure config.guess config.sub config.h.in + rm -rf $$(find -name Makefile.in) + rm -rf aclocal.m4 missing depcomp install-sh ltmain.sh + rm -rf $(STAMP_DIR) + + dh_clean + +# Build architecture-independent files here. +binary-indep: install + + +# Build architecture-dependent files here. +binary-arch: install + dh_testdir + dh_testroot + dh_installchangelogs -s + dh_installchangelogs -pmesa-common-dev + dh_installdocs -s + dh_installexamples -s + + # Classic DRI and Gallium DRI are mixed up together here + # Remove the whole tree to avoid false-positives in --list-missing, and + # install the right files manually. + rm -r debian/tmp/dri/usr/lib/dri + + dh_install -s --list-missing + + # Create an ld.so.conf which says where to find libGL from Mesa + echo "/usr/lib/mesa" \ + > $(CURDIR)/debian/libgl1-mesa-glx/usr/lib/mesa/ld.so.conf + echo "/usr/lib/mesa" \ + > $(CURDIR)/debian/libgl1-mesa-swx11/usr/lib/mesa/ld.so.conf + +ifeq ($(DEB_BUILD_ARCH),amd64) + # Add the path to 32bit libGL from Mesa (on 64 bit) + echo "/usr/lib32/mesa" \ + >> $(CURDIR)/debian/libgl1-mesa-glx/usr/lib/mesa/ld.so.conf + echo "/usr/lib32/mesa" \ + >> $(CURDIR)/debian/libgl1-mesa-swx11/usr/lib/mesa/ld.so.conf +endif + + # Empty directory for the alternative + mkdir -p $(CURDIR)/debian/libgl1-mesa-glx/usr/lib/xorg/x11-extra-modules + mkdir -p $(CURDIR)/debian/libgl1-mesa-swx11/usr/lib/xorg/x11-extra-modules + + dh_installman -s + dh_lintian -s + dh_link -s + dh_strip -plibgl1-mesa-swx11 --dbg-package=libgl1-mesa-swx11-dbg + dh_strip -plibgl1-mesa-glx --dbg-package=libgl1-mesa-glx-dbg + dh_strip -plibgl1-mesa-dri --dbg-package=libgl1-mesa-dri-dbg + dh_strip -plibgl1-mesa-dri-experimental --dbg-package=libgl1-mesa-dri-experimental-dbg + dh_strip -plibopenvg1-mesa --dbg-package=libopenvg1-mesa-dbg + dh_strip -plibegl1-mesa --dbg-package=libegl1-mesa-dbg + dh_strip -plibgles1-mesa --dbg-package=libgles1-mesa-dbg + dh_strip -plibgles2-mesa --dbg-package=libgles2-mesa-dbg + dh_strip -plibegl1-mesa-drivers --dbg-package=libegl1-mesa-drivers-dbg + dh_strip -s --remaining-packages + dh_compress -s + dh_fixperms -s + dh_makeshlibs -s + dh_installdeb -s + dh_shlibdeps -s -l/usr/lib/mesa + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s -- -Zlzma + +binary: binary-indep binary-arch +.PHONY: configs build clean binary-indep binary-arch binary install --- mesa-7.9+repack.orig/debian/libgl1-mesa-glx.shlibs +++ mesa-7.9+repack/debian/libgl1-mesa-glx.shlibs @@ -0,0 +1 @@ +libGL 1 libgl1-mesa-glx | libgl1 --- mesa-7.9+repack.orig/debian/libgl1-mesa-dri-i686.install +++ mesa-7.9+repack/debian/libgl1-mesa-dri-i686.install @@ -0,0 +1 @@ +dri/usr/lib/dri/i686/cmov/*.so --- mesa-7.9+repack.orig/debian/libgles1-mesa.symbols +++ mesa-7.9+repack/debian/libgles1-mesa.symbols @@ -0,0 +1,240 @@ +libGLESv1_CM.so.1 libgles1-mesa #MINVER# | libgles1 +# _glapi_* are internal GL dispatch symbols. They should probably be hidden + (regex)"^_glapi_.*@Base$" 7.8.1 +# These are optimised assembly versions of functions, accessed through a +# dispatch table. They're arch-specific, and should probably be hidden. + (regex|optional=mesa internal ASM optimized functions)"^_mesa_.*@Base$" 7.8.1 + _glthread_GetID@Base 7.8.1 + glActiveTexture@Base 7.8.1 + glAlphaFunc@Base 7.8.1 + glAlphaFuncx@Base 7.8.1 + glAlphaFuncxOES@Base 7.8.1 + glBindBuffer@Base 7.8.1 + glBindFramebufferOES@Base 7.8.1 + glBindRenderbufferOES@Base 7.8.1 + glBindTexture@Base 7.8.1 + glBlendEquationOES@Base 7.8.1 + glBlendEquationSeparateOES@Base 7.8.1 + glBlendFunc@Base 7.8.1 + glBlendFuncSeparateOES@Base 7.8.1 + glBufferData@Base 7.8.1 + glBufferSubData@Base 7.8.1 + glCheckFramebufferStatusOES@Base 7.8.1 + glClear@Base 7.8.1 + glClearColor@Base 7.8.1 + glClearColorx@Base 7.8.1 + glClearColorxOES@Base 7.8.1 + glClearDepthf@Base 7.8.1 + glClearDepthfOES@Base 7.8.1 + glClearDepthx@Base 7.8.1 + glClearDepthxOES@Base 7.8.1 + glClearStencil@Base 7.8.1 + glClientActiveTexture@Base 7.8.1 + glClipPlanef@Base 7.8.1 + glClipPlanefOES@Base 7.8.1 + glClipPlanex@Base 7.8.1 + glClipPlanexOES@Base 7.8.1 + glColor4f@Base 7.8.1 + glColor4ub@Base 7.8.1 + glColor4x@Base 7.8.1 + glColor4xOES@Base 7.8.1 + glColorMask@Base 7.8.1 + glColorPointer@Base 7.8.1 + glCompressedTexImage2D@Base 7.8.1 + glCompressedTexSubImage2D@Base 7.8.1 + glCopyTexImage2D@Base 7.8.1 + glCopyTexSubImage2D@Base 7.8.1 + glCullFace@Base 7.8.1 + glDeleteBuffers@Base 7.8.1 + glDeleteFramebuffersOES@Base 7.8.1 + glDeleteRenderbuffersOES@Base 7.8.1 + glDeleteTextures@Base 7.8.1 + glDepthFunc@Base 7.8.1 + glDepthMask@Base 7.8.1 + glDepthRangef@Base 7.8.1 + glDepthRangefOES@Base 7.8.1 + glDepthRangex@Base 7.8.1 + glDepthRangexOES@Base 7.8.1 + glDisable@Base 7.8.1 + glDisableClientState@Base 7.8.1 + glDrawArrays@Base 7.8.1 + glDrawElements@Base 7.8.1 + glDrawTexfOES@Base 7.8.1 + glDrawTexfvOES@Base 7.8.1 + glDrawTexiOES@Base 7.8.1 + glDrawTexivOES@Base 7.8.1 + glDrawTexsOES@Base 7.8.1 + glDrawTexsvOES@Base 7.8.1 + glDrawTexxOES@Base 7.8.1 + glDrawTexxvOES@Base 7.8.1 + glEGLImageTargetRenderbufferStorageOES@Base 7.8.1 + glEGLImageTargetTexture2DOES@Base 7.8.1 + glEnable@Base 7.8.1 + glEnableClientState@Base 7.8.1 + glFinish@Base 7.8.1 + glFlush@Base 7.8.1 + glFogf@Base 7.8.1 + glFogfv@Base 7.8.1 + glFogx@Base 7.8.1 + glFogxOES@Base 7.8.1 + glFogxv@Base 7.8.1 + glFogxvOES@Base 7.8.1 + glFramebufferRenderbufferOES@Base 7.8.1 + glFramebufferTexture2DOES@Base 7.8.1 + glFrontFace@Base 7.8.1 + glFrustumf@Base 7.8.1 + glFrustumfOES@Base 7.8.1 + glFrustumx@Base 7.8.1 + glFrustumxOES@Base 7.8.1 + glGenBuffers@Base 7.8.1 + glGenFramebuffersOES@Base 7.8.1 + glGenRenderbuffersOES@Base 7.8.1 + glGenTextures@Base 7.8.1 + glGenerateMipmapOES@Base 7.8.1 + glGetBooleanv@Base 7.8.1 + glGetBufferParameteriv@Base 7.8.1 + glGetBufferPointervOES@Base 7.8.1 + glGetClipPlanef@Base 7.8.1 + glGetClipPlanefOES@Base 7.8.1 + glGetClipPlanex@Base 7.8.1 + glGetClipPlanexOES@Base 7.8.1 + glGetError@Base 7.8.1 + glGetFixedv@Base 7.8.1 + glGetFixedvOES@Base 7.8.1 + glGetFloatv@Base 7.8.1 + glGetFramebufferAttachmentParameterivOES@Base 7.8.1 + glGetIntegerv@Base 7.8.1 + glGetLightfv@Base 7.8.1 + glGetLightxv@Base 7.8.1 + glGetLightxvOES@Base 7.8.1 + glGetMaterialfv@Base 7.8.1 + glGetMaterialxv@Base 7.8.1 + glGetMaterialxvOES@Base 7.8.1 + glGetPointerv@Base 7.8.1 + glGetRenderbufferParameterivOES@Base 7.8.1 + glGetString@Base 7.8.1 + glGetTexEnvfv@Base 7.8.1 + glGetTexEnviv@Base 7.8.1 + glGetTexEnvxv@Base 7.8.1 + glGetTexEnvxvOES@Base 7.8.1 + glGetTexGenfvOES@Base 7.8.1 + glGetTexGenivOES@Base 7.8.1 + glGetTexGenxvOES@Base 7.8.1 + glGetTexParameterfv@Base 7.8.1 + glGetTexParameteriv@Base 7.8.1 + glGetTexParameterxv@Base 7.8.1 + glGetTexParameterxvOES@Base 7.8.1 + glHint@Base 7.8.1 + glIsBuffer@Base 7.8.1 + glIsEnabled@Base 7.8.1 + glIsFramebufferOES@Base 7.8.1 + glIsRenderbufferOES@Base 7.8.1 + glIsTexture@Base 7.8.1 + glLightModelf@Base 7.8.1 + glLightModelfv@Base 7.8.1 + glLightModelx@Base 7.8.1 + glLightModelxOES@Base 7.8.1 + glLightModelxv@Base 7.8.1 + glLightModelxvOES@Base 7.8.1 + glLightf@Base 7.8.1 + glLightfv@Base 7.8.1 + glLightx@Base 7.8.1 + glLightxOES@Base 7.8.1 + glLightxv@Base 7.8.1 + glLightxvOES@Base 7.8.1 + glLineWidth@Base 7.8.1 + glLineWidthx@Base 7.8.1 + glLineWidthxOES@Base 7.8.1 + glLoadIdentity@Base 7.8.1 + glLoadMatrixf@Base 7.8.1 + glLoadMatrixx@Base 7.8.1 + glLoadMatrixxOES@Base 7.8.1 + glLogicOp@Base 7.8.1 + glMapBufferOES@Base 7.8.1 + glMaterialf@Base 7.8.1 + glMaterialfv@Base 7.8.1 + glMaterialx@Base 7.8.1 + glMaterialxOES@Base 7.8.1 + glMaterialxv@Base 7.8.1 + glMaterialxvOES@Base 7.8.1 + glMatrixMode@Base 7.8.1 + glMultMatrixf@Base 7.8.1 + glMultMatrixx@Base 7.8.1 + glMultMatrixxOES@Base 7.8.1 + glMultiDrawArraysEXT@Base 7.8.1 + glMultiDrawElementsEXT@Base 7.8.1 + glMultiTexCoord4f@Base 7.8.1 + glMultiTexCoord4x@Base 7.8.1 + glMultiTexCoord4xOES@Base 7.8.1 + glNormal3f@Base 7.8.1 + glNormal3x@Base 7.8.1 + glNormal3xOES@Base 7.8.1 + glNormalPointer@Base 7.8.1 + glOrthof@Base 7.8.1 + glOrthofOES@Base 7.8.1 + glOrthox@Base 7.8.1 + glOrthoxOES@Base 7.8.1 + glPixelStorei@Base 7.8.1 + glPointParameterf@Base 7.8.1 + glPointParameterfv@Base 7.8.1 + glPointParameterx@Base 7.8.1 + glPointParameterxOES@Base 7.8.1 + glPointParameterxv@Base 7.8.1 + glPointParameterxvOES@Base 7.8.1 + glPointSize@Base 7.8.1 + glPointSizePointerOES@Base 7.8.1 + glPointSizex@Base 7.8.1 + glPointSizexOES@Base 7.8.1 + glPolygonOffset@Base 7.8.1 + glPolygonOffsetx@Base 7.8.1 + glPolygonOffsetxOES@Base 7.8.1 + glPopMatrix@Base 7.8.1 + glPushMatrix@Base 7.8.1 + glQueryMatrixxOES@Base 7.8.1 + glReadPixels@Base 7.8.1 + glRenderbufferStorageOES@Base 7.8.1 + glRotatef@Base 7.8.1 + glRotatex@Base 7.8.1 + glRotatexOES@Base 7.8.1 + glSampleCoverage@Base 7.8.1 + glSampleCoveragex@Base 7.8.1 + glSampleCoveragexOES@Base 7.8.1 + glScalef@Base 7.8.1 + glScalex@Base 7.8.1 + glScalexOES@Base 7.8.1 + glScissor@Base 7.8.1 + glShadeModel@Base 7.8.1 + glStencilFunc@Base 7.8.1 + glStencilMask@Base 7.8.1 + glStencilOp@Base 7.8.1 + glTexCoordPointer@Base 7.8.1 + glTexEnvf@Base 7.8.1 + glTexEnvfv@Base 7.8.1 + glTexEnvi@Base 7.8.1 + glTexEnviv@Base 7.8.1 + glTexEnvx@Base 7.8.1 + glTexEnvxOES@Base 7.8.1 + glTexEnvxv@Base 7.8.1 + glTexEnvxvOES@Base 7.8.1 + glTexGenfOES@Base 7.8.1 + glTexGenfvOES@Base 7.8.1 + glTexGeniOES@Base 7.8.1 + glTexGenivOES@Base 7.8.1 + glTexGenxOES@Base 7.8.1 + glTexGenxvOES@Base 7.8.1 + glTexImage2D@Base 7.8.1 + glTexParameterf@Base 7.8.1 + glTexParameterfv@Base 7.8.1 + glTexParameteri@Base 7.8.1 + glTexParameteriv@Base 7.8.1 + glTexParameterx@Base 7.8.1 + glTexParameterxOES@Base 7.8.1 + glTexParameterxv@Base 7.8.1 + glTexParameterxvOES@Base 7.8.1 + glTexSubImage2D@Base 7.8.1 + glTranslatef@Base 7.8.1 + glTranslatex@Base 7.8.1 + glTranslatexOES@Base 7.8.1 + glUnmapBufferOES@Base 7.8.1 + glVertexPointer@Base 7.8.1 + glViewport@Base 7.8.1 --- mesa-7.9+repack.orig/debian/libglw1-mesa.shlibs +++ mesa-7.9+repack/debian/libglw1-mesa.shlibs @@ -0,0 +1 @@ +libGLw 1 libglw1-mesa | libglw1 --- mesa-7.9+repack.orig/debian/libopenvg1-mesa-dev.install +++ mesa-7.9+repack/debian/libopenvg1-mesa-dev.install @@ -0,0 +1,3 @@ +dri/usr/lib/libOpenVG.so usr/lib +dri/usr/include/VG usr/include +dri/usr/lib/pkgconfig/vg.pc usr/lib/pkgconfig --- mesa-7.9+repack.orig/debian/scripts/choose-configs +++ mesa-7.9+repack/debian/scripts/choose-configs @@ -0,0 +1,47 @@ +# Script to choose which configurations are to be built depending on the value +# of the DEB_BUILD_ARCH variable. +# +# Copyright © 2006 Thierry Reding + +############################################################################## +## architecture-specific configurations ###################################### + +# choose an architecture-specific build of swx11 and GLU if a matching +# configuration exists +#ifneq ($(wildcard configs/debian-swx11+glu-$(DEB_BUILD_ARCH)),) +# SWX11_GLU_CONFIGS := debian-swx11+glu-$(DEB_BUILD_ARCH) +#else +# SWX11_GLU_CONFIGS := debian-swx11+glu-any +#endif + +# same for static builds +#ifneq ($(wildcard configs/debian-swx11+glu-static-$(DEB_BUILD_ARCH)),) +# SWX11_GLU_CONFIGS += debian-swx11+glu-static-$(DEB_BUILD_ARCH) +#else +# SWX11_GLU_CONFIGS += debian-swx11+glu-static-any +#endif + +SWX11_GLU_CONFIGS := swx11+glu swx11+glu-static + +############################################################################## +## CPU-optimized configurations ############################################## + +#ifneq (,$(filter $(DEB_BUILD_ARCH), i386 kfreebsd-i386 hurd-i386)) +# SWX11_GLU_CONFIGS += swx11+glu-i386-i686 +# DRI_CONFIGS += debian-dri-i386-i686 +#endif + +#ifeq ($(DEB_BUILD_ARCH), alpha) +# SWX11_GLU_CONFIGS += debian-swx11+glu-alpha-ev5 +#endif + +#ifeq ($(DEB_BUILD_ARCH), powerpc) +# SWX11_GLU_CONFIGS += debian-swx11+glu-powerpc-603 +#endif + +#ifeq ($(DEB_BUILD_ARCH), sparc) +# SWX11_GLU_CONFIGS += debian-swx11+glu-sparc-ultrasparc +#endif + +# vim: ft=make + --- mesa-7.9+repack.orig/debian/patches/100_no_abi_tag.patch +++ mesa-7.9+repack/debian/patches/100_no_abi_tag.patch @@ -0,0 +1,42 @@ +--- a/src/mapi/glapi/glapi_x86-64.S ++++ b/src/mapi/glapi/glapi_x86-64.S +@@ -30885,18 +30885,6 @@ GL_PREFIX(EGLImageTargetTexture2DOES): + .globl GL_PREFIX(FramebufferTextureLayer) ; .set GL_PREFIX(FramebufferTextureLayer), GL_PREFIX(FramebufferTextureLayerEXT) + .globl GL_PREFIX(ProvokingVertex) ; .set GL_PREFIX(ProvokingVertex), GL_PREFIX(ProvokingVertexEXT) + +-#if defined(GLX_USE_TLS) && defined(__linux__) +- .section ".note.ABI-tag", "a" +- .p2align 2 +- .long 1f - 0f /* name length */ +- .long 3f - 2f /* data length */ +- .long 1 /* note length */ +-0: .asciz "GNU" /* vendor name */ +-1: .p2align 2 +-2: .long 0 /* note data: the ABI tag */ +- .long 2,4,20 /* Minimum kernel version w/TLS */ +-3: .p2align 2 /* pad out section */ +-#endif /* GLX_USE_TLS */ + + #if defined (__ELF__) && defined (__linux__) + .section .note.GNU-stack,"",%progbits +--- a/src/mapi/glapi/glapi_x86.S ++++ b/src/mapi/glapi/glapi_x86.S +@@ -1279,18 +1279,6 @@ GLNAME(gl_dispatch_functions_start): + ALIGNTEXT16 + GLNAME(gl_dispatch_functions_end): + +-#if defined(GLX_USE_TLS) && defined(__linux__) +- .section ".note.ABI-tag", "a" +- .p2align 2 +- .long 1f - 0f /* name length */ +- .long 3f - 2f /* data length */ +- .long 1 /* note length */ +-0: .asciz "GNU" /* vendor name */ +-1: .p2align 2 +-2: .long 0 /* note data: the ABI tag */ +- .long 2,4,20 /* Minimum kernel version w/TLS */ +-3: .p2align 2 /* pad out section */ +-#endif /* GLX_USE_TLS */ + + #if defined (__ELF__) && defined (__linux__) + .section .note.GNU-stack,"",%progbits --- mesa-7.9+repack.orig/debian/patches/107_winsys_buffer_nullptr.patch +++ mesa-7.9+repack/debian/patches/107_winsys_buffer_nullptr.patch @@ -0,0 +1,13 @@ +diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c b/src/gallium/winsys/radeon/drm/radeon_r300.c +index 420522f..2d1bd1e 100644 +--- a/src/gallium/winsys/radeon/drm/radeon_r300.c ++++ b/src/gallium/winsys/radeon/drm/radeon_r300.c +@@ -119,7 +119,7 @@ static struct r300_winsys_buffer *radeon_r300_winsys_buffer_from_handle(struct r + + if (stride) + *stride = whandle->stride; +- if (size) ++ if (size && _buf) + *size = _buf->base.size; + + return radeon_libdrm_winsys_buffer(_buf); --- mesa-7.9+repack.orig/debian/patches/105_use_shared_libdricore.patch +++ mesa-7.9+repack/debian/patches/105_use_shared_libdricore.patch @@ -0,0 +1,469 @@ +commit 2bf2b08a97a65327bfb9d511f3cc6792aa560cbc +Author: Christopher James Halse Rogers +Date: Wed Nov 17 14:28:34 2010 +1100 + + mesa: Optionally build a dricore support library. + + This an adds --enable-shared-dricore option to configure. When enabled, + DRI modules will link against a shared copy of the common mesa routines + rather than statically linking these. + + This saves about 30MB on disc with a full complement of classic DRI + drivers. + +Index: mesa/configs/autoconf.in +=================================================================== +--- mesa.orig/configs/autoconf.in 2010-11-26 10:17:38.652892000 +1100 ++++ mesa/configs/autoconf.in 2010-11-26 11:08:40.902892001 +1100 +@@ -33,6 +33,8 @@ + LLVM_LIBS = @LLVM_LIBS@ + GLW_CFLAGS = @GLW_CFLAGS@ + GLUT_CFLAGS = @GLUT_CFLAGS@ ++DRI_CFLAGS = @DRI_CFLAGS@ ++DRI_CXXFLAGS = @DRI_CXXFLAGS@ + + TALLOC_LIBS = @TALLOC_LIBS@ + TALLOC_CFLAGS = @TALLOC_CFLAGS@ +@@ -103,7 +105,10 @@ + GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) + + # Driver specific build vars +-DRI_DIRS = @DRI_DIRS@ ++DRI_DIRS = @DRI_DIRS@ ++DRICORE_GLSL_LIBS = @DRICORE_GLSL_LIBS@ ++DRICORE_LIBS = @DRICORE_LIBS@ ++DRICORE_LIB_DEPS = @DRICORE_LIB_DEPS@ + EGL_PLATFORMS = @EGL_PLATFORMS@ + EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ + +@@ -131,6 +136,7 @@ + VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@ + + # DRI dependencies ++MESA_MODULES = @MESA_MODULES@ + DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@ + LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ + LIBDRM_LIB = @LIBDRM_LIBS@ +Index: mesa/configs/default +=================================================================== +--- mesa.orig/configs/default 2010-11-26 10:17:38.712892000 +1100 ++++ mesa/configs/default 2010-11-26 11:08:40.912892001 +1100 +@@ -85,6 +85,9 @@ + TALLOC_LIBS = `pkg-config --libs talloc` + TALLOC_CFLAGS = `pkg-config --cflags talloc` + ++DRI_CFLAGS = $(CFLAGS) ++DRI_CXXFLAGS = $(CXXFLAGS) ++ + # Optional assembly language optimization files for libGL + MESA_ASM_SOURCES = + +Index: mesa/configs/freebsd-dri +=================================================================== +--- mesa.orig/configs/freebsd-dri 2010-11-26 10:17:38.802892000 +1100 ++++ mesa/configs/freebsd-dri 2010-11-26 11:08:40.942892001 +1100 +@@ -30,9 +30,11 @@ + MESA_ASM_SOURCES = + + # Library/program dependencies ++MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++ + LIBDRM_CFLAGS = `pkg-config --cflags libdrm` + LIBDRM_LIB = `pkg-config --libs libdrm` +-DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB) ++DRI_LIB_DEPS = $(MESA_MODULES) -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB) + GL_LIB_DEPS = -L/usr/local/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ + -lm -pthread $(LIBDRM_LIB) + +Index: mesa/configs/linux-dri +=================================================================== +--- mesa.orig/configs/linux-dri 2010-11-26 10:17:39.292892001 +1100 ++++ mesa/configs/linux-dri 2010-11-26 11:08:40.952892001 +1100 +@@ -43,9 +43,11 @@ + # Library/program dependencies + EXTRA_LIB_PATH=-L/usr/X11R6/lib + ++MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++ + LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) + LIBDRM_LIB = $(shell pkg-config --libs libdrm) +-DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -ltalloc $(LIBDRM_LIB) ++DRI_LIB_DEPS = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -ltalloc $(LIBDRM_LIB) + GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ + -lm -lpthread -ldl $(LIBDRM_LIB) + +Index: mesa/configs/linux-dri-xcb +=================================================================== +--- mesa.orig/configs/linux-dri-xcb 2010-11-26 10:17:39.432892001 +1100 ++++ mesa/configs/linux-dri-xcb 2010-11-26 11:08:40.952892001 +1100 +@@ -41,9 +41,11 @@ + # Library/program dependencies + EXTRA_LIB_PATH=$(shell pkg-config --libs-only-L x11) + ++MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++ + LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) + LIBDRM_LIB = $(shell pkg-config --libs libdrm) +-DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) ++DRI_LIB_DEPS = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) + GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \ + $(LIBDRM_LIB) $(shell pkg-config --libs xcb) $(shell pkg-config --libs x11-xcb) $(shell pkg-config --libs xcb-glx) + +Index: mesa/configs/linux-egl +=================================================================== +--- mesa.orig/configs/linux-egl 2010-11-26 10:17:39.622892001 +1100 ++++ mesa/configs/linux-egl 2010-11-26 11:08:40.982892001 +1100 +@@ -38,9 +38,11 @@ + # Library/program dependencies + EXTRA_LIB_PATH=-L/usr/X11R6/lib + ++MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++ + LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) + LIBDRM_LIB = $(shell pkg-config --libs libdrm) +-DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) ++DRI_LIB_DEPS = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) + GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ + -lm -lpthread -ldl \ + $(LIBDRM_LIB) +Index: mesa/configs/linux-indirect +=================================================================== +--- mesa.orig/configs/linux-indirect 2010-11-26 10:17:39.742892001 +1100 ++++ mesa/configs/linux-indirect 2010-11-26 11:08:41.002892001 +1100 +@@ -42,7 +42,8 @@ + # Library/program dependencies + EXTRA_LIB_PATH=-L/usr/X11R6/lib + +-DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl ++MESA_MODULES = $(TOP)/src/mesa/libmesa.a ++DRI_LIB_DEPS = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl + GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl + + +Index: mesa/configure.ac +=================================================================== +--- mesa.orig/configure.ac 2010-11-26 11:08:40.472892001 +1100 ++++ mesa/configure.ac 2010-11-26 11:08:41.012892001 +1100 +@@ -699,6 +699,34 @@ + AC_SUBST([GLESv2_PC_LIB_PRIV]) + + ++AC_ARG_ENABLE([shared-dricore], ++ [AS_HELP_STRING([--enable-shared-dricore], ++ [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])], ++ [enable_dricore="$enableval"], ++ [enable_dricore=no]) ++if test "$mesa_driver" = dri ; then ++ if test "$enable_dricore" = yes ; then ++ DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so' ++ DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so' ++ DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl' ++ DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl' ++ DRI_CFLAGS='$(filter-out -fvisibility=hidden,$(CFLAGS)) -DUSE_DRICORE' ++ DRI_CXXFLAGS='$(filter-out -fvisibility=hidden,$(CXXFLAGS)) -DUSE_DRICORE' ++ MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)' ++ else ++ DRI_CFLAGS='$(CFLAGS)' ++ DRI_CXXFLAGS='$(CXXFLAGS)' ++ DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a' ++ MESA_MODULES='$(TOP)/src/mesa/libmesa.a' ++ fi ++fi ++AC_SUBST([DRICORE_LIBS]) ++AC_SUBST([DRICORE_GLSL_LIBS]) ++AC_SUBST([DRICORE_LIB_DEPS]) ++AC_SUBST([DRI_CXXFLAGS]) ++AC_SUBST([DRI_CFLAGS]) ++AC_SUBST([MESA_MODULES]) ++ + AC_SUBST([HAVE_XF86VIDMODE]) + + PKG_CHECK_MODULES([LIBDRM_RADEON], +@@ -903,8 +931,8 @@ + AC_CHECK_LIB([expat],[XML_ParserCreate],[], + [AC_MSG_ERROR([Expat required for DRI.])]) + +- # put all the necessary libs together +- DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS" ++ # put all the necessary libs together, including possibly libdricore ++ DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS" + fi + AC_SUBST([DRI_DIRS]) + AC_SUBST([EXPAT_INCLUDES]) +Index: mesa/src/glsl/Makefile +=================================================================== +--- mesa.orig/src/glsl/Makefile 2010-11-26 10:17:39.902892001 +1100 ++++ mesa/src/glsl/Makefile 2010-11-26 11:08:41.022892001 +1100 +@@ -110,6 +110,9 @@ + $(C_SOURCES:.c=.o) \ + $(CXX_SOURCES:.cpp=.o) + ++DRICORE_OBJ_DIR = obj-visible ++OBJECTS_DRICORE = $(addprefix $(DRICORE_OBJ_DIR)/,$(OBJECTS)) ++ + INCLUDES = \ + $(TALLOC_CFLAGS) \ + -I. \ +@@ -126,7 +129,14 @@ + + ##### TARGETS ##### + +-default: depend lib$(LIBNAME).a $(APPS) ++default: depend lib$(LIBNAME).a $(APPS) $(DRICORE_GLSL_LIBS) ++ ++libglsl.so : $(OBJECTS_DRICORE) Makefile ++ $(MKLIB) -cplusplus -noprefix -o $@ $(OBJECTS_DRICORE) ++ ++$(TOP)/$(LIB_DIR)/libglsl.so: libglsl.so ++ $(INSTALL) -d $(TOP)/$(LIB_DIR) ++ $(INSTALL) -m 755 libglsl.so $(TOP)/$(LIB_DIR) + + lib$(LIBNAME).a: $(OBJECTS) Makefile $(TOP)/src/glsl/Makefile.template + $(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS) +@@ -160,6 +170,14 @@ + .c.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ + ++$(DRICORE_OBJ_DIR)/%.o : %.cpp ++ @mkdir -p $(dir $@) ++ $(CXX) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DEFINES) $< -o $@ ++ ++$(DRICORE_OBJ_DIR)/%.o : %.c ++ @mkdir -p $(dir $@) ++ $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DEFINES) $< -o $@ ++ + glsl_lexer.cpp: glsl_lexer.lpp + flex --nounistd -o$@ $< + +Index: mesa/src/mesa/Makefile +=================================================================== +--- mesa.orig/src/mesa/Makefile 2010-11-26 10:17:40.042892000 +1100 ++++ mesa/src/mesa/Makefile 2010-11-26 11:38:35.000000000 +1100 +@@ -15,6 +15,7 @@ + MESA_OBJ_DIR := . + ES1_OBJ_DIR := objs-es1 + ES2_OBJ_DIR := objs-es2 ++DRICORE_OBJ_DIR := objs-dricore + + + include sources.mak +@@ -23,6 +24,7 @@ + ES1_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_OBJECTS)) + ES2_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_OBJECTS)) + MESA_OBJECTS := $(addprefix $(MESA_OBJ_DIR)/, $(MESA_OBJECTS)) ++DRICORE_OBJECTS := $(addprefix $(DRICORE_OBJ_DIR)/, $(MESA_OBJECTS)) + + ES1_GALLIUM_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS)) + ES2_GALLIUM_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS)) +@@ -32,6 +34,7 @@ + MESA_CPPFLAGS := $(API_DEFINES) $(DEFINES) + ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES) + ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES) ++DRICORE_CPPFLAGS = $(MESA_CPPFLAGS) + + # append include dirs + MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS) +@@ -43,18 +46,24 @@ + CXXFLAGS := $(filter-out $(DEFINES), $(CXXFLAGS)) + + # LLVM is needed for the state tracker +-MESA_CFLAGS := $(LLVM_CFLAGS) +-ES1_CFLAGS := $(LLVM_CFLAGS) +-ES2_CFLAGS := $(LLVM_CFLAGS) ++MESA_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS) ++ES1_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS) ++ES2_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS) ++DRICORE_CFLAGS := $(LLVM_CFLAGS) $(DRI_CFLAGS) ++ ++MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS) ++ES1_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS) ++ES2_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS) ++DRICORE_CXXFLAGS := $(LLVM_CFLAGS) $(DRI_CXXFLAGS) + + define mesa-cc-c + @mkdir -p $(dir $@) +- $(CC) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) $(CFLAGS) ++ $(CC) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) + endef + + define mesa-cxx-c + @mkdir -p $(dir $@) +- $(CXX) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) $(CXXFLAGS) ++ $(CXX) -c -o $@ $< $($(1)_CPPFLAGS) $($(1)_CFLAGS) + endef + + $(MESA_OBJ_DIR)/%.o: %.c +@@ -84,11 +93,20 @@ + $(ES2_OBJ_DIR)/%.o: %.S + $(call mesa-cc-c,ES2) + ++$(DRICORE_OBJ_DIR)/%.o: %.c ++ $(call mesa-cc-c,DRICORE) ++ ++$(DRICORE_OBJ_DIR)/%.o: %.cpp ++ $(call mesa-cxx-c,DRICORE) ++ ++$(DRICORE_OBJ_DIR)/%.o: %.S ++ $(call mesa-cc-c,DRICORE) ++ + + # Default: build dependencies, then asm_subdirs, GLSL built-in lib, + # then convenience libs (.a) and finally the device drivers: + default: $(DEPENDS) asm_subdirs \ +- $(MESA_LIBS) $(ES1_LIBS) $(ES2_LIBS) driver_subdirs ++ $(MESA_LIBS) $(ES1_LIBS) $(ES2_LIBS) $(DRICORE_LIBS) driver_subdirs + + main/api_exec_es1.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py main/APIspec.py + $(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V GLES1.1 > $@ +@@ -109,6 +127,15 @@ + libes2.a: $(ES2_OBJECTS) $(GLSL_LIBS) + @$(MKLIB) -o es2 -static $(ES2_OBJECTS) $(GLSL_LIBS) + ++# Shared dricore library for classic DRI drivers ++libdricore.so: $(DRICORE_OBJECTS) $(DRICORE_GLSL_LIBS) ++ @$(MKLIB) -o libdricore.so -noprefix -cplusplus \ ++ $(DRICORE_LIB_DEPS) $(DRICORE_OBJECTS) ++ ++$(TOP)/$(LIB_DIR)/libdricore.so: libdricore.so ++ @$(INSTALL) -d $(TOP)/$(LIB_DIR) ++ @$(INSTALL) -m 755 libdricore.so $(TOP)/$(LIB_DIR) ++ + # Make archive of subset of core mesa object files for gallium + libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS) + @ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS) +@@ -121,7 +148,7 @@ + + ###################################################################### + # Device drivers +-driver_subdirs: $(MESA_LIBS) ++driver_subdirs: $(MESA_LIBS) $(DRICORE_LIBS) + @ (cd drivers && $(MAKE)) + + +@@ -165,9 +192,12 @@ + new_install: + (cd drivers && $(MAKE) install) + ++ifneq (,$(DRICORE_LIBS)) ++DRICORE_INSTALL_TARGET = install-dricore ++endif + + # XXX replace this with new_install above someday +-install: default ++install: default $(DRICORE_INSTALL_TARGET) + @for driver in $(DRIVER_DIRS) ; do \ + case "$$driver" in \ + osmesa) if [ "$(DRIVER_DIRS)" = osmesa ]; then \ +@@ -229,6 +259,12 @@ + cd drivers/dri && $(MAKE) install + + ++install-dricore: default ++ $(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++ $(INSTALL) -m 755 $(DRICORE_LIBS) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR) ++ $(INSTALL) -m 755 $(DRICORE_GLSL_LIBS) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR$) ++ ++ + + # Emacs tags + tags: +@@ -244,7 +280,12 @@ + -rm -rf $(ES2_OBJ_DIR) + -rm -f depend.es2 depend.es2.bak + +-clean: clean-es1 clean-es2 ++clean-dricore: ++ -rm -f libdricore.so ++ -rm -f $(DRICORE_LIBS) ++ -rm -rf $(DRICORE_OBJ_DIR) ++ ++clean: clean-es1 clean-es2 clean-dricore + -rm -f */*.o + -rm -f */*/*.o + -rm -f depend depend.bak libmesa.a libmesagallium.a +Index: mesa/src/mesa/drivers/dri/Makefile.template +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/Makefile.template 2010-11-26 10:17:40.232892001 +1100 ++++ mesa/src/mesa/drivers/dri/Makefile.template 2010-11-26 11:08:41.102892001 +1100 +@@ -1,7 +1,5 @@ + # -*-makefile-*- + +-MESA_MODULES = $(TOP)/src/mesa/libmesa.a +- + COMMON_GALLIUM_SOURCES = \ + ../common/utils.c \ + ../common/vblank.c \ +@@ -39,13 +37,13 @@ + ##### RULES ##### + + .c.o: +- $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@ ++ $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@ + + .cpp.o: +- $(CC) -c $(INCLUDES) $(CXXFLAGS) $(DRIVER_DEFINES) $< -o $@ ++ $(CC) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DRIVER_DEFINES) $< -o $@ + + .S.o: +- $(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@ ++ $(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DRIVER_DEFINES) $< -o $@ + + + ##### TARGETS ##### +@@ -57,10 +55,10 @@ + lib: symlinks subdirs depend + @$(MAKE) $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME) + +-$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(EXTRA_MODULES) Makefile \ ++$(LIBNAME): $(OBJECTS) $(EXTRA_MODULES) $(MESA_MODULES) Makefile \ + $(TOP)/src/mesa/drivers/dri/Makefile.template $(TOP)/src/mesa/drivers/dri/common/dri_test.o + $(MKLIB) -o $@.tmp -noprefix -linker '$(CXX)' -ldflags '$(LDFLAGS)' \ +- $(OBJECTS) $(MESA_MODULES) $(EXTRA_MODULES) $(DRI_LIB_DEPS) ++ $(OBJECTS) $(EXTRA_MODULES) $(DRI_LIB_DEPS) + $(CXX) $(CFLAGS) -o $@.test $(TOP)/src/mesa/drivers/dri/common/dri_test.o $@.tmp $(DRI_LIB_DEPS) + @rm -f $@.test + mv -f $@.tmp $@ +Index: mesa/src/mesa/x86/read_rgba_span_x86.S +=================================================================== +--- mesa.orig/src/mesa/x86/read_rgba_span_x86.S 2010-11-26 10:17:40.522892002 +1100 ++++ mesa/src/mesa/x86/read_rgba_span_x86.S 2010-11-26 11:08:41.102892001 +1100 +@@ -77,7 +77,9 @@ + */ + + .globl _generic_read_RGBA_span_BGRA8888_REV_MMX ++#ifndef USE_DRICORE + .hidden _generic_read_RGBA_span_BGRA8888_REV_MMX ++#endif + .type _generic_read_RGBA_span_BGRA8888_REV_MMX, @function + _generic_read_RGBA_span_BGRA8888_REV_MMX: + pushl %ebx +@@ -172,7 +174,9 @@ + */ + + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE ++#ifndef USE_DRICORE + .hidden _generic_read_RGBA_span_BGRA8888_REV_SSE ++#endif + .type _generic_read_RGBA_span_BGRA8888_REV_SSE, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE: + pushl %esi +@@ -335,7 +339,9 @@ + + .text + .globl _generic_read_RGBA_span_BGRA8888_REV_SSE2 ++#ifndef USE_DRICORE + .hidden _generic_read_RGBA_span_BGRA8888_REV_SSE2 ++#endif + .type _generic_read_RGBA_span_BGRA8888_REV_SSE2, @function + _generic_read_RGBA_span_BGRA8888_REV_SSE2: + pushl %esi +@@ -494,7 +500,9 @@ + + .text + .globl _generic_read_RGBA_span_RGB565_MMX ++#ifndef USE_DRICORE + .hidden _generic_read_RGBA_span_RGB565_MMX ++#endif + .type _generic_read_RGBA_span_RGB565_MMX, @function + + _generic_read_RGBA_span_RGB565_MMX: --- mesa-7.9+repack.orig/debian/patches/104_i915_fragment_shader_disable.patch +++ mesa-7.9+repack/debian/patches/104_i915_fragment_shader_disable.patch @@ -0,0 +1,26 @@ +From e5a4106be7c8b87821f6b5d21fec99a402825740 Mon Sep 17 00:00:00 2001 +From: Robert Hooker +Date: Wed, 8 Sep 2010 12:33:09 -0400 +Subject: [PATCH] Revert "i915: Enable ARB_fragment_shader by default." + +This reverts commit a58514cc9c5cc5867f9140700462c5ac5749550d. +--- + src/mesa/drivers/dri/intel/intel_screen.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c +index 0a542a7..8ae2cd2 100644 +--- a/src/mesa/drivers/dri/intel/intel_screen.c ++++ b/src/mesa/drivers/dri/intel/intel_screen.c +@@ -70,7 +70,7 @@ PUBLIC const char __driConfigOptions[] = + DRI_CONF_DESC(en, "Enable early Z in classic mode (unstable, 945-only).") + DRI_CONF_OPT_END + +- DRI_CONF_OPT_BEGIN(fragment_shader, bool, true) ++ DRI_CONF_OPT_BEGIN(fragment_shader, bool, false) + DRI_CONF_DESC(en, "Enable limited ARB_fragment_shader support on 915/945.") + DRI_CONF_OPT_END + +-- +1.7.2 + --- mesa-7.9+repack.orig/debian/patches/106_fix_renderbuffer_segfault.patch +++ mesa-7.9+repack/debian/patches/106_fix_renderbuffer_segfault.patch @@ -0,0 +1,16 @@ +diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c +index b0340ce..9b44801 100644 +--- a/src/mesa/drivers/dri/radeon/radeon_common_context.c ++++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c +@@ -731,10 +731,10 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable, + buffers[i].flags); + + if (bo == NULL) { +- + fprintf(stderr, "failed to attach %s %d\n", + regname, buffers[i].name); + ++ continue; + } + + ret = radeon_bo_get_tiling(bo, &tiling_flags, &pitch); --- mesa-7.9+repack.orig/debian/patches/05_hurd-ftbfs.diff +++ mesa-7.9+repack/debian/patches/05_hurd-ftbfs.diff @@ -0,0 +1,59 @@ +From: Samuel Thibault +Subject: Fix build on GNU/Hurd + +--- + configure.ac | 27 +++++++++++++++------------ + 1 file changed, 15 insertions(+), 12 deletions(-) + +Index: mesa/configure.ac +=================================================================== +--- mesa.orig/configure.ac ++++ mesa/configure.ac +@@ -585,6 +585,13 @@ + enable_xcb=no + fi + ++dnl Direct rendering or just indirect rendering ++AC_ARG_ENABLE([driglx-direct], ++ [AS_HELP_STRING([--disable-driglx-direct], ++ [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])], ++ [driglx_direct="$enableval"], ++ [driglx_direct="yes"]) ++ + dnl + dnl libGL configuration per driver + dnl +@@ -618,12 +625,14 @@ + AC_MSG_ERROR([Can't use static libraries for DRI drivers]) + fi + +- # Check for libdrm +- PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED]) +- PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) +- PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED]) +- GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED" +- DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" ++ if test x"$driglx_direct" = xyes; then ++ # Check for libdrm ++ PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED]) ++ PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) ++ PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED]) ++ GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED" ++ DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" ++ fi + + # find the DRI deps for libGL + if test "$x11_pkgconfig" = yes; then +@@ -697,12 +706,6 @@ + [DRI_DRIVER_SEARCH_DIR="$withval"], + [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}']) + AC_SUBST([DRI_DRIVER_SEARCH_DIR]) +-dnl Direct rendering or just indirect rendering +-AC_ARG_ENABLE([driglx-direct], +- [AS_HELP_STRING([--disable-driglx-direct], +- [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])], +- [driglx_direct="$enableval"], +- [driglx_direct="yes"]) + dnl Which drivers to build - default is chosen by platform + AC_ARG_WITH([dri-drivers], + [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@], --- mesa-7.9+repack.orig/debian/patches/103_savage-expose_fbmodes_with_nonzero_alpha.patch +++ mesa-7.9+repack/debian/patches/103_savage-expose_fbmodes_with_nonzero_alpha.patch @@ -0,0 +1,99 @@ +Index: mesa/src/mesa/drivers/dri/savage/savage_xmesa.c +=================================================================== +--- mesa.orig/src/mesa/drivers/dri/savage/savage_xmesa.c 2010-05-19 08:53:43.544920275 +1000 ++++ mesa/src/mesa/drivers/dri/savage/savage_xmesa.c 2010-05-19 10:59:49.573978367 +1000 +@@ -64,6 +64,8 @@ + + #include "xmlpool.h" + ++#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) ++ + /* Driver-specific options + */ + #define SAVAGE_ENABLE_VDMA(def) \ +@@ -893,32 +895,33 @@ + unsigned stencil_bits, GLboolean have_back_buffer ) + { + __DRIconfig **configs; ++ __DRIconfig **configs_a8r8g8b8; ++ __DRIconfig **configs_x8r8g8b8; + __GLcontextModes * m; + unsigned depth_buffer_factor; + unsigned back_buffer_factor; +- GLenum fb_format; +- GLenum fb_type; ++ uint8_t depth_bits_array[2]; ++ uint8_t stencil_bits_array[2]; ++ uint8_t msaa_samples_array[1]; + int i; + + /* Right now GLX_SWAP_COPY_OML isn't supported, but it would be easy + * enough to add support. Basically, if a context is created with an + * fbconfig where the swap method is GLX_SWAP_COPY_OML, pageflipping + * will never be used. +- * +- * FK: What about drivers that don't use page flipping? Could they +- * just expose GLX_SWAP_COPY_OML? + */ + static const GLenum back_buffer_modes[] = { + GLX_NONE, GLX_SWAP_UNDEFINED_OML /*, GLX_SWAP_COPY_OML */ + }; + +- uint8_t depth_bits_array[2]; +- uint8_t stencil_bits_array[2]; +- uint8_t msaa_samples_array[1]; +- ++ /* This being a DRI1 driver the depth buffer is always allocated, ++ * so it does not make sense to expose visuals without it. If this ++ * driver ever gets ported to DRI2 the first array value should be ++ * changed to 0 to expose modes without a depth buffer. ++ */ + depth_bits_array[0] = depth_bits; + depth_bits_array[1] = depth_bits; +- ++ + /* Just like with the accumulation buffer, always provide some modes + * with a stencil buffer. It will be a sw fallback, but some apps won't + * care about that. +@@ -932,19 +935,32 @@ + back_buffer_factor = (have_back_buffer) ? 2 : 1; + + if ( pixel_bits == 16 ) { +- fb_format = GL_RGB; +- fb_type = GL_UNSIGNED_SHORT_5_6_5; ++ configs = driCreateConfigs(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, ++ depth_bits_array, stencil_bits_array, ++ depth_buffer_factor, ++ back_buffer_modes, back_buffer_factor, ++ msaa_samples_array, 1, GL_TRUE); + } + else { +- fb_format = GL_BGR; +- fb_type = GL_UNSIGNED_INT_8_8_8_8_REV; ++ configs_a8r8g8b8 = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, ++ depth_bits_array, ++ stencil_bits_array, ++ depth_buffer_factor, ++ back_buffer_modes, ++ back_buffer_factor, ++ msaa_samples_array, 1, ++ GL_TRUE); ++ configs_x8r8g8b8 = driCreateConfigs(GL_BGR, GL_UNSIGNED_INT_8_8_8_8_REV, ++ depth_bits_array, ++ stencil_bits_array, ++ depth_buffer_factor, ++ back_buffer_modes, ++ back_buffer_factor, ++ msaa_samples_array, 1, ++ GL_TRUE); ++ configs = driConcatConfigs(configs_a8r8g8b8, configs_x8r8g8b8); + } + +- configs = driCreateConfigs(fb_format, fb_type, +- depth_bits_array, stencil_bits_array, +- depth_buffer_factor, +- back_buffer_modes, back_buffer_factor, +- msaa_samples_array, 1, GL_TRUE); + if (configs == NULL) { + fprintf( stderr, "[%s:%u] Error creating FBConfig!\n", + __func__, __LINE__ ); --- mesa-7.9+repack.orig/debian/patches/series +++ mesa-7.9+repack/debian/patches/series @@ -0,0 +1,13 @@ +02_use-ieee-fp-on-s390-and-m68k.patch +04_osmesa_version.diff +05_hurd-ftbfs.diff +06_kfreebsd-ftbfs.diff +08-kfreebsd-gallium.diff +100_no_abi_tag.patch +101_ubuntu_hidden_glname.patch +103_savage-expose_fbmodes_with_nonzero_alpha.patch +104_i915_fragment_shader_disable.patch +105_use_shared_libdricore.patch +106_fix_renderbuffer_segfault.patch +107_winsys_buffer_nullptr.patch +108-r300g-fixup-rs690-tiling-stride-align.patch --- mesa-7.9+repack.orig/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch +++ mesa-7.9+repack/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch @@ -0,0 +1,21 @@ +Patch that fixes Debian bug #349437. + +This patch by David Nusinow. + +--- + src/mesa/main/compiler.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/src/mesa/main/compiler.h ++++ b/src/mesa/main/compiler.h +@@ -353,8 +353,9 @@ static INLINE GLuint CPU_TO_LE32(GLuint + * USE_IEEE: Determine if we're using IEEE floating point + */ + #if defined(__i386__) || defined(__386__) || defined(__sparc__) || \ +- defined(__s390x__) || defined(__powerpc__) || \ ++ defined(__s390__) || defined(__s390x__) || defined(__powerpc__) || \ + defined(__x86_64__) || \ ++ defined(__m68k__) || \ + defined(ia64) || defined(__ia64__) || \ + defined(__hppa__) || defined(hpux) || \ + defined(__mips) || defined(_MIPS_ARCH) || \ --- mesa-7.9+repack.orig/debian/patches/101_ubuntu_hidden_glname.patch +++ mesa-7.9+repack/debian/patches/101_ubuntu_hidden_glname.patch @@ -0,0 +1,12 @@ +Index: mesa/src/mesa/x86/glapi_x86.S +=================================================================== +--- mesa.orig/src/mapi/glapi/glapi_x86.S 2009-06-29 14:43:07.000000000 +0300 ++++ mesa/src/mapi/glapi/glapi_x86.S 2009-06-29 14:45:38.000000000 +0300 +@@ -148,7 +148,6 @@ + + ALIGNTEXT16 + GLOBL GLNAME(gl_dispatch_functions_start) +- HIDDEN(GLNAME(gl_dispatch_functions_start)) + GLNAME(gl_dispatch_functions_start): + + GL_STUB(NewList, _gloffset_NewList, NewList@8) --- mesa-7.9+repack.orig/debian/patches/08-kfreebsd-gallium.diff +++ mesa-7.9+repack/debian/patches/08-kfreebsd-gallium.diff @@ -0,0 +1,26 @@ +Index: mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c +=================================================================== +--- mesa.orig/src/gallium/auxiliary/rtasm/rtasm_execmem.c ++++ mesa/src/gallium/auxiliary/rtasm/rtasm_execmem.c +@@ -37,7 +37,7 @@ + + #include "rtasm_execmem.h" + +-#if defined(PIPE_OS_BSD) ++#ifndef MAP_ANONYMOUS + #define MAP_ANONYMOUS MAP_ANON + #endif + +Index: mesa/src/gallium/include/pipe/p_config.h +=================================================================== +--- mesa.orig/src/gallium/include/pipe/p_config.h ++++ mesa/src/gallium/include/pipe/p_config.h +@@ -128,7 +128,7 @@ + #define PIPE_OS_UNIX + #endif + +-#if defined(__FreeBSD__) ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + #define PIPE_OS_FREEBSD + #define PIPE_OS_BSD + #define PIPE_OS_UNIX --- mesa-7.9+repack.orig/debian/patches/108-r300g-fixup-rs690-tiling-stride-align.patch +++ mesa-7.9+repack/debian/patches/108-r300g-fixup-rs690-tiling-stride-align.patch @@ -0,0 +1,156 @@ +From 32218e4cc88f7dedebadffe4a80247decf4498f1 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Fri, 10 Dec 2010 15:40:48 +1000 +Subject: [PATCH] r300g: fixup rs690 tiling stride alignment calculations. + +The RS690 memory controller prefers things to be on a different +boundary than the discrete GPUs, we had an attempt to fix this, +but it still failed, this consolidates the stride calculation +into one place and removes the really special case check. + +This fixes gnome-shell and 16 piglit tests on my rs690 system. + +NOTE: This is a candidate for both the 7.9 and 7.10 branches. + +Signed-off-by: Dave Airlie +(cherry picked from commit d19b5cbd317620f3977e68fffb7a74793436b7e2) +--- + src/gallium/drivers/r300/r300_texture.c | 2 +- + src/gallium/drivers/r300/r300_texture_desc.c | 46 +++++++++---------------- + src/gallium/drivers/r300/r300_texture_desc.h | 2 +- + 3 files changed, 19 insertions(+), 31 deletions(-) + +diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c +index 70fc5d9..6d86bc2 100644 +--- a/src/gallium/drivers/r300/r300_texture.c ++++ b/src/gallium/drivers/r300/r300_texture.c +@@ -899,7 +899,7 @@ struct pipe_surface* r300_create_surface(struct pipe_context * ctx, + tex->desc.b.b.nr_samples, + tex->desc.microtile, + tex->desc.macrotile[level], +- DIM_HEIGHT); ++ DIM_HEIGHT, 0); + + surface->cbzb_height = align((surface->base.height + 1) / 2, + tile_height); +diff --git a/src/gallium/drivers/r300/r300_texture_desc.c b/src/gallium/drivers/r300/r300_texture_desc.c +index aa82c47..7b17391 100644 +--- a/src/gallium/drivers/r300/r300_texture_desc.c ++++ b/src/gallium/drivers/r300/r300_texture_desc.c +@@ -34,7 +34,7 @@ unsigned r300_get_pixel_alignment(enum pipe_format format, + unsigned num_samples, + enum r300_buffer_tiling microtile, + enum r300_buffer_tiling macrotile, +- enum r300_dim dim) ++ enum r300_dim dim, boolean is_rs690) + { + static const unsigned table[2][5][3][2] = + { +@@ -57,6 +57,7 @@ unsigned r300_get_pixel_alignment(enum pipe_format format, + {{ 16, 8}, { 0, 0}, { 0, 0}} /* 128 bits per pixel */ + } + }; ++ + static const unsigned aa_block[2] = {4, 8}; + unsigned tile = 0; + unsigned pixsize = util_format_get_blocksize(format); +@@ -74,6 +75,14 @@ unsigned r300_get_pixel_alignment(enum pipe_format format, + } else { + /* Standard alignment. */ + tile = table[macrotile][util_logbase2(pixsize)][microtile][dim]; ++ if (macrotile == 0 && is_rs690 && dim == DIM_WIDTH) { ++ int align; ++ int h_tile; ++ h_tile = table[macrotile][util_logbase2(pixsize)][microtile][DIM_HEIGHT]; ++ align = 64 / (pixsize * h_tile); ++ if (tile < align) ++ tile = align; ++ } + } + + assert(tile); +@@ -89,7 +98,7 @@ static boolean r300_texture_macro_switch(struct r300_texture_desc *desc, + unsigned tile, texdim; + + tile = r300_get_pixel_alignment(desc->b.b.format, desc->b.b.nr_samples, +- desc->microtile, R300_BUFFER_TILED, dim); ++ desc->microtile, R300_BUFFER_TILED, dim, 0); + if (dim == DIM_WIDTH) { + texdim = u_minify(desc->width0, level); + } else { +@@ -113,6 +122,9 @@ static unsigned r300_texture_get_stride(struct r300_screen *screen, + unsigned level) + { + unsigned tile_width, width, stride; ++ boolean is_rs690 = (screen->caps.family == CHIP_FAMILY_RS600 || ++ screen->caps.family == CHIP_FAMILY_RS690 || ++ screen->caps.family == CHIP_FAMILY_RS740); + + if (desc->stride_in_bytes_override) + return desc->stride_in_bytes_override; +@@ -131,38 +143,14 @@ static unsigned r300_texture_get_stride(struct r300_screen *screen, + desc->b.b.nr_samples, + desc->microtile, + desc->macrotile[level], +- DIM_WIDTH); ++ DIM_WIDTH, is_rs690); + width = align(width, tile_width); + + stride = util_format_get_stride(desc->b.b.format, width); +- +- /* Some IGPs need a minimum stride of 64 bytes, hmm... */ +- if (!desc->macrotile[level] && +- (screen->caps.family == CHIP_FAMILY_RS600 || +- screen->caps.family == CHIP_FAMILY_RS690 || +- screen->caps.family == CHIP_FAMILY_RS740)) { +- unsigned min_stride; +- +- if (desc->microtile) { +- unsigned tile_height = +- r300_get_pixel_alignment(desc->b.b.format, +- desc->b.b.nr_samples, +- desc->microtile, +- desc->macrotile[level], +- DIM_HEIGHT); +- +- min_stride = 64 / tile_height; +- } else { +- min_stride = 64; +- } +- +- return stride < min_stride ? min_stride : stride; +- } +- + /* The alignment to 32 bytes is sort of implied by the layout... */ + return stride; + } else { +- return align(util_format_get_stride(desc->b.b.format, width), 32); ++ return align(util_format_get_stride(desc->b.b.format, width), is_rs690 ? 64 : 32); + } + } + +@@ -179,7 +167,7 @@ static unsigned r300_texture_get_nblocksy(struct r300_texture_desc *desc, + desc->b.b.nr_samples, + desc->microtile, + desc->macrotile[level], +- DIM_HEIGHT); ++ DIM_HEIGHT, 0); + height = align(height, tile_height); + + /* This is needed for the kernel checker, unfortunately. */ +diff --git a/src/gallium/drivers/r300/r300_texture_desc.h b/src/gallium/drivers/r300/r300_texture_desc.h +index 44d8879..121d215 100644 +--- a/src/gallium/drivers/r300/r300_texture_desc.h ++++ b/src/gallium/drivers/r300/r300_texture_desc.h +@@ -41,7 +41,7 @@ unsigned r300_get_pixel_alignment(enum pipe_format format, + unsigned num_samples, + enum r300_buffer_tiling microtile, + enum r300_buffer_tiling macrotile, +- enum r300_dim dim); ++ enum r300_dim dim, boolean is_rs690); + + boolean r300_texture_desc_init(struct r300_screen *rscreen, + struct r300_texture_desc *desc, +-- +1.7.2.3 + --- mesa-7.9+repack.orig/debian/patches/06_kfreebsd-ftbfs.diff +++ mesa-7.9+repack/debian/patches/06_kfreebsd-ftbfs.diff @@ -0,0 +1,23 @@ +From: Aurelien Jarno + +mesa fails to build on GNU/kFreeBSD, since some parts are not enabled. + +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524690 + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: mesa/configure.ac +=================================================================== +--- mesa.orig/configure.ac ++++ mesa/configure.ac +@@ -777,7 +777,7 @@ + ;; + esac + ;; +- freebsd* | dragonfly*) ++ freebsd* | dragonfly* | kfreebsd*-gnu*) + DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1" + DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" + DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" --- mesa-7.9+repack.orig/debian/patches/04_osmesa_version.diff +++ mesa-7.9+repack/debian/patches/04_osmesa_version.diff @@ -0,0 +1,17 @@ +--- + src/mesa/drivers/osmesa/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: mesa/src/mesa/drivers/osmesa/Makefile +=================================================================== +--- mesa.orig/src/mesa/drivers/osmesa/Makefile ++++ mesa/src/mesa/drivers/osmesa/Makefile +@@ -37,7 +37,7 @@ + # -DCHAN_BITS=16/32. + $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OBJECTS) $(CORE_MESA) + $(MKLIB) -o $(OSMESA_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \ +- -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \ ++ -major 6 -minor 5 -patch 3 \ + -install $(TOP)/$(LIB_DIR) -cplusplus $(MKLIB_OPTIONS) \ + -id $(INSTALL_LIB_DIR)/lib$(OSMESA_LIB).$(MESA_MAJOR).dylib \ + $(OSMESA_LIB_DEPS) $(OBJECTS) $(CORE_MESA) --- mesa-7.9+repack.orig/src/SConscript +++ mesa-7.9+repack/src/SConscript @@ -0,0 +1,19 @@ +Import('*') + +if 'egl' in env['statetrackers']: + SConscript('mapi/vgapi/SConscript') + SConscript('egl/main/SConscript') + +if 'mesa' in env['statetrackers']: + if platform == 'windows': + SConscript('talloc/SConscript') + + SConscript('glsl/SConscript') + SConscript('mapi/glapi/SConscript') + SConscript('mesa/SConscript') + + if platform != 'embedded': + SConscript('glut/glx/SConscript') + +SConscript('gallium/SConscript') + --- mesa-7.9+repack.orig/src/egl/main/SConscript +++ mesa-7.9+repack/src/egl/main/SConscript @@ -0,0 +1,51 @@ +####################################################################### +# SConscript for EGL + + +Import('*') + +if env['platform'] != 'winddk': + + env = env.Clone() + + env.Append(CPPDEFINES = [ + '_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WINDOWS', + '_EGL_DRIVER_SEARCH_DIR=\\"\\"', + '_EGL_OS_WINDOWS', + '_EGL_GET_CORE_ADDRESSES', + 'KHRONOS_DLL_EXPORTS', + ]) + + env.Append(CPPPATH = [ + '#/include', + ]) + + egl_sources = [ + 'eglapi.c', + 'eglarray.c', + 'eglconfig.c', + 'eglcontext.c', + 'eglcurrent.c', + 'egldisplay.c', + 'egldriver.c', + 'eglglobals.c', + 'eglimage.c', + 'egllog.c', + 'eglmisc.c', + 'eglmode.c', + 'eglscreen.c', + 'eglstring.c', + 'eglsurface.c', + 'eglsync.c', + ] + + egl = env.SharedLibrary( + target = 'libEGL', + source = egl_sources + ['egl.def'], + ) + + env.InstallSharedLibrary(egl, version=(1, 4, 0)) + + egl = [env.FindIxes(egl, 'LIBPREFIX', 'LIBSUFFIX')] + + Export('egl') --- mesa-7.9+repack.orig/src/egl/main/README.txt +++ mesa-7.9+repack/src/egl/main/README.txt @@ -0,0 +1,71 @@ + + +Notes about the EGL library: + + +The EGL code here basically consists of two things: + +1. An EGL API dispatcher. This directly routes all the eglFooBar() API + calls into driver-specific functions. + +2. Fallbacks for EGL API functions. A driver _could_ implement all the + EGL API calls from scratch. But in many cases, the fallbacks provided + in libEGL (such as eglChooseConfig()) will do the job. + + + +Bootstrapping: + +When the apps calls eglOpenDisplay() a device driver is selected and loaded +(look for dlsym() or LoadLibrary() in egldriver.c). + +The driver's _eglMain() function is then called. This driver function +allocates, initializes and returns a new _EGLDriver object (usually a +subclass of that type). + +As part of initialization, the dispatch table in _EGLDriver->API must be +populated with all the EGL entrypoints. Typically, _eglInitDriverFallbacks() +can be used to plug in default/fallback functions. Some functions like +driver->API.Initialize and driver->API.Terminate _must_ be implemented +with driver-specific code (no default/fallback function is possible). + + +A bit later, the app will call eglInitialize(). This will get routed +to the driver->API.Initialize() function. Any additional driver +initialization that wasn't done in _eglMain() should be done at this +point. Typically, this will involve setting up visual configs, etc. + + + +Special Functions: + +Certain EGL functions _must_ be implemented by the driver. This includes: + +eglCreateContext +eglCreateWindowSurface +eglCreatePixmapSurface +eglCreatePBufferSurface +eglMakeCurrent +eglSwapBuffers + +Most of the EGLConfig-related functions can be implemented with the +defaults/fallbacks. Same thing for the eglGet/Query functions. + + + + +Teardown: + +When eglTerminate() is called, the driver->API.Terminate() function is +called. The driver should clean up after itself. eglTerminate() will +then close/unload the driver (shared library). + + + + +Subclassing: + +The internal libEGL data structures such as _EGLDisplay, _EGLContext, +_EGLSurface, etc should be considered base classes from which drivers +will derive subclasses. + --- mesa-7.9+repack.orig/src/egl/docs/EGL_MESA_screen_surface +++ mesa-7.9+repack/src/egl/docs/EGL_MESA_screen_surface @@ -0,0 +1,564 @@ +Name + + MESA_screen_surface + +Name Strings + + EGL_MESA_screen_surface + +Contact + + Brian Paul + + To discuss, join the dri-egl@lists.freedesktop.org list. + +Status + + Obsolete. + +Version + + 11 (27 January 2006) + +Number + + TBD + +Dependencies + + EGL 1.0 or later. + +Overview + + EGL 1.1 supports three types of drawing surfaces: + * Window surfaces + * Pixmap surfaces + * Pbuffer surfaces + This extension defines a fourth type of drawing surface: + * Screen surface + + A screen surface is a surface for which the (front) color buffer can + be directly displayed (i.e. scanned out) on a monitor (such as a flat + panel or CRT). In particular the color buffer memory will be allocated + at a location in VRAM (and in a suitable format) which can be displayed + by the graphics hardware. + + Note that the width and height of the screen surface need not exactly + match the monitor's current resolution. For example, while the monitor + may be configured to to show 1024x768 pixels, the associated screen + surface may be larger, such as 1200x1000. The "screen origin" attribute + will specify which region of the screen surface which is visible on the + monitor. The screen surface can be scrolled by changing this origin. + + This extension also defines functions for controlling the monitor's + display mode (width, height, refresh rate, etc), and specifing which + screen surface is to be displayed on a monitor. + + The new EGLModeMESA type and related functions are very similar to the + EGLConfig type and related functions. The user may get a list of + supported modes for a screen and specify the mode to be used when + displaying a screen surface. + + +Issues + + 1. Should EGL_INTERLACE be a supported mode attribute? + + Arguments against: + + No, this should be provided by another extension which would + also provide the mechanisms needed to play back interlaced video + material correctly on hardware that supports it. + This extension should prefer non-interlaced modes. [M. Danzer] + + Arguments for: + + An interlaced display can be of use without considering video + material. Being able to query whether a screen is operating in + interlaced mode can be used by applications to control their + drawing. For example: avoid drawing 1-pixel-wide horizontal lines + if screen is interlaced. [B. Paul] + + Resolution: Defer for future extension? + + + 2. Should EGL_REFRESH_RATE be a supported mode attribute? + + Arguments for: + + Yes, it's been shown that applications and/or users need to select + modes by this. [M. Danzer] + + Many examples have been given in which it's desirable to let the + user choose from a variety of refresh rates without having to + restart/reconfigure. [B. Paul] + + Arguments against: + + TBD. + + Resolution: Yes. + + + 3. Exactly how should the list of modes returned by eglChooseConfigMESA + be sorted? + + Current method is described in the text below. Subject to change. + + Alternately, leave the sorting order undefined so that each + implementation can return the modes in order of "most desirable" + to "least desirable" which may depend on the display technology + (CRT vs LCD, etc) or other factors. + + + 4. How should screen blanking be supported? Note that a screen can be + disabled or turned off by calling eglShowSurface(dpy, scrn, + EGL_NO_SURFACE, EGL_NO_MODE_MESA). But what about power-save mode? + + I would defer this to other extensions that depend on this one. + I can imagine people wanting different semantics not just in + relation to the power management API being exposed (DPMS or whatever) + but also relating to what events can trigger EGL_CONTEXT_LOST. Also + I'm not sure whether power management commands are properly operations + on the Display or on a screen surface. [A. Jackson] + + + 5. Should the EGL_PHYSICAL_SIZE_EGL query be kept? The size information + isn't always reliable (consider video projectors) but can still be + used to determine the pixel aspect ratio. + + Resolution: Omit. The EGL 1.2 specification includes queries for + the display resolution and pixel aspect ratio. + + + 6. Should detailed mode timing information be exposed by this API? + + Probably not. Instead, offer that information in a layered extension. + + + 7. How should the notion of a screen's "native" mode be expressed? + For example, LCD panels have a native resolution and refresh rate + that looks best but other sub-optimal resolutions may be supported. + + The mode attribute EGL_OPTIMAL_MESA will be set for modes which + best match the screen. [M. Danzer] + + + 8. Should eglQueryModeStringMESA() be included? This function returns + a human-readable string which corresponds to an EGLMode. + + Arguments for: + + A mode name such as "HDTV-720P" might mean more to users than + "1280x720@60Hz" if the later were generated via code. + + Arguments against: + + There's no standard syntax for the strings. May cause more + trouble than it's worth. + + Postpone for future extension. [A. Jackson] + + Latest discussion leaning toward omitting this function. + + + 9. Should we use "Get" or "Query" for functions which return state? + The EGL 1.x specification doesn't seem to be totally consistent + in this regard, but "Query" is used more often. + + Use "Get" for mode-related queries (as for EGLConfigs) but "Query" + for everything else. + + + 10. What should be the default size for screen surfaces? + + For Pbuffer surfaces the default width and height are zero. + We'll do the same for screen surfaces. Since there's no function + to resize surfaces it's useless to have a 0x0 screen, but this isn't + a situation that'll normally be encountered. + + + 11. Should there be a function for resizing a screen surface? + + Suppose one wants to change the screen's size in the EGL application. + Also suppose there's a hardware restriction such that only one screen + surface can exist at a time (either for lack of memory or because of + memory layout restrictions). + + The basic idea is that the currently displayed screen surface must + be deallocated before a new one can be created. Perhaps a resize + function would work better? + + + 12. How should sub-pixel LCD color information be made available? + What about the display's gamma value? + + Perhaps expose as additional read-only mode attributes. + + Perhaps postpone for a layered extension. + + + 13. What happens if the user attempts to delete a screen surface that + is currently being shown? + + Spec currently says that's illegal and that an error (TBD) will be + generated. + + + 14. What if the physical screen size can't be determined? Should + a query of EGL_PHYSICAL_SIZE_MESA return [0,0]? + + Obsolete: EGL_PHYSICAL_SIZE_MESA not used. + + + 15. Suppose the device's number of RAMDACs is different from the + number of output ports. For example, a graphics card with + two RAMDACs but three ports (VGA, DVI, TV). + + Address this in a follow-on extension. [Matthias Hopf] + + + 16. How should we deal with on-the-fly device changes? For example, + the monitor being unplugged and replaced by another with different + characteristics? + + A HAL event could be received via DBUS in the application [J. Smirl, + A. Jackson]. + + Should there be an EGL mechanism for detecting this? Maybe an + EGL_SCREEN_LOST error (similar to EGL_CONTEXT_LOST) can be recorded + when there's a screen change. At least then the application can + poll to detect this situation. + + Maybe leave that to a future extension. + + See also the EGL_SCREEN_COUNT_MESA query. + + + 17. What if pixel-accurate panning is not supported (see + eglScreenPositionMESA)? [M. Danzer] + + Is this a common problem? Can we ignore it for now? + + + 18. Should eglShowSurfaceMESA be renamed to eglShowScreenSurfaceMESA? + + Probably. + + + +New Procedures and Functions + + EGLBoolean eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, + const EGLint *attrib_list, + EGLModeMESA *modes, EGLint modes_size, + EGLint *num_modes) + + EGLBoolean eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLModeMESA *modes, EGLint modes_size, + EGLint *num_modes) + + EGLBoolean eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, + EGLint attrib, EGLint *value) + + + EGLBoolean eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, + EGLint screens_size, EGLint *num_screens) + + EGLSurface eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, + const EGLint *attrib_list) + + EGLBoolean eglShowSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLSurface surface, EGLModeMESA mode) + + EGLBoolean eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLint x, EGLint y) + + + EGLBoolean eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLint attrib, EGLint *value); + + EGLBoolean eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLSurface *surface) + + EGLBoolean eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLModeMESA *mode) + + const char *eglQueryModeStringMESA(EGLDisplay dpy, EGLMode mode); + + +New Types + + EGLModeMESA + EGLScreenMESA + +New Tokens + + New error codes: + + EGL_BAD_SCREEN_MESA + EGL_BAD_MODE_MESA + + Screen-related tokens: + + EGL_SCREEN_COUNT_MESA + EGL_SCREEN_POSITION_MESA + EGL_SCREEN_BIT_MESA + EGL_SCREEN_POSITION_GRANULARITY_MESA + + Mode-related tokens: + + EGL_MODE_ID_MESA + EGL_REFRESH_RATE_MESA + EGL_INTERLACED_MESA + EGL_OPTIMAL_MESA + EGL_NO_MODE_MESA + + +Additions to Chapter X of the EGL 1.1 Specification + + [XXX this all has to be rewritten to fit into the EGL specification + and match the conventions of an EGL extension. For now, just list + all the functions with brief descriptions.] + + + EGLBoolean eglChooseModeMESA(EGLDisplay dpy, const EGLScreenMESA screen, + EGLint *attrib_list, EGLModeMESA *modes, + EGLint modes_size, EGLint *num_modes) + + Like eglChooseConfig, returns a list of EGLModes which match the given + attribute list. This does not set the screen's current display mode. + The attribute list is a list of token/value pairs terminated with + EGL_NONE. Supported attributes include: + + Name Description + --------------------- --------------------------------------------- + EGL_WIDTH Mode width (resolution) + EGL_HEIGHT Mode height (resolution) + EGL_REFRESH_RATE_MESA The mode's refresh rate, multiplied by 1000 + EGL_INTERLACED_MESA 1 indicates an interlaced mode, 0 otherwise + EGL_OPTIMAL_MESA Set if the most is especially optimal for the + screen (ex. for particular LCD resolutions) + + Any other token will generate the error EGL_BAD_ATTRIBUTE. + + The list of modes returned by eglChooseModeMESA will be sorted + according to the following criteria. See the discussion of table 3.3 + in the EGL specification for more information. + + Selection Sort Sort + Attribute Default Criteria Order Priority + -------------------- -------------- ----------- ------ -------- + EGL_OPTIMAL_MESA EGL_DONT_CARE Exact 1,0 1 + EGL_INTERLACED_MESA EGL_DONT_CARE Exact 0,1 2 + EGL_REFRESH_RATE EGL_DONT_CARE AtLeast Larger 3 + EGL_WIDTH EGL_DONT_CARE AtLeast Larger 4 + EGL_HEIGHT EGL_DONT_CARE AtLeast Larger 5 + EGL_MODE_ID_MESA EGL_DONT_CARE Exact Smaller 6 + + + EGLBoolean eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLModeMESA *modes, EGLint modes_size, + EGLint *num_modes) + + Like eglGetConfigs, returns a list of all modes supported by the + given screen. The returned modes will be sorted in the same manner + as for eglChooseModeMESA(). + + + + EGLBoolean eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, + EGLint attrib, EGLint *value) + + Used to query mode attributes. The following attributes are supported: + + Name Return value description + --------------------- ---------------------------------------------- + EGL_OPTIMAL_MESA 1 indicates an optimal mode, 0 otherwise + EGL_INTERLACED_MESA 1 indicates an interlaced mode, 0 otherwise + EGL_REFRESH_RATE_MESA The mode's refresh rate, multiplied by 1000 + EGL_WIDTH Mode width (resolution) + EGL_HEIGHT Mode height (resolution) + EGL_MODE_ID_MESA A unique small integer identifier for the mode + + Any other token will generate the error EGL_BAD_ATTRIBUTE. + + + + EGLBoolean eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, + EGLint screens_size, EGLint *num_screens) + + This function returns an array of all available screen handles. + is the maximum number of screens to return in the + array. will return the number of screen handles + placed in the array, even if is NULL. + + The number of screens and the availability of each may change over + time (hot-plugging). Screen handles will not be reused. When a + screen handle becomes invalid, function calls which reference an + invalid handle will generate EGL_BAD_SCREEN_MESA. + + The first screen handle returned will be considered to be the primary + one. + + + + EGLSurface eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, + const EGLint *attrib_list) + + Create a surface that can be displayed on a screen. is + an array of token/value pairs terminated with EGL_NONE. Valid tokens + include: + + Name Description + ---------------- -------------------------------- + EGL_WIDTH desired surface width in pixels + EGL_HEIGHT desired surface height in pixels + + Any other token will generate the error EGL_BAD_ATTRIBUTE. + The default width and height are zero. + + + + EGLBoolean eglShowSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLSurface surface, EGLModeMESA mode) + + This function causes a screen to show the given surface (or more + precisely, the surface's front color buffer) with the given mode. + + If the surface is in any way incompatible with the mode, the error + EGL_BAD_MATCH will be generated, EGL_FALSE will be returned, and the + previous screen state will remain in effect. This might occur when + the bandwidth of the video-out subsystem is exceeded, or if the mode + specifies a width or height that's greater than the width or height + of the surface. + + To disable a screen, the values EGL_NO_SURFACE and EGL_NO_MODE_MESA + be passed as the and parameters. + + The values of EGL_SCREEN_POSITION_MESA are clamped to the new valid + range computed from the screen size and surface size. If the new + surface is EGL_NO_SURFACE, EGL_SCREEN_POSITION_MESA is set to [0, 0]. + + + Attempting to delete a screen surface which is currently being + displayed will result in the error EGL_BAD_ACCESS being generated. + + + + EGLBoolean eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLint x, EGLint y) + + Specifies the origin of the screen's view into the surface, if the + surface is larger than the screen. Valid values for x and y are + [0, surfaceWidth - screenWidth] and [0, surfaceHeight - screenHeight], + respectively. + + The x and y values are also constrained to be integer multiples of the + EGL_SCREEN_POSITION_GRANULARITY_MESA values. + + + + + EGLBoolean eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLint attrib, EGLint *value); + + Used to query screen attributes. may be one of the following: + + Name Return value description + ------------------------ --------------------------------------------- + EGL_SCREEN_POSITION_MESA x, y position of the screen's origin with + respect to the surface. If no surface is + attached to the screen, [0, 0] is returned. + EGL_SCREEN_POSITION_GRANULARITY_MESA + Returns the granularity, in pixels, for + which the screen position is constrained. + + Any other token will generate the error EGL_BAD_ATTRIBUTE. + + + + + EGLBoolean eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLSurface *surface) + + Returns the surface currently displayed on the given screen. + may be EGL_NO_SURFACE if the screen isn't currently showing any surface. + + + + + EGLBoolean eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, + EGLModeMESA *mode) + + Returns the given screen's current display mode. The mode may be + EGL_NO_MODE_MESA if the screen is currently disabled. + + + + const char *eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode); + + Returns a human-readable string for the given mode. The string is a + zero-terminated C string which the user should not attempt to free. + There is no standard syntax for mode strings. Applications should + not directly rely on mode strings. + + + +Version History + + 1. 15 March 2005 - BrianP + Initial version + + 2. 16 March 2005 - BrianP + Removed EGL_DEPTH_MESA + Added EGL_PHYSICAL_WIDTH_MESA, EGL_PHYSICAL_HEIGHT_MESA queries + Added EGL_OPTIMAL_MESA for width/height/refresh rate selection + Added possible eglQueryModeStringMESA() function + More details of the new functions explained. + + 3. 18 March 2005 - BrianP + Added screen_number to eglChooseModeMESA(). + Fix off by one mistake in value range for ORIGIN attributes + Added Issues section + + 4. 21 March 2005 - BrianP + Removed eglScreenAttribsMESA(). + Added eglScreenPositionMESA() to set screen origin. + Replaced EGL_SCREEN_X/Y_OFFSET_MESA with EGL_SCREEN_POSITION_MESA. + Replaced EGL_PHYSICAL_WIDTH/HEIGHT_MESA with EGL_PHYSICAL_SIZE_MESA. + Use EGL_OPTIMAL_MESA as a new mode attribute. (Michel Danzer) + Added a few more issues. + + 5. 6 April 2005 - BrianP + More language for eglGetModeStringMESA(). + Added issues 10, 11, 12, 13, 14. + Updated issue 3 discussion about mode sorting. + + 6. 22 April 2005 - BrianP + Fixed "LDC" typo. + Added issues 15, 16. + Changed dependency on EGL 1.1 to EGL 1.0 + s/EGL_NUM_SCREENS_MESA/EGL_SCREEN_COUNT_MESA/ + Added eglQueryDisplayMESA() to New Functions section. + Clarified language for the EGL_SCREEN_COUNT_MESA query. + + 7. 29 April 2005 - BrianP + Added EGLScreenMESA type and eglGetScreensMESA() function. [J. Smirl]. + Replaced EGLint screen_number parameters with EGLScreenMESA screen. + Added issue 17 (pixel-accurate panning) + + 8. 2 May 2005 - BrianP + Removed eglQueryDisplayMESA. + Fixed a few more EGLint -> EGLScreenMESA changes. + + 9. 20 May 2005 - BrianP + Fixed a few typos. + Updated some open issues text. + + 10. 10 August 2005 - BrianP + Added EGL_SCREEN_POSITION_GRANULARITY_MESA. + + 11. 27 January 2006 - BrianP + EGL_PHYSICAL_SIZE_MESA removed since EGL 1.2 has a similar feature. + --- mesa-7.9+repack.orig/src/gallium/README.portability +++ mesa-7.9+repack/src/gallium/README.portability @@ -0,0 +1,109 @@ + CROSS-PLATFORM PORTABILITY GUIDELINES FOR GALLIUM3D + + += General Considerations = + +The state tracker and winsys driver support a rather limited number of +platforms. However, the pipe drivers are meant to run in a wide number of +platforms. Hence the pipe drivers, the auxiliary modules, and all public +headers in general, should strictly follow these guidelines to ensure + + += Compiler Support = + +* Include the p_compiler.h. + +* Don't use the 'inline' keyword, use the INLINE macro in p_compiler.h instead. + +* Cast explicitly when converting to integer types of smaller sizes. + +* Cast explicitly when converting between float, double and integral types. + +* Don't use named struct initializers. + +* Don't use variable number of macro arguments. Use static inline functions +instead. + +* Don't use C99 features. + += Standard Library = + +* Avoid including standard library headers. Most standard library functions are +not available in Windows Kernel Mode. Use the appropriate p_*.h include. + +== Memory Allocation == + +* Use MALLOC, CALLOC, FREE instead of the malloc, calloc, free functions. + +* Use align_pointer() function defined in u_memory.h for aligning pointers + in a portable way. + +== Debugging == + +* Use the functions/macros in p_debug.h. + +* Don't include assert.h, call abort, printf, etc. + + += Code Style = + +== Inherantice in C == + +The main thing we do is mimic inheritance by structure containment. + +Here's a silly made-up example: + +/* base class */ +struct buffer +{ + int size; + void (*validate)(struct buffer *buf); +}; + +/* sub-class of bufffer */ +struct texture_buffer +{ + struct buffer base; /* the base class, MUST COME FIRST! */ + int format; + int width, height; +}; + + +Then, we'll typically have cast-wrapper functions to convert base-class +pointers to sub-class pointers where needed: + +static inline struct vertex_buffer *vertex_buffer(struct buffer *buf) +{ + return (struct vertex_buffer *) buf; +} + + +To create/init a sub-classed object: + +struct buffer *create_texture_buffer(int w, int h, int format) +{ + struct texture_buffer *t = malloc(sizeof(*t)); + t->format = format; + t->width = w; + t->height = h; + t->base.size = w * h; + t->base.validate = tex_validate; + return &t->base; +} + +Example sub-class method: + +void tex_validate(struct buffer *buf) +{ + struct texture_buffer *tb = texture_buffer(buf); + assert(tb->format); + assert(tb->width); + assert(tb->height); +} + + +Note that we typically do not use typedefs to make "class names"; we use +'struct whatever' everywhere. + +Gallium's pipe_context and the subclassed psb_context, etc are prime examples +of this. There's also many examples in Mesa and the Mesa state tracker. --- mesa-7.9+repack.orig/src/gallium/targets/Makefile.xorg +++ mesa-7.9+repack/src/gallium/targets/Makefile.xorg @@ -29,7 +29,7 @@ LIBNAME_STAGING = $(TOP)/$(LIB_DIR)/gallium/$(TARGET) ifeq ($(MESA_LLVM),1) -LD = g++ +LD = $(CXX) LDFLAGS += $(LLVM_LDFLAGS) USE_CXX=1 DRIVER_PIPES += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a @@ -42,7 +42,7 @@ default: depend $(TOP)/$(LIB_DIR)/gallium $(LIBNAME) $(LIBNAME_STAGING) $(LIBNAME): $(OBJECTS) Makefile ../Makefile.xorg $(LIBS) $(DRIVER_PIPES) - $(MKLIB) -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS) + $(MKLIB) -linker $(CC) -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS) depend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES) rm -f depend --- mesa-7.9+repack.orig/src/gallium/targets/egl/pipe_i965.c +++ mesa-7.9+repack/src/gallium/targets/egl/pipe_i965.c @@ -1,6 +1,7 @@ #include "target-helpers/inline_wrapper_sw_helper.h" #include "target-helpers/inline_debug_helper.h" +#include "target-helpers/inline_wrapper_sw_helper.h" #include "state_tracker/drm_driver.h" #include "i965/drm/i965_drm_public.h" #include "i965/brw_public.h" --- mesa-7.9+repack.orig/src/gallium/targets/egl/Makefile +++ mesa-7.9+repack/src/gallium/targets/egl/Makefile @@ -24,7 +24,9 @@ -I$(TOP)/src/gallium/auxiliary \ -I$(TOP)/src/gallium/drivers \ -I$(TOP)/src/gallium/include \ - -I$(TOP)/src/gallium/winsys + -I$(TOP)/src/gallium/winsys \ + $(LIBDRM_CFLAGS) + common_SYS := common_LIBS := \ $(TOP)/src/gallium/drivers/identity/libidentity.a \ @@ -41,11 +43,11 @@ egl_LIBS := $(TOP)/src/gallium/state_trackers/egl/libegl.a ifneq ($(findstring x11, $(EGL_PLATFORMS)),) -egl_SYS += -lX11 -lXext -lXfixes +egl_SYS += -lX11 -lXext -lXfixes $(LIBDRM_LIB) egl_LIBS += $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a endif -ifneq ($(findstring kms, $(EGL_PLATFORMS)),) -egl_SYS += -ldrm +ifneq ($(findstring drm, $(EGL_PLATFORMS)),) +egl_SYS += $(LIBDRM_LIB) endif ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),) egl_LIBS += $(TOP)/src/gallium/winsys/sw/fbdev/libfbdev.a --- mesa-7.9+repack.orig/src/gallium/targets/xorg-vmwgfx/vmw_video.c +++ mesa-7.9+repack/src/gallium/targets/xorg-vmwgfx/vmw_video.c @@ -300,7 +300,7 @@ numAdaptors = 1; overlayAdaptors = &newAdaptor; } else { - newAdaptors = xalloc((numAdaptors + 1) * + newAdaptors = malloc((numAdaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); if (!newAdaptors) { xf86XVFreeVideoAdaptorRec(newAdaptor); @@ -320,7 +320,7 @@ } if (newAdaptors) { - xfree(newAdaptors); + free(newAdaptors); } debug_printf("Initialized VMware Xv extension successfully\n"); @@ -438,7 +438,7 @@ return NULL; } - video = xcalloc(1, sizeof(*video)); + video = calloc(1, sizeof(*video)); if (!video) { debug_printf("Not enough memory.\n"); xf86XVFreeVideoAdaptorRec(adaptor); @@ -742,7 +742,7 @@ } out->size = size; - out->extra_data = xcalloc(1, size); + out->extra_data = calloc(1, size); debug_printf("\t\t%s: allocated buffer %p of size %i\n", __func__, out, size); @@ -773,7 +773,7 @@ if (out->size == 0) return Success; - xfree(out->extra_data); + free(out->extra_data); vmw_ioctl_buffer_unmap(vmw, out->buf); vmw_ioctl_buffer_destroy(vmw, out->buf); --- mesa-7.9+repack.orig/src/gallium/targets/xorg-vmwgfx/vmw_screen.c +++ mesa-7.9+repack/src/gallium/targets/xorg-vmwgfx/vmw_screen.c @@ -245,6 +245,7 @@ cust->winsys_enter_vt = vmw_screen_enter_vt; cust->winsys_leave_vt = vmw_screen_leave_vt; cust->no_3d = TRUE; + cust->unhidden_hw_cursor_update = TRUE; vmw->pScrn = pScrn; pScrn->driverPrivate = cust; --- mesa-7.9+repack.orig/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c +++ mesa-7.9+repack/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c @@ -165,7 +165,7 @@ struct drm_vmw_dmabuf_rep *rep = &arg.rep; int ret; - buf = xcalloc(1, sizeof(*buf)); + buf = calloc(1, sizeof(*buf)); if (!buf) goto err; @@ -192,7 +192,7 @@ return buf; err_free: - xfree(buf); + free(buf); err: return NULL; } @@ -211,7 +211,7 @@ arg.handle = buf->handle; drmCommandWrite(vmw->fd, DRM_VMW_UNREF_DMABUF, &arg, sizeof(arg)); - xfree(buf); + free(buf); } void * --- mesa-7.9+repack.orig/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c +++ mesa-7.9+repack/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c @@ -32,6 +32,7 @@ * allows X clients to communicate with the driver. */ +#include #include "dixstruct.h" #include "extnsionst.h" #include @@ -211,7 +212,7 @@ struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn)); int i; - rects = xcalloc(number, sizeof(*rects)); + rects = calloc(number, sizeof(*rects)); if (!rects) return FALSE; @@ -224,7 +225,7 @@ vmw_ioctl_update_layout(vmw, number, rects); - xfree(rects); + free(rects); return TRUE; } --- mesa-7.9+repack.orig/src/gallium/auxiliary/rbug/README +++ mesa-7.9+repack/src/gallium/auxiliary/rbug/README @@ -0,0 +1,25 @@ + GALLIUM REMOTE DEBUGGING COMMON CODE + += About = + +This directory contains the common code for the Gallium 3D remote debugging +driver and clients. The code is two parts the connection managment code and +the (de)marsheller. + +The code currently uses tcp and ip4v for connections. + +Information about driver integration can be found in: + +src/gallium/drivers/rbug/README + +for information about applications look in: + +progs/rbug/README + +for a GUI see: + + http://cgit.freedesktop.org/mesa/rbug-gui + + +-- +Jakob Bornecrantz --- mesa-7.9+repack.orig/src/gallium/tests/python/retrace/README +++ mesa-7.9+repack/src/gallium/tests/python/retrace/README @@ -0,0 +1,17 @@ +This is an application written in python to replay the traces captured by the + trace pipe driver. + + +To use it follow the instructions in src/gallium/drivers/trace/README and +src/gallium/state_trackers/python/README, and then do + + python src/gallium/state_trackers/python/samples/retrace/interpreter.py filename.trace + + +This is still work in progress: +- not everything is captured/replayed + - surface/textures contents +- any tiny error will result in a crash + +-- +Jose Fonseca --- mesa-7.9+repack.orig/src/gallium/docs/make.bat +++ mesa-7.9+repack/src/gallium/docs/make.bat @@ -0,0 +1,113 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +set SPHINXBUILD=sphinx-build +set BUILDDIR=build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. changes to make an overview over all changed/added/deprecated items + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Gallium.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Gallium.ghc + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +:end --- mesa-7.9+repack.orig/src/gallium/docs/d3d11ddi.txt +++ mesa-7.9+repack/src/gallium/docs/d3d11ddi.txt @@ -0,0 +1,475 @@ +This document compares the D3D10/D3D11 device driver interface with Gallium. +It is written from the perspective of a developer implementing a D3D10/D3D11 driver as a Gallium state tracker. + +Note that naming and other cosmetic differences are not noted, since they don't really matter and would severely clutter the document. +Gallium/OpenGL terminology is used in preference to D3D terminology. + +NOTE: this document tries to be complete but most likely isn't fully complete and also not fully correct: please submit patches if you spot anything incorrect + +Also note that this is specifically for the DirectX 10/11 Windows Vista/7 DDI interfaces. +DirectX 9 has both user-mode (for Vista) and kernel mode (pre-Vista) interfaces, but they are significantly different from Gallium due to the presence of a lot of fixed function functionality. + +The user-visible DirectX 10/11 interfaces are distinct from the kernel DDI, but they match very closely. + +* Accessing Microsoft documentation + +See http://msdn.microsoft.com/en-us/library/dd445501.aspx ("D3D11DDI_DEVICEFUNCS") for D3D documentation. + +Also see http://download.microsoft.com/download/f/2/d/f2d5ee2c-b7ba-4cd0-9686-b6508b5479a1/direct3d10_web.pdf ("The Direct3D 10 System" by David Blythe) for an introduction to Direct3D 10 and the rationale for its design. + +The Windows Driver Kit contains the actual headers, as well as shader bytecode documentation. + +To get the headers from Linux, run the following, in a dedicated directory: +wget http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO +sudo mount -o loop GRMWDK_EN_7600_1.ISO /mnt/tmp +cabextract -x /mnt/tmp/wdk/headers_cab001.cab +rename 's/^_(.*)_[0-9]*$/$1/' * +sudo umount /mnt/tmp + +d3d10umddi.h contains the DDI interface analyzed in this document: note that it is much easier to read this online on MSDN. +d3d{10,11}TokenizedProgramFormat.hpp contains the shader bytecode definitions: this is not available on MSDN. +d3d9types.h contains DX9 shader bytecode, and DX9 types +d3dumddi.h contains the DirectX 9 DDI interface + +* Glossary + +BC1: DXT1 +BC2: DXT3 +BC3: DXT5 +BC5: RGTC +BC6H: BPTC float +BC7: BPTC +CS = compute shader: OpenCL-like shader +DS = domain shader: tessellation evaluation shader +HS = hull shader: tessellation control shader +IA = input assembler: primitive assembly +Input layout: vertex elements +OM = output merger: blender +PS = pixel shader: fragment shader +Primitive topology: primitive type +Resource: buffer or texture +Shader resource (view): sampler view +SO = stream out: transform feedback +Unordered access view: view supporting random read/write access (usually from compute shaders) + +* Legend + +-: features D3D11 has and Gallium lacks ++: features Gallium has and D3D11 lacks +!: differences between D3D11 and Gallium +*: possible improvements to Gallium +>: references to comparisons of special enumerations +#: comment + +* Gallium functions with no direct D3D10/D3D11 equivalent + +clear + + Gallium supports clearing both render targets and depth/stencil with a single call + +fence_signalled +fence_finish + + D3D10/D3D11 don't appear to support explicit fencing; queries can often substitute though, and flushing is supported + +set_clip_state + + Gallium supports fixed function user clip planes, D3D10/D3D11 only support using the vertex shader for them + +set_polygon_stipple + + Gallium supports polygon stipple + +clearRT/clearDS + + Gallium supports subrectangle fills of surfaces, D3D10 only supports full clears of views + +* DirectX 10/11 DDI functions and Gallium equivalents + +AbandonCommandList (D3D11 only) + - Gallium does not support deferred contexts + +CalcPrivateBlendStateSize +CalcPrivateDepthStencilStateSize +CalcPrivateDepthStencilViewSize +CalcPrivateElementLayoutSize +CalcPrivateGeometryShaderWithStreamOutput +CalcPrivateOpenedResourceSize +CalcPrivateQuerySize +CalcPrivateRasterizerStateSize +CalcPrivateRenderTargetViewSize +CalcPrivateResourceSize +CalcPrivateSamplerSize +CalcPrivateShaderResourceViewSize +CalcPrivateShaderSize +CalcDeferredContextHandleSize (D3D11 only) +CalcPrivateCommandListSize (D3D11 only) +CalcPrivateDeferredContextSize (D3D11 only) +CalcPrivateTessellationShaderSize (D3D11 only) +CalcPrivateUnorderedAccessViewSize (D3D11 only) + ! D3D11 allocates private objects itself, using the size computed here + * Gallium could do something similar to be able to put the private data inline into state tracker objects: this would allow them to fit in the same cacheline and improve performance + +CheckDeferredContextHandleSizes (D3D11 only) + - Gallium does not support deferred contexts + +CheckFormatSupport -> screen->is_format_supported + ! Gallium passes usages to this function, D3D11 returns them + - Gallium does not differentiate between blendable and non-blendable render targets + ! Gallium includes sample count directly, D3D11 uses additional query + +CheckMultisampleQualityLevels + ! is merged with is_format_supported + +CommandListExecute (D3D11 only) + - Gallium does not support command lists + +CopyStructureCount (D3D11 only) + - Gallium does not support unordered access views (views that can be written to arbitrarily from compute shaders) + +ClearDepthStencilView -> clear +ClearRenderTargetView -> clear + # D3D11 is not totally clear about whether this applies to any view or only a "currently-bound view" + + Gallium allows to clear both depth/stencil and render target(s) in a single operation + + Gallium supports double-precision depth values (but not rgba values!) + * May want to also support double-precision rgba or use "float" for "depth" + +ClearUnorderedAccessViewFloat (D3D11 only) +ClearUnorderedAccessViewUint (D3D11 only) + - Gallium does not support unordered access views (views that can be written to arbitrarily from compute shaders) + +CreateBlendState (extended in D3D10.1) -> create_blend_state + # D3D10 does not support per-RT blend modes (but per-RT blending), only D3D10.1 does + + Gallium supports logic ops + + Gallium supports dithering + + Gallium supports using the broadcast alpha component of the blend constant color + +CreateCommandList (D3D11 only) + - Gallium does not support command lists + +CreateComputeShader (D3D11 only) + - Gallium does not support compute shaders + +CreateDeferredContext (D3D11 only) + - Gallium does not support deferred contexts + +CreateDomainShader (D3D11 only) + - Gallium does not support domain shaders + +CreateHullShader (D3D11 only) + - Gallium does not support hull shaders + +CreateUnorderedAccessView (D3D11 only) + - Gallium does not support unordered access views + +CreateDepthStencilState -> create_depth_stencil_alpha_state + ! D3D11 has both a global stencil enable, and front/back enables; Gallium has only front/back enables + + Gallium has per-face writemask/valuemasks, D3D11 uses the same value for back and front + + Gallium supports the alpha test, which D3D11 lacks + +CreateDepthStencilView -> get_tex_surface +CreateRenderTargetView -> get_tex_surface + ! Gallium merges depthstencil and rendertarget views into pipe_surface, which also doubles as a 2D surface abstraction + - lack of texture array support + - lack of render-to-buffer support + + Gallium supports using 3D texture zslices as a depth/stencil buffer (in theory) + +CreateElementLayout -> create_vertex_elements_state + ! D3D11 allows sparse vertex elements (via InputRegister); in Gallium they must be specified sequentially + ! D3D11 has an extra flag (InputSlotClass) that is the same as instance_divisor == 0 + +CreateGeometryShader -> create_gs_state +CreateGeometryShaderWithStreamOutput -> create_gs_state + create_stream_output_state +CreatePixelShader -> create_fs_state +CreateVertexShader -> create_vs_state + > bytecode is different (see D3d10tokenizedprogramformat.hpp) + ! D3D11 describes input/outputs separately from bytecode; Gallium has the tgsi_scan.c module to extract it from TGSI + @ TODO: look into DirectX 10/11 semantics specification and bytecode + +CheckCounter +CheckCounterInfo +CreateQuery -> create_query + - Gallium only supports occlusion, primitives generated and primitives emitted queries + ! D3D11 implements fences with "event" queries + * TIMESTAMP could be implemented as an additional fields for other queries: some cards have hardware support for exactly this + * OCCLUSIONPREDICATE is required for the OpenGL v2 occlusion query functionality + * others are performance counters, we may want them but they are not critical + +CreateRasterizerState + - Gallium lacks clamping of polygon offset depth biases + - Gallium lacks support to disable depth clipping + + Gallium, like OpenGL, supports PIPE_POLYGON_MODE_POINT + + Gallium, like OpenGL, supports per-face polygon fill modes + + Gallium, like OpenGL, supports culling everything + + Gallium, like OpenGL, supports two-side lighting; D3D11 only has the facing attribute + + Gallium, like OpenGL, supports per-fill-mode polygon offset enables + + Gallium, like OpenGL, supports polygon smoothing + + Gallium, like OpenGL, supports polygon stipple + + Gallium, like OpenGL, supports point smoothing + + Gallium, like OpenGL, supports point sprites + + Gallium supports specifying point quad rasterization + + Gallium, like OpenGL, supports per-point point size + + Gallium, like OpenGL, supports line smoothing + + Gallium, like OpenGL, supports line stipple + + Gallium supports line last pixel rule specification + + Gallium, like OpenGL, supports provoking vertex convention + + Gallium supports D3D9 rasterization rules + + Gallium supports fixed line width + + Gallium supports fixed point size + +CreateResource -> texture_create or buffer_create + ! D3D11 passes the dimensions of all mipmap levels to the create call, while Gallium has an implicit floor(x/2) rule + # Note that hardware often has the implicit rule, so the D3D11 interface seems to make little sense + # Also, the D3D11 API does not allow the user to specify mipmap sizes, so this really seems a dubious decision on Microsoft's part + - D3D11 supports specifying initial data to write in the resource + - Gallium does not support unordered access buffers + ! D3D11 specifies mapping flags (i.e. read/write/discard);:it's unclear what they are used for here + - D3D11 supports odd things in the D3D10_DDI_RESOURCE_MISC_FLAG enum (D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT, D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS, D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED) + - Gallium does not support indirect draw call parameter buffers + - Gallium lacks array textures + ! D3D11 supports specifying hardware modes and other stuff here for scanout resources + + Gallium allows specifying minimum buffer alignment + ! D3D11 implements cube maps as 2D array textures + +CreateSampler + - D3D11 supports a monochrome convolution filter for "text filtering" + + Gallium supports non-normalized coordinates + + Gallium supports CLAMP, MIRROR_CLAMP and MIRROR_CLAMP_TO_BORDER + + Gallium supports setting min/max/mip filters and anisotropy independently + +CreateShaderResourceView (extended in D3D10.1) -> create_sampler_view + - Gallium lacks sampler views over buffers + - Gallium lacks texture arrays, and cube map views over texture arrays + + Gallium supports specifying a swizzle + ! D3D11 implements "cube views" as views into a 2D array texture + +CsSetConstantBuffers (D3D11 only) +CsSetSamplers (D3D11 only) +CsSetShader (D3D11 only) +CsSetShaderResources (D3D11 only) +CsSetShaderWithIfaces (D3D11 only) +CsSetUnorderedAccessViews (D3D11 only) + - Gallium does not support compute shaders + +DestroyBlendState +DestroyCommandList (D3D11 only) +DestroyDepthStencilState +DestroyDepthStencilView +DestroyDevice +DestroyElementLayout +DestroyQuery +DestroyRasterizerState +DestroyRenderTargetView +DestroyResource +DestroySampler +DestroyShader +DestroyShaderResourceView +DestroyUnorderedAccessView (D3D11 only) + # these are trivial + +Dispatch (D3D11 only) + - Gallium does not support compute shaders + +DispatchIndirect (D3D11 only) + - Gallium does not support compute shaders + +Draw -> draw_vbo + ! D3D11 sets primitive modes separately with IaSetTopology: it's not obvious which is better + +DrawAuto -> draw_auto + +DrawIndexed -> draw_vbo + ! D3D11 sets primitive modes separately with IaSetTopology: it's not obvious which is better + + D3D11 lacks explicit range, which is required for OpenGL + +DrawIndexedInstanced -> draw_vbo + ! D3D11 sets primitive modes separately with IaSetTopology: it's not obvious which is better + +DrawIndexedInstancedIndirect (D3D11 only) + # this allows to use an hardware buffer to specify the parameters for multiple draw_vbo calls + - Gallium does not support draw call parameter buffers and indirect draw + +DrawInstanced -> draw_vbo + ! D3D11 sets primitive modes separately with IaSetTopology: it's not obvious which is better + +DrawInstancedIndirect (D3D11 only) + # this allows to use an hardware buffer to specify the parameters for multiple draw_vbo calls + - Gallium does not support draw call parameter buffers and indirect draws + +DsSetConstantBuffers (D3D11 only) +DsSetSamplers (D3D11 only) +DsSetShader (D3D11 only) +DsSetShaderResources (D3D11 only) +DsSetShaderWithIfaces (D3D11 only) + - Gallium does not support domain shaders + +Flush -> flush + ! Gallium supports fencing and several kinds of flushing here, D3D11 just has a dumb glFlush-like function + +GenMips + - Gallium lacks a mipmap generation interface, and does this manually with the 3D engine + * it may be useful to add a mipmap generation interface, since the hardware (especially older cards) may have a better way than using the 3D engine + +GsSetConstantBuffers -> for(i = StartBuffer; i < NumBuffers; ++i) set_constant_buffer(PIPE_SHADER_GEOMETRY, i, phBuffers[i]) + +GsSetSamplers + - Gallium does not support sampling in geometry shaders + +GsSetShader -> bind_gs_state + +GsSetShaderWithIfaces (D3D11 only) + - Gallium does not support shader interfaces + +GsSetShaderResources + - Gallium does not support sampling in geometry shaders + +HsSetConstantBuffers (D3D11 only) +HsSetSamplers (D3D11 only) +HsSetShader (D3D11 only) +HsSetShaderResources (D3D11 only) +HsSetShaderWithIfaces (D3D11 only) + - Gallium does not support hull shaders + +IaSetIndexBuffer -> set_index_buffer + + Gallium supports 8-bit indices + # the D3D11 interface allows index-size-unaligned byte offsets into the index buffer; most drivers will abort with an assertion + +IaSetInputLayout -> bind_vertex_elements_state + +IaSetTopology + ! Gallium passes the topology = primitive type to the draw calls + * may want to add an interface for this + - Gallium lacks support for DirectX 11 tessellated primitives + + Gallium supports line loops, triangle fans, quads, quad strips and polygons + +IaSetVertexBuffers -> set_vertex_buffers + + Gallium allows to specify a max_index here + - Gallium only allows setting all vertex buffers at once, while D3D11 supports setting a subset + +OpenResource -> texture_from_handle + +PsSetConstantBuffers -> for(i = StartBuffer; i < NumBuffers; ++i) set_constant_buffer(PIPE_SHADER_FRAGMENT, i, phBuffers[i]) + * may want to split into fragment/vertex-specific versions + +PsSetSamplers -> bind_fragment_sampler_states + * may want to allow binding subsets instead of all at once + +PsSetShader -> bind_fs_state + +PsSetShaderWithIfaces (D3D11 only) + - Gallium does not support shader interfaces + +PsSetShaderResources -> set_fragment_sampler_views + * may want to allow binding subsets instead of all at once + +QueryBegin -> begin_query + +QueryEnd -> end_query + +QueryGetData -> get_query_result + - D3D11 supports reading an arbitrary data chunk for query results, Gallium only supports reading a 64-bit integer + + D3D11 doesn't seem to support actually waiting for the query result (?!) + - D3D11 supports optionally not flushing command buffers here and instead returning DXGI_DDI_ERR_WASSTILLDRAWING + +RecycleCommandList (D3D11 only) +RecycleCreateCommandList (D3D11 only) +RecycleDestroyCommandList (D3D11 only) + - Gallium does not support command lists + +RecycleCreateDeferredContext (D3D11 only) + - Gallium does not support deferred contexts + +RelocateDeviceFuncs + - Gallium does not support moving pipe_context, while D3D11 seems to, using this + +ResetPrimitiveID (D3D10.1+ only, #ifdef D3D10PSGP) + # used to do vertex processing on the GPU on Intel G45 chipsets when it is faster this way (see www.intel.com/Assets/PDF/whitepaper/322931.pdf) + # presumably this resets the primitive id system value + - Gallium does not support vertex pipeline bypass anymore + +ResourceCopy +ResourceCopyRegion +ResourceConvert (D3D10.1+ only) +ResourceConvertRegion (D3D10.1+ only) + -> resource_copy_region + - Gallium does not support hardware buffer copies + - Gallium does not support copying 3D texture subregions in a single call + +ResourceIsStagingBusy -> is_texture_referenced, is_buffer_referenced + - Gallium does not support checking reference for a whole texture, but only a specific surface + +ResourceReadAfterWriteHazard + ! Gallium specifies hides this, except for the render and texture caches + +ResourceResolveSubresource -> resource_resolve + +ResourceMap +ResourceUnmap +DynamicConstantBufferMapDiscard +DynamicConstantBufferUnmap +DynamicIABufferMapDiscard +DynamicIABufferMapNoOverwrite +DynamicIABufferUnmap +DynamicResourceMapDiscard +DynamicResourceUnmap +StagingResourceMap +StagingResourceUnmap + -> buffer_map / buffer_unmap + -> transfer functions + ! Gallium and D3D have different semantics for transfers + * D3D separates vertex/index buffers from constant buffers + ! D3D separates some buffer flags into specialized calls + +ResourceUpdateSubresourceUP -> transfer functionality, transfer_inline_write in gallium-resources +DefaultConstantBufferUpdateSubresourceUP -> transfer functionality, transfer_inline_write in gallium-resources + +SetBlendState -> bind_blend_state, set_blend_color and set_sample_mask + ! D3D11 fuses bind_blend_state, set_blend_color and set_sample_mask in a single function + +SetDepthStencilState -> bind_depth_stencil_alpha_state and set_stencil_ref + ! D3D11 fuses bind_depth_stencil_alpha_state and set_stencil_ref in a single function + +SetPredication -> render_condition + # here both D3D11 and Gallium seem very limited (hardware is too, probably though) + # ideally, we should support nested conditional rendering, as well as more complex tests (checking for an arbitrary range, after an AND with arbitrary mask ) + # of couse, hardware support is probably as limited as OpenGL/D3D11 + + Gallium, like NV_conditional_render, supports by-region and wait flags + - D3D11 supports predication conditional on being equal any value (along with occlusion predicates); Gallium only supports on non-zero + +SetRasterizerState -> bind_rasterizer_state + +SetRenderTargets (extended in D3D11) -> set_framebuffer_state + ! Gallium passed a width/height here, D3D11 does not + ! Gallium lacks ClearTargets (but this is redundant and the driver can trivially compute this if desired) + - Gallium does not support unordered access views + - Gallium does not support geometry shader selection of texture array image / 3D texture zslice + +SetResourceMinLOD (D3D11 only) + - Gallium does not support min lod directly on textures + +SetScissorRects + - Gallium lacks support for multiple geometry-shader-selectable scissor rectangles D3D11 has + +SetTextFilterSize + - Gallium lacks support for text filters + +SetVertexPipelineOutput (D3D10.1+ only) + # used to do vertex processing on the GPU on Intel G45 chipsets when it is faster this way (see www.intel.com/Assets/PDF/whitepaper/322931.pdf) + - Gallium does not support vertex pipeline bypass anymore + +SetViewports + - Gallium lacks support for multiple geometry-shader-selectable viewports D3D11 has + +ShaderResourceViewReadAfterWriteHazard -> flush(PIPE_FLUSH_RENDER_CACHE) + - Gallium does not support specifying this per-render-target/view + +SoSetTargets -> set_stream_output_buffers + +VsSetConstantBuffers -> for(i = StartBuffer; i < NumBuffers; ++i) set_constant_buffer(PIPE_SHADER_VERTEX, i, phBuffers[i]) + * may want to split into fragment/vertex-specific versions + +VsSetSamplers -> bind_vertex_sampler_states + * may want to allow binding subsets instead of all at once + +VsSetShader -> bind_vs_state + +VsSetShaderWithIfaces (D3D11 only) + - Gallium does not support shader interfaces + +VsSetShaderResources -> set_fragment_sampler_views + * may want to allow binding subsets instead of all at once --- mesa-7.9+repack.orig/src/gallium/docs/source/resources.rst +++ mesa-7.9+repack/src/gallium/docs/source/resources.rst @@ -0,0 +1,195 @@ +Resources and derived objects +============================= + +Resources represent objects that hold data: textures and buffers. + +They are mostly modelled after the resources in Direct3D 10/11, but with a +different transfer/update mechanism, and more features for OpenGL support. + +Resources can be used in several ways, and it is required to specify all planned uses through an appropriate set of bind flags. + +TODO: write much more on resources + +Transfers +--------- + +Transfers are the mechanism used to access resources with the CPU. + +OpenGL: OpenGL supports mapping buffers and has inline transfer functions for both buffers and textures + +D3D11: D3D11 lacks transfers, but has special resource types that are mappable to the CPU address space + +TODO: write much more on transfers + +Resource targets +---------------- + +Resource targets determine the type of a resource. + +Note that drivers may not actually have the restrictions listed regarding +coordinate normalization and wrap modes, and in fact efficient OpenCL +support will probably require drivers that don't have any of them, which +will probably be advertised with an appropriate cap. + +TODO: document all targets. Note that both 3D and cube have restrictions +that depend on the hardware generation. + +TODO: can buffers have a non-R8 format? + +PIPE_BUFFER +^^^^^^^^^^^ + +Buffer resource: can be used as a vertex, index, constant buffer (appropriate bind flags must be requested). + +They can be bound to stream output if supported. +TODO: what about the restrictions lifted by the several later GL transform feedback extensions? How does one advertise that in Gallium? + +They can be also be bound to a shader stage as usual. +TODO: are all drivers supposed to support this? how does this work exactly? are there size limits? + +They can be also be bound to the framebuffer as usual. +TODO: are all drivers supposed to support this? how does this work exactly? are there size limits? +TODO: is there any chance of supporting GL pixel buffer object acceleration with this? + +- depth0 must be 1 +- last_level must be 0 +- TODO: what about normalization? +- TODO: wrap modes/other sampling state? +- TODO: are arbitrary formats supported? in which cases? + +OpenGL: vertex buffers in GL 1.5 or GL_ARB_vertex_buffer_object + +- Binding to stream out requires GL 3.0 or GL_NV_transform_feedback +- Binding as constant buffers requires GL 3.1 or GL_ARB_uniform_buffer_object +- Binding to a sampling stage requires GL 3.1 or GL_ARB_texture_buffer_object +- TODO: can they be bound to an FBO? + +D3D11: buffer resources +- Binding to a render target requires D3D_FEATURE_LEVEL_10_0 + +PIPE_TEXTURE_1D +^^^^^^^^^^^^^^^ +1D surface accessed with normalized coordinates. + +UNIMPLEMENTED: 1D texture arrays not supported + +- If PIPE_CAP_NPOT_TEXTURES is not supported, + width must be a power of two +- height0 must be 1 +- depth0 must be 1 +- Mipmaps can be used +- Must use normalized coordinates + +OpenGL: GL_TEXTURE_1D in GL 1.0 + +- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two + +D3D11: 1D textures in D3D_FEATURE_LEVEL_10_0 + +PIPE_TEXTURE_RECT +^^^^^^^^^^^^^^^^^ +2D surface with OpenGL GL_TEXTURE_RECTANGLE semantics. + +- depth0 must be 1 +- last_level must be 0 +- Must use unnormalized coordinates +- Must use a clamp wrap mode + +OpenGL: GL_TEXTURE_RECTANGLE in GL 3.1 or GL_ARB_texture_rectangle or GL_NV_texture_rectangle + +OpenCL: can create OpenCL images based on this, that can then be sampled arbitrarily + +D3D11: not supported (only PIPE_TEXTURE_2D with normalized coordinates is supported) + +PIPE_TEXTURE_2D +^^^^^^^^^^^^^^^ +2D surface accessed with normalized coordinates. + +UNIMPLEMENTED: 2D texture arrays not supported + +- If PIPE_CAP_NPOT_TEXTURES is not supported, + width and height must be powers of two +- depth0 must be 1 +- Mipmaps can be used +- Must use normalized coordinates +- No special restrictions on wrap modes + +OpenGL: GL_TEXTURE_2D in GL 1.0 + +- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two + +OpenCL: can create OpenCL images based on this, that can then be sampled arbitrarily + +D3D11: 2D textures + +- PIPE_CAP_NPOT_TEXTURES is equivalent to D3D_FEATURE_LEVEL_9_3 + +PIPE_TEXTURE_3D +^^^^^^^^^^^^^^^ + +3-dimensional array of texels. +Mipmap dimensions are reduced in all 3 coordinates. + +- If PIPE_CAP_NPOT_TEXTURES is not supported, + width, height and depth must be powers of two +- Must use normalized coordinates + +OpenGL: GL_TEXTURE_3D in GL 1.2 or GL_EXT_texture3D + +- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two + +D3D11: 3D textures + +- PIPE_CAP_NPOT_TEXTURES is equivalent to D3D_FEATURE_LEVEL_10_0 + +PIPE_TEXTURE_CUBE +^^^^^^^^^^^^^^^^^ + +Cube maps consist of 6 2D faces. +The 6 surfaces form an imaginary cube, and sampling happens by mapping an +input 3-vector to the point of the cube surface in that direction. + +Sampling may be optionally seamless, resulting in filtering taking samples +from multiple surfaces near to the edge. +UNIMPLEMENTED: seamless cube map sampling not supported + +UNIMPLEMENTED: cube map arrays not supported + +- Width and height must be equal +- If PIPE_CAP_NPOT_TEXTURES is not supported, + width and height must be powers of two +- Must use normalized coordinates + +OpenGL: GL_TEXTURE_CUBE_MAP in GL 1.3 or EXT_texture_cube_map + +- PIPE_CAP_NPOT_TEXTURES is equivalent to GL 2.0 or GL_ARB_texture_non_power_of_two +- Seamless cube maps require GL 3.2 or GL_ARB_seamless_cube_map or GL_AMD_seamless_cubemap_per_texture +- Cube map arrays require GL 4.0 or GL_ARB_texture_cube_map_array + +D3D11: 2D array textures with the D3D11_RESOURCE_MISC_TEXTURECUBE flag + +- PIPE_CAP_NPOT_TEXTURES is equivalent to D3D_FEATURE_LEVEL_10_0 +- Cube map arrays require D3D_FEATURE_LEVEL_10_1 +- TODO: are (non)seamless cube maps supported in D3D11? how? + +Surfaces +-------- + +Surfaces are views of a resource that can be bound as a framebuffer to serve as the render target or depth buffer. + +TODO: write much more on surfaces + +OpenGL: FBOs are collections of surfaces in GL 3.0 or GL_ARB_framebuffer_object + +D3D11: render target views and depth/stencil views + +Sampler views +------------- + +Sampler views are views of a resource that can be bound to a pipeline stage to be sampled from shaders. + +TODO: write much more on sampler views + +OpenGL: texture objects are actually sampler view and resource in a single unit + +D3D11: shader resource views --- mesa-7.9+repack.orig/src/gallium/docs/source/cso.rst +++ mesa-7.9+repack/src/gallium/docs/source/cso.rst @@ -0,0 +1,14 @@ +CSO +=== + +CSO, Constant State Objects, are a core part of Gallium's API. + +CSO work on the principle of reusable state; they are created by filling +out a state object with the desired properties, then passing that object +to a context. The context returns an opaque context-specific handle which +can be bound at any time for the desired effect. + +.. toctree:: + :glob: + + cso/* --- mesa-7.9+repack.orig/src/gallium/docs/source/index.rst +++ mesa-7.9+repack/src/gallium/docs/source/index.rst @@ -0,0 +1,30 @@ +.. Gallium documentation master file, created by + sphinx-quickstart on Sun Dec 20 14:09:05 2009. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Gallium's documentation! +=================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + intro + debugging + tgsi + screen + resources + context + cso + distro + glossary + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + --- mesa-7.9+repack.orig/src/gallium/docs/source/distro.rst +++ mesa-7.9+repack/src/gallium/docs/source/distro.rst @@ -0,0 +1,201 @@ +Distribution +============ + +Along with the interface definitions, the following drivers, state trackers, +and auxiliary modules are shipped in the standard Gallium distribution. + +Drivers +------- + +Cell +^^^^ + +Simple driver for the IBM Cell architecture. Runs faster than :ref:`softpipe` +on Cell-based machines. + +Failover +^^^^^^^^ + +Broken and deprecated. + +Intel i915 +^^^^^^^^^^ + +Driver for Intel i915 and i945 chipsets. + +Intel i965 +^^^^^^^^^^ + +Highly experimental driver for Intel i965 chipsets. + +Identity +^^^^^^^^ + +Wrapper driver. The identity driver is a simple skeleton that passes through +all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context +and Screen, and as such, it is an excellent starting point for new drivers. + +LLVM Softpipe +^^^^^^^^^^^^^ + +A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to +dynamically generate optimized rasterizing pipelines. + +nVidia nvfx +^^^^^^^^^^^ + +Driver for the nVidia nv30 and nv40 families of GPUs. + +nVidia nv50 +^^^^^^^^^^^ + +Driver for the nVidia nv50 family of GPUs. + +VMware SVGA +^^^^^^^^^^^ + +Driver for VMware virtualized guest operating system graphics processing. + +ATI r300 +^^^^^^^^ + +Driver for the ATI/AMD r300, r400, and r500 families of GPUs. + +.. _softpipe: + +Softpipe +^^^^^^^^ + +Reference software rasterizer. Slow but accurate. + +Trace +^^^^^ + +Wrapper driver. Trace dumps an XML record of the calls made to the +:ref:`Context` and :ref:`Screen` objects that it wraps. + +Rbug +^^^^ + +Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui. + +.. _galahad: + +Galahad +^^^^^^^ + +Wrapper driver. Sanity checker for the internal gallium state. Normally +a driver should n't have to sanity check the input it gets from a state +tracker. Any wrong state received should be perceived as a state tracker bug. + +State Trackers +-------------- + +.. _dri: + +Direct Rendering Infrastructure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Tracker that implements the client-side DRI protocol, for providing direct +acceleration services to X11 servers with the DRI extension. Supports DRI1 +and DRI2. Only GL is supported. + +.. _egl: + +EGL +^^^ + +Tracker for the Khronos EGL standard, used to set up GL and GLES contexts +without extra knowledge of the underlying windowing system. + +GLX +^^^ + +MesaGL +^^^^^^ + +Tracker implementing a GL state machine. Not usable as a standalone tracker; +Mesa should be built with another state tracker, such as :ref:`DRI` or +:ref:`EGL`. + +Python +^^^^^^ + +OpenVG +^^^^^^ + +WGL +^^^ + +Xorg/XFree86 DDX +^^^^^^^^^^^^^^^^ + +Tracker for XFree86 and Xorg X11 servers. Provides device-dependent +modesetting and acceleration as a DDX driver. + +Auxiliary +--------- + +OS +^^ + +The OS module contains the abstractions for basic operating system services: + +* memory allocation +* simple message logging +* obtaining run-time configuration option +* threading primitives + +This is the bare minimum required to port Gallium to a new platform. + +The OS module already provides the implementations of these abstractions for +the most common platforms. When targeting an embedded platform no +implementation will be provided -- these must be provided separately. + +CSO Cache +^^^^^^^^^ + +The CSO cache is used to accelerate preparation of state by saving +driver-specific state structures for later use. + +.. _draw: + +Draw +^^^^ + +Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders +or other essential parts of pre-rasterization vertex preparation. + +Gallivm +^^^^^^^ + +Indices +^^^^^^^ + +Indices provides tools for translating or generating element indices for +use with element-based rendering. + +Pipe Buffer Managers +^^^^^^^^^^^^^^^^^^^^ + +Each of these managers provides various services to drivers that are not +fully utilizing a memory manager. + +Remote Debugger +^^^^^^^^^^^^^^^ + +Runtime Assembly Emission +^^^^^^^^^^^^^^^^^^^^^^^^^ + +TGSI +^^^^ + +The TGSI auxiliary module provides basic utilities for manipulating TGSI +streams. + +Translate +^^^^^^^^^ + +Util +^^^^ + --- mesa-7.9+repack.orig/src/gallium/docs/source/context.rst +++ mesa-7.9+repack/src/gallium/docs/source/context.rst @@ -0,0 +1,348 @@ +.. _context: + +Context +======= + +The context object represents the purest, most directly accessible, abilities +of the device's 3D rendering pipeline. + +Methods +------- + +CSO State +^^^^^^^^^ + +All CSO state is created, bound, and destroyed, with triplets of methods that +all follow a specific naming scheme. For example, ``create_blend_state``, +``bind_blend_state``, and ``destroy_blend_state``. + +CSO objects handled by the context object: + +* :ref:`Blend`: ``*_blend_state`` +* :ref:`Sampler`: These are special; they can be bound to either vertex or + fragment samplers, and they are bound in groups. + ``bind_fragment_sampler_states``, ``bind_vertex_sampler_states`` +* :ref:`Rasterizer`: ``*_rasterizer_state`` +* :ref:`Depth, Stencil, & Alpha`: ``*_depth_stencil_alpha_state`` +* :ref:`Shader`: These have two sets of methods. ``*_fs_state`` is for + fragment shaders, and ``*_vs_state`` is for vertex shaders. +* :ref:`Vertex Elements`: ``*_vertex_elements_state`` + + +Resource Binding State +^^^^^^^^^^^^^^^^^^^^^^ + +This state describes how resources in various flavours (textures, +buffers, surfaces) are bound to the driver. + + +* ``set_constant_buffer`` sets a constant buffer to be used for a given shader + type. index is used to indicate which buffer to set (some apis may allow + multiple ones to be set, and binding a specific one later, though drivers + are mostly restricted to the first one right now). + +* ``set_framebuffer_state`` + +* ``set_vertex_buffers`` + +* ``set_index_buffer`` + +Non-CSO State +^^^^^^^^^^^^^ + +These pieces of state are too small, variable, and/or trivial to have CSO +objects. They all follow simple, one-method binding calls, e.g. +``set_blend_color``. + +* ``set_stencil_ref`` sets the stencil front and back reference values + which are used as comparison values in stencil test. +* ``set_blend_color`` +* ``set_sample_mask`` +* ``set_clip_state`` +* ``set_polygon_stipple`` +* ``set_scissor_state`` sets the bounds for the scissor test, which culls + pixels before blending to render targets. If the :ref:`Rasterizer` does + not have the scissor test enabled, then the scissor bounds never need to + be set since they will not be used. Note that scissor xmin and ymin are + inclusive, but xmax and ymax are exclusive. The inclusive ranges in x + and y would be [xmin..xmax-1] and [ymin..ymax-1]. +* ``set_viewport_state`` + + +Sampler Views +^^^^^^^^^^^^^ + +These are the means to bind textures to shader stages. To create one, specify +its format, swizzle and LOD range in sampler view template. + +If texture format is different than template format, it is said the texture +is being cast to another format. Casting can be done only between compatible +formats, that is formats that have matching component order and sizes. + +Swizzle fields specify they way in which fetched texel components are placed +in the result register. For example, ``swizzle_r`` specifies what is going to be +placed in first component of result register. + +The ``first_level`` and ``last_level`` fields of sampler view template specify +the LOD range the texture is going to be constrained to. + +* ``set_fragment_sampler_views`` binds an array of sampler views to + fragment shader stage. Every binding point acquires a reference + to a respective sampler view and releases a reference to the previous + sampler view. + +* ``set_vertex_sampler_views`` binds an array of sampler views to vertex + shader stage. Every binding point acquires a reference to a respective + sampler view and releases a reference to the previous sampler view. + +* ``create_sampler_view`` creates a new sampler view. ``texture`` is associated + with the sampler view which results in sampler view holding a reference + to the texture. Format specified in template must be compatible + with texture format. + +* ``sampler_view_destroy`` destroys a sampler view and releases its reference + to associated texture. + + +Clearing +^^^^^^^^ + +Clear is one of the most difficult concepts to nail down to a single +interface (due to both different requirements from APIs and also driver/hw +specific differences). + +``clear`` initializes some or all of the surfaces currently bound to +the framebuffer to particular RGBA, depth, or stencil values. +Currently, this does not take into account color or stencil write masks (as +used by GL), and always clears the whole surfaces (no scissoring as used by +GL clear or explicit rectangles like d3d9 uses). It can, however, also clear +only depth or stencil in a combined depth/stencil surface, if the driver +supports PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE. +If a surface includes several layers/slices (XXX: not yet...) then all layers +will be cleared. + +``clear_render_target`` clears a single color rendertarget with the specified +color value. While it is only possible to clear one surface at a time (which can +include several layers), this surface need not be bound to the framebuffer. + +``clear_depth_stencil`` clears a single depth, stencil or depth/stencil surface +with the specified depth and stencil values (for combined depth/stencil buffers, +is is also possible to only clear one or the other part). While it is only +possible to clear one surface at a time (which can include several layers), +this surface need not be bound to the framebuffer. + + +Drawing +^^^^^^^ + +``draw_vbo`` draws a specified primitive. The primitive mode and other +properties are described by ``pipe_draw_info``. + +The ``mode``, ``start``, and ``count`` fields of ``pipe_draw_info`` specify the +the mode of the primitive and the vertices to be fetched, in the range between +``start`` to ``start``+``count``-1, inclusive. + +Every instance with instanceID in the range between ``start_instance`` and +``start_instance``+``instance_count``-1, inclusive, will be drawn. + +All vertex indices must fall inside the range given by ``min_index`` and +``max_index``. In case non-indexed draw, ``min_index`` should be set to +``start`` and ``max_index`` should be set to ``start``+``count``-1. + +``index_bias`` is a value added to every vertex index before fetching vertex +attributes. It does not affect ``min_index`` and ``max_index``. + +If there is an index buffer bound, and ``indexed`` field is true, all vertex +indices will be looked up in the index buffer. ``min_index``, ``max_index``, +and ``index_bias`` apply after index lookup. + +If a given vertex element has ``instance_divisor`` set to 0, it is said +it contains per-vertex data and effective vertex attribute address needs +to be recalculated for every index. + + attribAddr = ``stride`` * index + ``src_offset`` + +If a given vertex element has ``instance_divisor`` set to non-zero, +it is said it contains per-instance data and effective vertex attribute +address needs to recalculated for every ``instance_divisor``-th instance. + + attribAddr = ``stride`` * instanceID / ``instance_divisor`` + ``src_offset`` + +In the above formulas, ``src_offset`` is taken from the given vertex element +and ``stride`` is taken from a vertex buffer associated with the given +vertex element. + +The calculated attribAddr is used as an offset into the vertex buffer to +fetch the attribute data. + +The value of ``instanceID`` can be read in a vertex shader through a system +value register declared with INSTANCEID semantic name. + + +Queries +^^^^^^^ + +Queries gather some statistic from the 3D pipeline over one or more +draws. Queries may be nested, though no state tracker currently +exercises this. + +Queries can be created with ``create_query`` and deleted with +``destroy_query``. To start a query, use ``begin_query``, and when finished, +use ``end_query`` to end the query. + +``get_query_result`` is used to retrieve the results of a query. If +the ``wait`` parameter is TRUE, then the ``get_query_result`` call +will block until the results of the query are ready (and TRUE will be +returned). Otherwise, if the ``wait`` parameter is FALSE, the call +will not block and the return value will be TRUE if the query has +completed or FALSE otherwise. + +The most common type of query is the occlusion query, +``PIPE_QUERY_OCCLUSION_COUNTER``, which counts the number of fragments which +are written to the framebuffer without being culled by +:ref:`Depth, Stencil, & Alpha` testing or shader KILL instructions. + +Another type of query, ``PIPE_QUERY_TIME_ELAPSED``, returns the amount of +time, in nanoseconds, the context takes to perform operations. + +Gallium does not guarantee the availability of any query types; one must +always check the capabilities of the :ref:`Screen` first. + + +Conditional Rendering +^^^^^^^^^^^^^^^^^^^^^ + +A drawing command can be skipped depending on the outcome of a query +(typically an occlusion query). The ``render_condition`` function specifies +the query which should be checked prior to rendering anything. + +If ``render_condition`` is called with ``query`` = NULL, conditional +rendering is disabled and drawing takes place normally. + +If ``render_condition`` is called with a non-null ``query`` subsequent +drawing commands will be predicated on the outcome of the query. If +the query result is zero subsequent drawing commands will be skipped. + +If ``mode`` is PIPE_RENDER_COND_WAIT the driver will wait for the +query to complete before deciding whether to render. + +If ``mode`` is PIPE_RENDER_COND_NO_WAIT and the query has not yet +completed, the drawing command will be executed normally. If the query +has completed, drawing will be predicated on the outcome of the query. + +If ``mode`` is PIPE_RENDER_COND_BY_REGION_WAIT or +PIPE_RENDER_COND_BY_REGION_NO_WAIT rendering will be predicated as above +for the non-REGION modes but in the case that an occulusion query returns +a non-zero result, regions which were occluded may be ommitted by subsequent +drawing commands. This can result in better performance with some GPUs. +Normally, if the occlusion query returned a non-zero result subsequent +drawing happens normally so fragments may be generated, shaded and +processed even where they're known to be obscured. + + +Flushing +^^^^^^^^ + +``flush`` + + +Resource Busy Queries +^^^^^^^^^^^^^^^^^^^^^ + +``is_resource_referenced`` + + + +Blitting +^^^^^^^^ + +These methods emulate classic blitter controls. + +These methods operate directly on ``pipe_resource`` objects, and stand +apart from any 3D state in the context. Blitting functionality may be +moved to a separate abstraction at some point in the future. + +``resource_copy_region`` blits a region of a subresource of a resource to a +region of another subresource of a resource, provided that both resources have +the same format, or compatible formats, i.e., formats for which copying the +bytes from the source resource unmodified to the destination resource will +achieve the same effect of a textured quad blitter. The source and destination +may be the same resource, but overlapping blits are not permitted. + +``resource_resolve`` resolves a multisampled resource into a non-multisampled +one. Formats and dimensions must match. This function must be present if a driver +supports multisampling. + +The interfaces to these calls are likely to change to make it easier +for a driver to batch multiple blits with the same source and +destination. + + +Stream Output +^^^^^^^^^^^^^ + +Stream output, also known as transform feedback allows writing the results of the +vertex pipeline (after the geometry shader or vertex shader if no geometry shader +is present) to be written to a buffer created with a ``PIPE_BIND_STREAM_OUTPUT`` +flag. + +First a stream output state needs to be created with the +``create_stream_output_state`` call. It specific the details of what's being written, +to which buffer and with what kind of a writemask. + +Then target buffers needs to be set with the call to ``set_stream_output_buffers`` +which sets the buffers and the offsets from the start of those buffer to where +the data will be written to. + + +Transfers +^^^^^^^^^ + +These methods are used to get data to/from a resource. + +``get_transfer`` creates a transfer object. + +``transfer_destroy`` destroys the transfer object. May cause +data to be written to the resource at this point. + +``transfer_map`` creates a memory mapping for the transfer object. +The returned map points to the start of the mapped range according to +the box region, not the beginning of the resource. + +``transfer_unmap`` remove the memory mapping for the transfer object. +Any pointers into the map should be considered invalid and discarded. + +``transfer_inline_write`` performs a simplified transfer for simple writes. +Basically get_transfer, transfer_map, data write, transfer_unmap, and +transfer_destroy all in one. + +.. _transfer_flush_region: + +transfer_flush_region +%%%%%%%%%%%%%%%%%%%%% + +If a transfer was created with ``FLUSH_EXPLICIT``, it will not automatically +be flushed on write or unmap. Flushes must be requested with +``transfer_flush_region``. Flush ranges are relative to the mapped range, not +the beginning of the resource. + +.. _pipe_transfer: + +PIPE_TRANSFER +^^^^^^^^^^^^^ + +These flags control the behavior of a transfer object. + +* ``READ``: resource contents are read at transfer create time. +* ``WRITE``: resource contents will be written back at transfer destroy time. +* ``MAP_DIRECTLY``: a transfer should directly map the resource. May return + NULL if not supported. +* ``DISCARD``: The memory within the mapped region is discarded. + Cannot be used with ``READ``. +* ``DONTBLOCK``: Fail if the resource cannot be mapped immediately. +* ``UNSYNCHRONIZED``: Do not synchronize pending operations on the resource + when mapping. The interaction of any writes to the map and any + operations pending on the resource are undefined. Cannot be used with + ``READ``. +* ``FLUSH_EXPLICIT``: Written ranges will be notified later with + :ref:`transfer_flush_region`. Cannot be used with ``READ``. --- mesa-7.9+repack.orig/src/gallium/docs/source/glossary.rst +++ mesa-7.9+repack/src/gallium/docs/source/glossary.rst @@ -0,0 +1,27 @@ +Glossary +======== + +.. glossary:: + :sorted: + + MSAA + Multi-Sampled Anti-Aliasing. A basic anti-aliasing technique that takes + multiple samples of the depth buffer, and uses this information to + smooth the edges of polygons. + + TCL + Transform, Clipping, & Lighting. The three stages of preparation in a + rasterizing pipeline prior to the actual rasterization of vertices into + fragments. + + NPOT + Non-power-of-two. Usually applied to textures which have at least one + dimension which is not a power of two. + + LOD + Level of Detail. Also spelled "LoD." The value that determines when the + switches between mipmaps occur during texture sampling. + + GLSL + GL Shading Language. The official, common high-level shader language used + in GL 2.0 and above. --- mesa-7.9+repack.orig/src/gallium/docs/source/intro.rst +++ mesa-7.9+repack/src/gallium/docs/source/intro.rst @@ -0,0 +1,9 @@ +Introduction +============ + +What is Gallium? +---------------- + +Gallium is essentially an API for writing graphics drivers in a largely +device-agnostic fashion. It provides several objects which encapsulate the +core services of graphics hardware in a straightforward manner. --- mesa-7.9+repack.orig/src/gallium/docs/source/screen.rst +++ mesa-7.9+repack/src/gallium/docs/source/screen.rst @@ -0,0 +1,287 @@ +.. _screen: + +Screen +====== + +A screen is an object representing the context-independent part of a device. + +Flags and enumerations +---------------------- + +XXX some of these don't belong in this section. + + +.. _pipe_cap: + +PIPE_CAP_* +^^^^^^^^^^ + +Capability queries return information about the features and limits of the +driver/GPU. For floating-point values, use :ref:`get_paramf`, and for boolean +or integer values, use :ref:`get_param`. + +The integer capabilities: + +* ``MAX_TEXTURE_IMAGE_UNITS``: The maximum number of samplers available. +* ``NPOT_TEXTURES``: Whether :term:`NPOT` textures may have repeat modes, + normalized coordinates, and mipmaps. +* ``TWO_SIDED_STENCIL``: Whether the stencil test can also affect back-facing + polygons. +* ``GLSL``: Deprecated. +* ``DUAL_SOURCE_BLEND``: Whether dual-source blend factors are supported. See + :ref:`Blend` for more information. +* ``ANISOTROPIC_FILTER``: Whether textures can be filtered anisotropically. +* ``POINT_SPRITE``: Whether point sprites are available. +* ``MAX_RENDER_TARGETS``: The maximum number of render targets that may be + bound. +* ``OCCLUSION_QUERY``: Whether occlusion queries are available. +* ``TIMER_QUERY``: Whether timer queries are available. +* ``TEXTURE_SHADOW_MAP``: indicates whether the fragment shader hardware + can do the depth texture / Z comparison operation in TEX instructions + for shadow testing. +* ``MAX_TEXTURE_2D_LEVELS``: The maximum number of mipmap levels available + for a 2D texture. +* ``MAX_TEXTURE_3D_LEVELS``: The maximum number of mipmap levels available + for a 3D texture. +* ``MAX_TEXTURE_CUBE_LEVELS``: The maximum number of mipmap levels available + for a cubemap. +* ``TEXTURE_MIRROR_CLAMP``: Whether mirrored texture coordinates with clamp + are supported. +* ``TEXTURE_MIRROR_REPEAT``: Whether mirrored repeating texture coordinates + are supported. +* ``MAX_VERTEX_TEXTURE_UNITS``: The maximum number of samplers addressable + inside the vertex shader. If this is 0, then the vertex shader cannot + sample textures. +* ``TGSI_CONT_SUPPORTED``: Whether the TGSI CONT opcode is supported. +* ``BLEND_EQUATION_SEPARATE``: Whether alpha blend equations may be different + from color blend equations, in :ref:`Blend` state. +* ``SM3``: Whether the vertex shader and fragment shader support equivalent + opcodes to the Shader Model 3 specification. XXX oh god this is horrible +* ``MAX_PREDICATE_REGISTERS``: indicates the number of predicate registers + available. Predicate register may be set as a side-effect of ALU + instructions to indicate less than, greater than or equal to zero. + Later instructions can use a predicate register to control writing to + each channel of destination registers. NOTE: predicate registers have + not been fully implemented in Gallium at this time. See the + GL_NV_fragment_program extension for more info (look for "condition codes"). +* ``MAX_COMBINED_SAMPLERS``: The total number of samplers accessible from + the vertex and fragment shader, inclusive. +* ``MAX_CONST_BUFFERS``: Maximum number of constant buffers that can be bound + to any shader stage using ``set_constant_buffer``. If 0 or 1, the pipe will + only permit binding one constant buffer per shader, and the shaders will + not permit two-dimensional access to constants. + +If a value greater than 0 is returned, the driver can have multiple +constant buffers bound to shader stages. The CONST register file can +be accessed with two-dimensional indices, like in the example below. + +DCL CONST[0][0..7] # declare first 8 vectors of constbuf 0 +DCL CONST[3][0] # declare first vector of constbuf 3 +MOV OUT[0], CONST[0][3] # copy vector 3 of constbuf 0 + +For backwards compatibility, one-dimensional access to CONST register +file is still supported. In that case, the constbuf index is assumed +to be 0. + +* ``MAX_CONST_BUFFER_SIZE``: Maximum byte size of a single constant buffer. +* ``INDEP_BLEND_ENABLE``: Whether per-rendertarget blend enabling and channel + masks are supported. If 0, then the first rendertarget's blend mask is + replicated across all MRTs. +* ``INDEP_BLEND_FUNC``: Whether per-rendertarget blend functions are + available. If 0, then the first rendertarget's blend functions affect all + MRTs. +* ``PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT``: Whether the TGSI property + FS_COORD_ORIGIN with value UPPER_LEFT is supported. +* ``PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT``: Whether the TGSI property + FS_COORD_ORIGIN with value LOWER_LEFT is supported. +* ``PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER``: Whether the TGSI + property FS_COORD_PIXEL_CENTER with value HALF_INTEGER is supported. +* ``PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER``: Whether the TGSI + property FS_COORD_PIXEL_CENTER with value INTEGER is supported. + +The floating-point capabilities: + +* ``MAX_LINE_WIDTH``: The maximum width of a regular line. +* ``MAX_LINE_WIDTH_AA``: The maximum width of a smoothed line. +* ``MAX_POINT_WIDTH``: The maximum width and height of a point. +* ``MAX_POINT_WIDTH_AA``: The maximum width and height of a smoothed point. +* ``MAX_TEXTURE_ANISOTROPY``: The maximum level of anisotropy that can be + applied to anisotropically filtered textures. +* ``MAX_TEXTURE_LOD_BIAS``: The maximum :term:`LOD` bias that may be applied + to filtered textures. +* ``GUARD_BAND_LEFT``, ``GUARD_BAND_TOP``, ``GUARD_BAND_RIGHT``, + ``GUARD_BAND_BOTTOM``: XXX + +Fragment shader limits: + +* ``PIPE_CAP_MAX_FS_INSTRUCTIONS``: The maximum number of instructions. +* ``PIPE_CAP_MAX_FS_ALU_INSTRUCTIONS``: The maximum number of arithmetic instructions. +* ``PIPE_CAP_MAX_FS_TEX_INSTRUCTIONS``: The maximum number of texture instructions. +* ``PIPE_CAP_MAX_FS_TEX_INDIRECTIONS``: The maximum number of texture indirections. +* ``PIPE_CAP_MAX_FS_CONTROL_FLOW_DEPTH``: The maximum nested control flow depth. +* ``PIPE_CAP_MAX_FS_INPUTS``: The maximum number of input registers. +* ``PIPE_CAP_MAX_FS_CONSTS``: The maximum number of constants. +* ``PIPE_CAP_MAX_FS_TEMPS``: The maximum number of temporary registers. +* ``PIPE_CAP_MAX_FS_ADDRS``: The maximum number of address registers. +* ``PIPE_CAP_MAX_FS_PREDS``: The maximum number of predicate registers. + +Vertex shader limits: + +* ``PIPE_CAP_MAX_VS_*``: Identical to ``PIPE_CAP_MAX_FS_*``. + + +.. _pipe_bind: + +PIPE_BIND_* +^^^^^^^^^^^ + +These flags indicate how a resource will be used and are specified at resource +creation time. Resources may be used in different roles +during their lifecycle. Bind flags are cumulative and may be combined to create +a resource which can be used for multiple things. +Depending on the pipe driver's memory management and these bind flags, +resources might be created and handled quite differently. + +* ``PIPE_BIND_RENDER_TARGET``: A color buffer or pixel buffer which will be + rendered to. Any surface/resource attached to pipe_framebuffer_state::cbufs + must have this flag set. +* ``PIPE_BIND_DEPTH_STENCIL``: A depth (Z) buffer and/or stencil buffer. Any + depth/stencil surface/resource attached to pipe_framebuffer_state::zsbuf must + have this flag set. +* ``PIPE_BIND_DISPLAY_TARGET``: A surface that can be presented to screen. Arguments to + pipe_screen::flush_front_buffer must have this flag set. +* ``PIPE_BIND_SAMPLER_VIEW``: A texture that may be sampled from in a fragment + or vertex shader. +* ``PIPE_BIND_VERTEX_BUFFER``: A vertex buffer. +* ``PIPE_BIND_INDEX_BUFFER``: An vertex index/element buffer. +* ``PIPE_BIND_CONSTANT_BUFFER``: A buffer of shader constants. +* ``PIPE_BIND_TRANSFER_WRITE``: A transfer object which will be written to. +* ``PIPE_BIND_TRANSFER_READ``: A transfer object which will be read from. +* ``PIPE_BIND_CUSTOM``: +* ``PIPE_BIND_SCANOUT``: A front color buffer or scanout buffer. +* ``PIPE_BIND_SHARED``: A sharable buffer that can be given to another + process. + +.. _pipe_usage: + +PIPE_USAGE_* +^^^^^^^^^^^^ + +The PIPE_USAGE enums are hints about the expected usage pattern of a resource. + +* ``PIPE_USAGE_DEFAULT``: Expect many uploads to the resource, intermixed with draws. +* ``PIPE_USAGE_DYNAMIC``: Expect many uploads to the resource, intermixed with draws. +* ``PIPE_USAGE_STATIC``: Same as immutable (?) +* ``PIPE_USAGE_IMMUTABLE``: Resource will not be changed after first upload. +* ``PIPE_USAGE_STREAM``: Upload will be followed by draw, followed by upload, ... + + + +PIPE_TEXTURE_GEOM +^^^^^^^^^^^^^^^^^ + +These flags are used when querying whether a particular pipe_format is +supported by the driver (with the `is_format_supported` function). +Some formats may only be supported for certain kinds of textures. +For example, a compressed format might only be used for POT textures. + +* ``PIPE_TEXTURE_GEOM_NON_SQUARE``: The texture may not be square +* ``PIPE_TEXTURE_GEOM_NON_POWER_OF_TWO``: The texture dimensions may not be + powers of two. + + +Methods +------- + +XXX to-do + +get_name +^^^^^^^^ + +Returns an identifying name for the screen. + +get_vendor +^^^^^^^^^^ + +Returns the screen vendor. + +.. _get_param: + +get_param +^^^^^^^^^ + +Get an integer/boolean screen parameter. + +**param** is one of the :ref:`PIPE_CAP` names. + +.. _get_paramf: + +get_paramf +^^^^^^^^^^ + +Get a floating-point screen parameter. + +**param** is one of the :ref:`PIPE_CAP` names. + +context_create +^^^^^^^^^^^^^^ + +Create a pipe_context. + +**priv** is private data of the caller, which may be put to various +unspecified uses, typically to do with implementing swapbuffers +and/or front-buffer rendering. + +is_format_supported +^^^^^^^^^^^^^^^^^^^ + +Determine if a resource in the given format can be used in a specific manner. + +**format** the resource format + +**target** one of the PIPE_TEXTURE_x flags + +**sample_count** the number of samples. 0 and 1 mean no multisampling, +the maximum allowed legal value is 32. + +**bindings** is a bitmask of :ref:`PIPE_BIND` flags. + +**geom_flags** is a bitmask of PIPE_TEXTURE_GEOM_x flags. + +Returns TRUE if all usages can be satisfied. + +.. _resource_create: + +resource_create +^^^^^^^^^^^^^^^ + +Create a new resource from a template. +The following fields of the pipe_resource must be specified in the template: + +target + +format + +width0 + +height0 + +depth0 + +last_level + +nr_samples + +usage + +bind + +flags + + + +resource_destroy +^^^^^^^^^^^^^^^^ + +Destroy a resource. A resource is destroyed if it has no more references. + --- mesa-7.9+repack.orig/src/gallium/docs/source/debugging.rst +++ mesa-7.9+repack/src/gallium/docs/source/debugging.rst @@ -0,0 +1,105 @@ +Debugging +========= + +Debugging utilities in gallium. + +Debug Variables +^^^^^^^^^^^^^^^ + +All drivers respond to a set of common debug environment variables, as well as +some driver-specific variables. Set them as normal environment variables for +the platform or operating system you are running. For example, for Linux this +can be done by typing "export var=value" into a console and then running the +program from that console. + +Common +"""""" + +.. envvar:: GALLIUM_PRINT_OPTIONS (false) + +This option controls if the debug variables should be printed to stderr. This +is probably the most useful variable, since it allows you to find which +variables a driver uses. + +.. envvar:: GALLIUM_GALAHAD (false) + +Controls if the :ref:`galahad` sanity checker module should be used. + +.. envvar:: GALLIUM_RBUG (false) + +Controls if the :ref:`rbug` should be used. + +.. envvar:: GALLIUM_TRACE ("") + +If set, this variable will cause the :ref:`Trace` output to be written to the +specified file. Paths may be relative or absolute; relative paths are relative +to the working directory. For example, setting it to "trace.xml" will cause +the trace to be written to a file of the same name in the working directory. + +.. envvar:: GALLIUM_DUMP_CPU (false) + +Dump information about the current CPU that the driver is running on. + +.. envvar:: TGSI_PRINT_SANITY (false) + +Gallium has a built-in shader sanity checker. This option controls whether +the shader sanity checker prints its warnings and errors to stderr. + +.. envvar:: DRAW_USE_LLVM (false) + +Whether the :ref:`Draw` module will attempt to use LLVM for vertex and geometry shaders. + + +State tracker-specific +"""""""""""""""""""""" + +.. envvar:: ST_DEBUG (0x0) + +Debug :ref:`flags` for the GL state tracker. + + +Driver-specific +""""""""""""""" + +.. envvar:: I915_DEBUG (0x0) + +Debug :ref:`flags` for the i915 driver. + +.. envvar:: I915_NO_HW (false) + +Stop the i915 driver from submitting commands to the hardware. + +.. envvar:: I915_DUMP_CMD (false) + +Dump all commands going to the hardware. + +.. envvar:: LP_DEBUG (0x0) + +Debug :ref:`flags` for the llvmpipe driver. + +.. envvar:: LP_NUM_THREADS (number of CPUs) + +Number of threads that the llvmpipe driver should use. + + +.. _flags: + +Flags +""""" + +The variables of type "flags" all take a string with comma-separated flags to +enable different debugging for different parts of the drivers or state +tracker. If set to "help", the driver will print a list of flags which the +variable accepts. Order does not matter. + + +.. _rbug: + +Remote Debugger +^^^^^^^^^^^^^^^ + +The remote debugger, commonly known as rbug, allows for runtime inspections of +:ref:`Context`, :ref:`Screen`, :ref:`Resource` and :ref:`Shader` objects; and +pausing and stepping of :ref:`Draw` calls. Is used with rbug-gui which is +hosted outside of the main mesa repository. rbug is can be used over a network +connection, so the debugger does not need to be on the same machine. --- mesa-7.9+repack.orig/src/gallium/docs/source/tgsi.rst +++ mesa-7.9+repack/src/gallium/docs/source/tgsi.rst @@ -0,0 +1,1501 @@ +TGSI +==== + +TGSI, Tungsten Graphics Shader Infrastructure, is an intermediate language +for describing shaders. Since Gallium is inherently shaderful, shaders are +an important part of the API. TGSI is the only intermediate representation +used by all drivers. + +Basics +------ + +All TGSI instructions, known as *opcodes*, operate on arbitrary-precision +floating-point four-component vectors. An opcode may have up to one +destination register, known as *dst*, and between zero and three source +registers, called *src0* through *src2*, or simply *src* if there is only +one. + +Some instructions, like :opcode:`I2F`, permit re-interpretation of vector +components as integers. Other instructions permit using registers as +two-component vectors with double precision; see :ref:`Double Opcodes`. + +When an instruction has a scalar result, the result is usually copied into +each of the components of *dst*. When this happens, the result is said to be +*replicated* to *dst*. :opcode:`RCP` is one such instruction. + +Instruction Set +--------------- + +Core ISA +^^^^^^^^^^^^^^^^^^^^^^^^^ + +These opcodes are guaranteed to be available regardless of the driver being +used. + +.. opcode:: ARL - Address Register Load + +.. math:: + + dst.x = \lfloor src.x\rfloor + + dst.y = \lfloor src.y\rfloor + + dst.z = \lfloor src.z\rfloor + + dst.w = \lfloor src.w\rfloor + + +.. opcode:: MOV - Move + +.. math:: + + dst.x = src.x + + dst.y = src.y + + dst.z = src.z + + dst.w = src.w + + +.. opcode:: LIT - Light Coefficients + +.. math:: + + dst.x = 1 + + dst.y = max(src.x, 0) + + dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0 + + dst.w = 1 + + +.. opcode:: RCP - Reciprocal + +This instruction replicates its result. + +.. math:: + + dst = \frac{1}{src.x} + + +.. opcode:: RSQ - Reciprocal Square Root + +This instruction replicates its result. + +.. math:: + + dst = \frac{1}{\sqrt{|src.x|}} + + +.. opcode:: EXP - Approximate Exponential Base 2 + +.. math:: + + dst.x = 2^{\lfloor src.x\rfloor} + + dst.y = src.x - \lfloor src.x\rfloor + + dst.z = 2^{src.x} + + dst.w = 1 + + +.. opcode:: LOG - Approximate Logarithm Base 2 + +.. math:: + + dst.x = \lfloor\log_2{|src.x|}\rfloor + + dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}} + + dst.z = \log_2{|src.x|} + + dst.w = 1 + + +.. opcode:: MUL - Multiply + +.. math:: + + dst.x = src0.x \times src1.x + + dst.y = src0.y \times src1.y + + dst.z = src0.z \times src1.z + + dst.w = src0.w \times src1.w + + +.. opcode:: ADD - Add + +.. math:: + + dst.x = src0.x + src1.x + + dst.y = src0.y + src1.y + + dst.z = src0.z + src1.z + + dst.w = src0.w + src1.w + + +.. opcode:: DP3 - 3-component Dot Product + +This instruction replicates its result. + +.. math:: + + dst = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + + +.. opcode:: DP4 - 4-component Dot Product + +This instruction replicates its result. + +.. math:: + + dst = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w + + +.. opcode:: DST - Distance Vector + +.. math:: + + dst.x = 1 + + dst.y = src0.y \times src1.y + + dst.z = src0.z + + dst.w = src1.w + + +.. opcode:: MIN - Minimum + +.. math:: + + dst.x = min(src0.x, src1.x) + + dst.y = min(src0.y, src1.y) + + dst.z = min(src0.z, src1.z) + + dst.w = min(src0.w, src1.w) + + +.. opcode:: MAX - Maximum + +.. math:: + + dst.x = max(src0.x, src1.x) + + dst.y = max(src0.y, src1.y) + + dst.z = max(src0.z, src1.z) + + dst.w = max(src0.w, src1.w) + + +.. opcode:: SLT - Set On Less Than + +.. math:: + + dst.x = (src0.x < src1.x) ? 1 : 0 + + dst.y = (src0.y < src1.y) ? 1 : 0 + + dst.z = (src0.z < src1.z) ? 1 : 0 + + dst.w = (src0.w < src1.w) ? 1 : 0 + + +.. opcode:: SGE - Set On Greater Equal Than + +.. math:: + + dst.x = (src0.x >= src1.x) ? 1 : 0 + + dst.y = (src0.y >= src1.y) ? 1 : 0 + + dst.z = (src0.z >= src1.z) ? 1 : 0 + + dst.w = (src0.w >= src1.w) ? 1 : 0 + + +.. opcode:: MAD - Multiply And Add + +.. math:: + + dst.x = src0.x \times src1.x + src2.x + + dst.y = src0.y \times src1.y + src2.y + + dst.z = src0.z \times src1.z + src2.z + + dst.w = src0.w \times src1.w + src2.w + + +.. opcode:: SUB - Subtract + +.. math:: + + dst.x = src0.x - src1.x + + dst.y = src0.y - src1.y + + dst.z = src0.z - src1.z + + dst.w = src0.w - src1.w + + +.. opcode:: LRP - Linear Interpolate + +.. math:: + + dst.x = src0.x \times src1.x + (1 - src0.x) \times src2.x + + dst.y = src0.y \times src1.y + (1 - src0.y) \times src2.y + + dst.z = src0.z \times src1.z + (1 - src0.z) \times src2.z + + dst.w = src0.w \times src1.w + (1 - src0.w) \times src2.w + + +.. opcode:: CND - Condition + +.. math:: + + dst.x = (src2.x > 0.5) ? src0.x : src1.x + + dst.y = (src2.y > 0.5) ? src0.y : src1.y + + dst.z = (src2.z > 0.5) ? src0.z : src1.z + + dst.w = (src2.w > 0.5) ? src0.w : src1.w + + +.. opcode:: DP2A - 2-component Dot Product And Add + +.. math:: + + dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x + + dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x + + +.. opcode:: FRC - Fraction + +.. math:: + + dst.x = src.x - \lfloor src.x\rfloor + + dst.y = src.y - \lfloor src.y\rfloor + + dst.z = src.z - \lfloor src.z\rfloor + + dst.w = src.w - \lfloor src.w\rfloor + + +.. opcode:: CLAMP - Clamp + +.. math:: + + dst.x = clamp(src0.x, src1.x, src2.x) + + dst.y = clamp(src0.y, src1.y, src2.y) + + dst.z = clamp(src0.z, src1.z, src2.z) + + dst.w = clamp(src0.w, src1.w, src2.w) + + +.. opcode:: FLR - Floor + +This is identical to :opcode:`ARL`. + +.. math:: + + dst.x = \lfloor src.x\rfloor + + dst.y = \lfloor src.y\rfloor + + dst.z = \lfloor src.z\rfloor + + dst.w = \lfloor src.w\rfloor + + +.. opcode:: ROUND - Round + +.. math:: + + dst.x = round(src.x) + + dst.y = round(src.y) + + dst.z = round(src.z) + + dst.w = round(src.w) + + +.. opcode:: EX2 - Exponential Base 2 + +This instruction replicates its result. + +.. math:: + + dst = 2^{src.x} + + +.. opcode:: LG2 - Logarithm Base 2 + +This instruction replicates its result. + +.. math:: + + dst = \log_2{src.x} + + +.. opcode:: POW - Power + +This instruction replicates its result. + +.. math:: + + dst = src0.x^{src1.x} + +.. opcode:: XPD - Cross Product + +.. math:: + + dst.x = src0.y \times src1.z - src1.y \times src0.z + + dst.y = src0.z \times src1.x - src1.z \times src0.x + + dst.z = src0.x \times src1.y - src1.x \times src0.y + + dst.w = 1 + + +.. opcode:: ABS - Absolute + +.. math:: + + dst.x = |src.x| + + dst.y = |src.y| + + dst.z = |src.z| + + dst.w = |src.w| + + +.. opcode:: RCC - Reciprocal Clamped + +This instruction replicates its result. + +XXX cleanup on aisle three + +.. math:: + + dst = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020) + + +.. opcode:: DPH - Homogeneous Dot Product + +This instruction replicates its result. + +.. math:: + + dst = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w + + +.. opcode:: COS - Cosine + +This instruction replicates its result. + +.. math:: + + dst = \cos{src.x} + + +.. opcode:: DDX - Derivative Relative To X + +.. math:: + + dst.x = partialx(src.x) + + dst.y = partialx(src.y) + + dst.z = partialx(src.z) + + dst.w = partialx(src.w) + + +.. opcode:: DDY - Derivative Relative To Y + +.. math:: + + dst.x = partialy(src.x) + + dst.y = partialy(src.y) + + dst.z = partialy(src.z) + + dst.w = partialy(src.w) + + +.. opcode:: KILP - Predicated Discard + + discard + + +.. opcode:: PK2H - Pack Two 16-bit Floats + + TBD + + +.. opcode:: PK2US - Pack Two Unsigned 16-bit Scalars + + TBD + + +.. opcode:: PK4B - Pack Four Signed 8-bit Scalars + + TBD + + +.. opcode:: PK4UB - Pack Four Unsigned 8-bit Scalars + + TBD + + +.. opcode:: RFL - Reflection Vector + +.. math:: + + dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x + + dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y + + dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z + + dst.w = 1 + +.. note:: + + Considered for removal. + + +.. opcode:: SEQ - Set On Equal + +.. math:: + + dst.x = (src0.x == src1.x) ? 1 : 0 + + dst.y = (src0.y == src1.y) ? 1 : 0 + + dst.z = (src0.z == src1.z) ? 1 : 0 + + dst.w = (src0.w == src1.w) ? 1 : 0 + + +.. opcode:: SFL - Set On False + +This instruction replicates its result. + +.. math:: + + dst = 0 + +.. note:: + + Considered for removal. + + +.. opcode:: SGT - Set On Greater Than + +.. math:: + + dst.x = (src0.x > src1.x) ? 1 : 0 + + dst.y = (src0.y > src1.y) ? 1 : 0 + + dst.z = (src0.z > src1.z) ? 1 : 0 + + dst.w = (src0.w > src1.w) ? 1 : 0 + + +.. opcode:: SIN - Sine + +This instruction replicates its result. + +.. math:: + + dst = \sin{src.x} + + +.. opcode:: SLE - Set On Less Equal Than + +.. math:: + + dst.x = (src0.x <= src1.x) ? 1 : 0 + + dst.y = (src0.y <= src1.y) ? 1 : 0 + + dst.z = (src0.z <= src1.z) ? 1 : 0 + + dst.w = (src0.w <= src1.w) ? 1 : 0 + + +.. opcode:: SNE - Set On Not Equal + +.. math:: + + dst.x = (src0.x != src1.x) ? 1 : 0 + + dst.y = (src0.y != src1.y) ? 1 : 0 + + dst.z = (src0.z != src1.z) ? 1 : 0 + + dst.w = (src0.w != src1.w) ? 1 : 0 + + +.. opcode:: STR - Set On True + +This instruction replicates its result. + +.. math:: + + dst = 1 + + +.. opcode:: TEX - Texture Lookup + + TBD + + +.. opcode:: TXD - Texture Lookup with Derivatives + + TBD + + +.. opcode:: TXP - Projective Texture Lookup + + TBD + + +.. opcode:: UP2H - Unpack Two 16-Bit Floats + + TBD + +.. note:: + + Considered for removal. + +.. opcode:: UP2US - Unpack Two Unsigned 16-Bit Scalars + + TBD + +.. note:: + + Considered for removal. + +.. opcode:: UP4B - Unpack Four Signed 8-Bit Values + + TBD + +.. note:: + + Considered for removal. + +.. opcode:: UP4UB - Unpack Four Unsigned 8-Bit Scalars + + TBD + +.. note:: + + Considered for removal. + +.. opcode:: X2D - 2D Coordinate Transformation + +.. math:: + + dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y + + dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w + + dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y + + dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w + +.. note:: + + Considered for removal. + + +.. opcode:: ARA - Address Register Add + + TBD + +.. note:: + + Considered for removal. + +.. opcode:: ARR - Address Register Load With Round + +.. math:: + + dst.x = round(src.x) + + dst.y = round(src.y) + + dst.z = round(src.z) + + dst.w = round(src.w) + + +.. opcode:: BRA - Branch + + pc = target + +.. note:: + + Considered for removal. + +.. opcode:: CAL - Subroutine Call + + push(pc) + pc = target + + +.. opcode:: RET - Subroutine Call Return + + pc = pop() + + Potential restrictions: + * Only occurs at end of function. + +.. opcode:: SSG - Set Sign + +.. math:: + + dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0 + + dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0 + + dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0 + + dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0 + + +.. opcode:: CMP - Compare + +.. math:: + + dst.x = (src0.x < 0) ? src1.x : src2.x + + dst.y = (src0.y < 0) ? src1.y : src2.y + + dst.z = (src0.z < 0) ? src1.z : src2.z + + dst.w = (src0.w < 0) ? src1.w : src2.w + + +.. opcode:: KIL - Conditional Discard + +.. math:: + + if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0) + discard + endif + + +.. opcode:: SCS - Sine Cosine + +.. math:: + + dst.x = \cos{src.x} + + dst.y = \sin{src.x} + + dst.z = 0 + + dst.y = 1 + + +.. opcode:: TXB - Texture Lookup With Bias + + TBD + + +.. opcode:: NRM - 3-component Vector Normalise + +.. math:: + + dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z) + + dst.w = 1 + + +.. opcode:: DIV - Divide + +.. math:: + + dst.x = \frac{src0.x}{src1.x} + + dst.y = \frac{src0.y}{src1.y} + + dst.z = \frac{src0.z}{src1.z} + + dst.w = \frac{src0.w}{src1.w} + + +.. opcode:: DP2 - 2-component Dot Product + +This instruction replicates its result. + +.. math:: + + dst = src0.x \times src1.x + src0.y \times src1.y + + +.. opcode:: TXL - Texture Lookup With LOD + + TBD + + +.. opcode:: BRK - Break + + TBD + + +.. opcode:: IF - If + + TBD + + +.. opcode:: ELSE - Else + + TBD + + +.. opcode:: ENDIF - End If + + TBD + + +.. opcode:: PUSHA - Push Address Register On Stack + + push(src.x) + push(src.y) + push(src.z) + push(src.w) + +.. note:: + + Considered for cleanup. + +.. note:: + + Considered for removal. + +.. opcode:: POPA - Pop Address Register From Stack + + dst.w = pop() + dst.z = pop() + dst.y = pop() + dst.x = pop() + +.. note:: + + Considered for cleanup. + +.. note:: + + Considered for removal. + + +Compute ISA +^^^^^^^^^^^^^^^^^^^^^^^^ + +These opcodes are primarily provided for special-use computational shaders. +Support for these opcodes indicated by a special pipe capability bit (TBD). + +XXX so let's discuss it, yeah? + +.. opcode:: CEIL - Ceiling + +.. math:: + + dst.x = \lceil src.x\rceil + + dst.y = \lceil src.y\rceil + + dst.z = \lceil src.z\rceil + + dst.w = \lceil src.w\rceil + + +.. opcode:: I2F - Integer To Float + +.. math:: + + dst.x = (float) src.x + + dst.y = (float) src.y + + dst.z = (float) src.z + + dst.w = (float) src.w + + +.. opcode:: NOT - Bitwise Not + +.. math:: + + dst.x = ~src.x + + dst.y = ~src.y + + dst.z = ~src.z + + dst.w = ~src.w + + +.. opcode:: TRUNC - Truncate + +.. math:: + + dst.x = trunc(src.x) + + dst.y = trunc(src.y) + + dst.z = trunc(src.z) + + dst.w = trunc(src.w) + + +.. opcode:: SHL - Shift Left + +.. math:: + + dst.x = src0.x << src1.x + + dst.y = src0.y << src1.x + + dst.z = src0.z << src1.x + + dst.w = src0.w << src1.x + + +.. opcode:: SHR - Shift Right + +.. math:: + + dst.x = src0.x >> src1.x + + dst.y = src0.y >> src1.x + + dst.z = src0.z >> src1.x + + dst.w = src0.w >> src1.x + + +.. opcode:: AND - Bitwise And + +.. math:: + + dst.x = src0.x & src1.x + + dst.y = src0.y & src1.y + + dst.z = src0.z & src1.z + + dst.w = src0.w & src1.w + + +.. opcode:: OR - Bitwise Or + +.. math:: + + dst.x = src0.x | src1.x + + dst.y = src0.y | src1.y + + dst.z = src0.z | src1.z + + dst.w = src0.w | src1.w + + +.. opcode:: MOD - Modulus + +.. math:: + + dst.x = src0.x \bmod src1.x + + dst.y = src0.y \bmod src1.y + + dst.z = src0.z \bmod src1.z + + dst.w = src0.w \bmod src1.w + + +.. opcode:: XOR - Bitwise Xor + +.. math:: + + dst.x = src0.x \oplus src1.x + + dst.y = src0.y \oplus src1.y + + dst.z = src0.z \oplus src1.z + + dst.w = src0.w \oplus src1.w + + +.. opcode:: SAD - Sum Of Absolute Differences + +.. math:: + + dst.x = |src0.x - src1.x| + src2.x + + dst.y = |src0.y - src1.y| + src2.y + + dst.z = |src0.z - src1.z| + src2.z + + dst.w = |src0.w - src1.w| + src2.w + + +.. opcode:: TXF - Texel Fetch + + TBD + + +.. opcode:: TXQ - Texture Size Query + + TBD + + +.. opcode:: CONT - Continue + + TBD + +.. note:: + + Support for CONT is determined by a special capability bit, + ``TGSI_CONT_SUPPORTED``. See :ref:`Screen` for more information. + + +Geometry ISA +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These opcodes are only supported in geometry shaders; they have no meaning +in any other type of shader. + +.. opcode:: EMIT - Emit + + TBD + + +.. opcode:: ENDPRIM - End Primitive + + TBD + + +GLSL ISA +^^^^^^^^^^ + +These opcodes are part of :term:`GLSL`'s opcode set. Support for these +opcodes is determined by a special capability bit, ``GLSL``. + +.. opcode:: BGNLOOP - Begin a Loop + + TBD + + +.. opcode:: BGNSUB - Begin Subroutine + + TBD + + +.. opcode:: ENDLOOP - End a Loop + + TBD + + +.. opcode:: ENDSUB - End Subroutine + + TBD + + +.. opcode:: NOP - No Operation + + Do nothing. + + +.. opcode:: NRM4 - 4-component Vector Normalise + +This instruction replicates its result. + +.. math:: + + dst = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w} + + +ps_2_x +^^^^^^^^^^^^ + +XXX wait what + +.. opcode:: CALLNZ - Subroutine Call If Not Zero + + TBD + + +.. opcode:: IFC - If + + TBD + + +.. opcode:: BREAKC - Break Conditional + + TBD + +.. _doubleopcodes: + +Double ISA +^^^^^^^^^^^^^^^ + +The double-precision opcodes reinterpret four-component vectors into +two-component vectors with doubled precision in each component. + +Support for these opcodes is XXX undecided. :T + +.. opcode:: DADD - Add + +.. math:: + + dst.xy = src0.xy + src1.xy + + dst.zw = src0.zw + src1.zw + + +.. opcode:: DDIV - Divide + +.. math:: + + dst.xy = src0.xy / src1.xy + + dst.zw = src0.zw / src1.zw + +.. opcode:: DSEQ - Set on Equal + +.. math:: + + dst.xy = src0.xy == src1.xy ? 1.0F : 0.0F + + dst.zw = src0.zw == src1.zw ? 1.0F : 0.0F + +.. opcode:: DSLT - Set on Less than + +.. math:: + + dst.xy = src0.xy < src1.xy ? 1.0F : 0.0F + + dst.zw = src0.zw < src1.zw ? 1.0F : 0.0F + +.. opcode:: DFRAC - Fraction + +.. math:: + + dst.xy = src.xy - \lfloor src.xy\rfloor + + dst.zw = src.zw - \lfloor src.zw\rfloor + + +.. opcode:: DFRACEXP - Convert Number to Fractional and Integral Components + +Like the ``frexp()`` routine in many math libraries, this opcode stores the +exponent of its source to ``dst0``, and the significand to ``dst1``, such that +:math:`dst1 \times 2^{dst0} = src` . + +.. math:: + + dst0.xy = exp(src.xy) + + dst1.xy = frac(src.xy) + + dst0.zw = exp(src.zw) + + dst1.zw = frac(src.zw) + +.. opcode:: DLDEXP - Multiply Number by Integral Power of 2 + +This opcode is the inverse of :opcode:`DFRACEXP`. + +.. math:: + + dst.xy = src0.xy \times 2^{src1.xy} + + dst.zw = src0.zw \times 2^{src1.zw} + +.. opcode:: DMIN - Minimum + +.. math:: + + dst.xy = min(src0.xy, src1.xy) + + dst.zw = min(src0.zw, src1.zw) + +.. opcode:: DMAX - Maximum + +.. math:: + + dst.xy = max(src0.xy, src1.xy) + + dst.zw = max(src0.zw, src1.zw) + +.. opcode:: DMUL - Multiply + +.. math:: + + dst.xy = src0.xy \times src1.xy + + dst.zw = src0.zw \times src1.zw + + +.. opcode:: DMAD - Multiply And Add + +.. math:: + + dst.xy = src0.xy \times src1.xy + src2.xy + + dst.zw = src0.zw \times src1.zw + src2.zw + + +.. opcode:: DRCP - Reciprocal + +.. math:: + + dst.xy = \frac{1}{src.xy} + + dst.zw = \frac{1}{src.zw} + +.. opcode:: DSQRT - Square Root + +.. math:: + + dst.xy = \sqrt{src.xy} + + dst.zw = \sqrt{src.zw} + + +Explanation of symbols used +------------------------------ + + +Functions +^^^^^^^^^^^^^^ + + + :math:`|x|` Absolute value of `x`. + + :math:`\lceil x \rceil` Ceiling of `x`. + + clamp(x,y,z) Clamp x between y and z. + (x < y) ? y : (x > z) ? z : x + + :math:`\lfloor x\rfloor` Floor of `x`. + + :math:`\log_2{x}` Logarithm of `x`, base 2. + + max(x,y) Maximum of x and y. + (x > y) ? x : y + + min(x,y) Minimum of x and y. + (x < y) ? x : y + + partialx(x) Derivative of x relative to fragment's X. + + partialy(x) Derivative of x relative to fragment's Y. + + pop() Pop from stack. + + :math:`x^y` `x` to the power `y`. + + push(x) Push x on stack. + + round(x) Round x. + + trunc(x) Truncate x, i.e. drop the fraction bits. + + +Keywords +^^^^^^^^^^^^^ + + + discard Discard fragment. + + pc Program counter. + + target Label of target instruction. + + +Other tokens +--------------- + + +Declaration +^^^^^^^^^^^ + + +Declares a register that is will be referenced as an operand in Instruction +tokens. + +File field contains register file that is being declared and is one +of TGSI_FILE. + +UsageMask field specifies which of the register components can be accessed +and is one of TGSI_WRITEMASK. + +Interpolate field is only valid for fragment shader INPUT register files. +It specifes the way input is being interpolated by the rasteriser and is one +of TGSI_INTERPOLATE. + +If Dimension flag is set to 1, a Declaration Dimension token follows. + +If Semantic flag is set to 1, a Declaration Semantic token follows. + +CylindricalWrap bitfield is only valid for fragment shader INPUT register +files. It specifies which register components should be subject to cylindrical +wrapping when interpolating by the rasteriser. If TGSI_CYLINDRICAL_WRAP_X +is set to 1, the X component should be interpolated according to cylindrical +wrapping rules. + + +Declaration Semantic +^^^^^^^^^^^^^^^^^^^^^^^^ + + Vertex and fragment shader input and output registers may be labeled + with semantic information consisting of a name and index. + + Follows Declaration token if Semantic bit is set. + + Since its purpose is to link a shader with other stages of the pipeline, + it is valid to follow only those Declaration tokens that declare a register + either in INPUT or OUTPUT file. + + SemanticName field contains the semantic name of the register being declared. + There is no default value. + + SemanticIndex is an optional subscript that can be used to distinguish + different register declarations with the same semantic name. The default value + is 0. + + The meanings of the individual semantic names are explained in the following + sections. + +TGSI_SEMANTIC_POSITION +"""""""""""""""""""""" + +For vertex shaders, TGSI_SEMANTIC_POSITION indicates the vertex shader +output register which contains the homogeneous vertex position in the clip +space coordinate system. After clipping, the X, Y and Z components of the +vertex will be divided by the W value to get normalized device coordinates. + +For fragment shaders, TGSI_SEMANTIC_POSITION is used to indicate that +fragment shader input contains the fragment's window position. The X +component starts at zero and always increases from left to right. +The Y component starts at zero and always increases but Y=0 may either +indicate the top of the window or the bottom depending on the fragment +coordinate origin convention (see TGSI_PROPERTY_FS_COORD_ORIGIN). +The Z coordinate ranges from 0 to 1 to represent depth from the front +to the back of the Z buffer. The W component contains the reciprocol +of the interpolated vertex position W component. + +Fragment shaders may also declare an output register with +TGSI_SEMANTIC_POSITION. Only the Z component is writable. This allows +the fragment shader to change the fragment's Z position. + + + +TGSI_SEMANTIC_COLOR +""""""""""""""""""" + +For vertex shader outputs or fragment shader inputs/outputs, this +label indicates that the resister contains an R,G,B,A color. + +Several shader inputs/outputs may contain colors so the semantic index +is used to distinguish them. For example, color[0] may be the diffuse +color while color[1] may be the specular color. + +This label is needed so that the flat/smooth shading can be applied +to the right interpolants during rasterization. + + + +TGSI_SEMANTIC_BCOLOR +"""""""""""""""""""" + +Back-facing colors are only used for back-facing polygons, and are only valid +in vertex shader outputs. After rasterization, all polygons are front-facing +and COLOR and BCOLOR end up occupying the same slots in the fragment shader, +so all BCOLORs effectively become regular COLORs in the fragment shader. + + +TGSI_SEMANTIC_FOG +""""""""""""""""" + +Vertex shader inputs and outputs and fragment shader inputs may be +labeled with TGSI_SEMANTIC_FOG to indicate that the register contains +a fog coordinate in the form (F, 0, 0, 1). Typically, the fragment +shader will use the fog coordinate to compute a fog blend factor which +is used to blend the normal fragment color with a constant fog color. + +Only the first component matters when writing from the vertex shader; +the driver will ensure that the coordinate is in this format when used +as a fragment shader input. + + +TGSI_SEMANTIC_PSIZE +""""""""""""""""""" + +Vertex shader input and output registers may be labeled with +TGIS_SEMANTIC_PSIZE to indicate that the register contains a point size +in the form (S, 0, 0, 1). The point size controls the width or diameter +of points for rasterization. This label cannot be used in fragment +shaders. + +When using this semantic, be sure to set the appropriate state in the +:ref:`rasterizer` first. + + +TGSI_SEMANTIC_GENERIC +""""""""""""""""""""" + +All vertex/fragment shader inputs/outputs not labeled with any other +semantic label can be considered to be generic attributes. Typical +uses of generic inputs/outputs are texcoords and user-defined values. + + +TGSI_SEMANTIC_NORMAL +"""""""""""""""""""" + +Indicates that a vertex shader input is a normal vector. This is +typically only used for legacy graphics APIs. + + +TGSI_SEMANTIC_FACE +"""""""""""""""""" + +This label applies to fragment shader inputs only and indicates that +the register contains front/back-face information of the form (F, 0, +0, 1). The first component will be positive when the fragment belongs +to a front-facing polygon, and negative when the fragment belongs to a +back-facing polygon. + + +TGSI_SEMANTIC_EDGEFLAG +"""""""""""""""""""""" + +For vertex shaders, this sematic label indicates that an input or +output is a boolean edge flag. The register layout is [F, x, x, x] +where F is 0.0 or 1.0 and x = don't care. Normally, the vertex shader +simply copies the edge flag input to the edgeflag output. + +Edge flags are used to control which lines or points are actually +drawn when the polygon mode converts triangles/quads/polygons into +points or lines. + + + +Properties +^^^^^^^^^^^^^^^^^^^^^^^^ + + + Properties are general directives that apply to the whole TGSI program. + +FS_COORD_ORIGIN +""""""""""""""" + +Specifies the fragment shader TGSI_SEMANTIC_POSITION coordinate origin. +The default value is UPPER_LEFT. + +If UPPER_LEFT, the position will be (0,0) at the upper left corner and +increase downward and rightward. +If LOWER_LEFT, the position will be (0,0) at the lower left corner and +increase upward and rightward. + +OpenGL defaults to LOWER_LEFT, and is configurable with the +GL_ARB_fragment_coord_conventions extension. + +DirectX 9/10 use UPPER_LEFT. + +FS_COORD_PIXEL_CENTER +""""""""""""""""""""" + +Specifies the fragment shader TGSI_SEMANTIC_POSITION pixel center convention. +The default value is HALF_INTEGER. + +If HALF_INTEGER, the fractionary part of the position will be 0.5 +If INTEGER, the fractionary part of the position will be 0.0 + +Note that this does not affect the set of fragments generated by +rasterization, which is instead controlled by gl_rasterization_rules in the +rasterizer. + +OpenGL defaults to HALF_INTEGER, and is configurable with the +GL_ARB_fragment_coord_conventions extension. + +DirectX 9 uses INTEGER. +DirectX 10 uses HALF_INTEGER. + + + +Texture Sampling and Texture Formats +------------------------------------ + +This table shows how texture image components are returned as (x,y,z,w) tuples +by TGSI texture instructions, such as :opcode:`TEX`, :opcode:`TXD`, and +:opcode:`TXP`. For reference, OpenGL and Direct3D conventions are shown as +well. + ++--------------------+--------------+--------------------+--------------+ +| Texture Components | Gallium | OpenGL | Direct3D 9 | ++====================+==============+====================+==============+ +| R | (r, 0, 0, 1) | (r, 0, 0, 1) | (r, 1, 1, 1) | ++--------------------+--------------+--------------------+--------------+ +| RG | (r, g, 0, 1) | (r, g, 0, 1) | (r, g, 1, 1) | ++--------------------+--------------+--------------------+--------------+ +| RGB | (r, g, b, 1) | (r, g, b, 1) | (r, g, b, 1) | ++--------------------+--------------+--------------------+--------------+ +| RGBA | (r, g, b, a) | (r, g, b, a) | (r, g, b, a) | ++--------------------+--------------+--------------------+--------------+ +| A | (0, 0, 0, a) | (0, 0, 0, a) | (0, 0, 0, a) | ++--------------------+--------------+--------------------+--------------+ +| L | (l, l, l, 1) | (l, l, l, 1) | (l, l, l, 1) | ++--------------------+--------------+--------------------+--------------+ +| LA | (l, l, l, a) | (l, l, l, a) | (l, l, l, a) | ++--------------------+--------------+--------------------+--------------+ +| I | (i, i, i, i) | (i, i, i, i) | N/A | ++--------------------+--------------+--------------------+--------------+ +| UV | XXX TBD | (0, 0, 0, 1) | (u, v, 1, 1) | +| | | [#envmap-bumpmap]_ | | ++--------------------+--------------+--------------------+--------------+ +| Z | XXX TBD | (z, z, z, 1) | (0, z, 0, 1) | +| | | [#depth-tex-mode]_ | | ++--------------------+--------------+--------------------+--------------+ + +.. [#envmap-bumpmap] http://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt +.. [#depth-tex-mode] the default is (z, z, z, 1) but may also be (0, 0, 0, z) + or (z, z, z, z) depending on the value of GL_DEPTH_TEXTURE_MODE. --- mesa-7.9+repack.orig/src/gallium/drivers/llvmpipe/README +++ mesa-7.9+repack/src/gallium/drivers/llvmpipe/README @@ -0,0 +1,166 @@ +LLVMPIPE -- a fork of softpipe that employs LLVM for code generation. + + +Status +====== + +Done so far is: + + - the whole fragment pipeline is code generated in a single function + + - input interpolation + + - depth testing + + - texture sampling + - 1D/2D/3D/cube maps supported + - all texture wrap modes supported + - all texture filtering modes supported + - perhaps not all texture formats yet supported + + - fragment shader TGSI translation + - same level of support as the TGSI SSE2 exec machine, with the exception + we don't fallback to TGSI interpretation when an unsupported opcode is + found, but just ignore it + - done in SoA layout + - input interpolation also code generated + + - alpha testing + + - blend (including logic ops) + - both in SoA and AoS layouts, but only the former used for now + + - code is generic + - intermediates can be vectors of floats, ubytes, fixed point, etc, and of + any width and length + - not all operations are implemented for these types yet though + +Most mesa/progs/demos/* work. + +To do (probably by this order): + + - code generate stipple and stencil testing + + - translate TGSI control flow instructions, and all other remaining opcodes + + - integrate with the draw module for VS code generation + + - code generate the triangle setup and rasterization + + +Requirements +============ + + - A x86 or amd64 processor. 64bit mode is preferred. + + Support for sse2 is strongly encouraged. Support for ssse3, and sse4.1 will + yield the most efficient code. The less features the CPU has the more + likely is that you ran into underperforming, buggy, or incomplete code. + + See /proc/cpuinfo to know what your CPU supports. + + - LLVM 2.6 (or later) + + For Linux, on a recent Debian based distribution do: + + aptitude install llvm-dev + + For Windows download pre-built MSVC 9.0 or MinGW binaries from + http://people.freedesktop.org/~jrfonseca/llvm/ and set the LLVM environment + variable to the extracted path. + + For MSVC there are two set of binaries: llvm-x.x-msvc32mt.7z and + llvm-x.x-msvc32mtd.7z . + + You have to set the LLVM=/path/to/llvm-x.x-msvc32mtd env var when passing + debug=yes to scons, and LLVM=/path/to/llvm-x.x-msvc32mt when building with + debug=no. This is necessary as LLVM builds as static library so the chosen + MS CRT must match. + + The version of LLVM from SVN ("2.7svn") from mid-March 2010 is pretty + stable and has some features not in version 2.6. + + - scons (optional) + + - udis86, http://udis86.sourceforge.net/ (optional). My personal repository + supports more opcodes which haven't been merged upstream yet: + + git clone git://anongit.freedesktop.org/~jrfonseca/udis86 + cd udis86 + ./autogen.sh + ./configure --with-pic + make + sudo make install + + +Building +======== + +To build everything on Linux invoke scons as: + + scons debug=yes statetrackers=mesa drivers=llvmpipe winsys=xlib dri=false + +Alternatively, you can build it with GNU make, if you prefer, by invoking it as + + make linux-llvm + +but the rest of these instructions assume that scons is used. + +For windows is everything the except except the winsys: + + scons debug=yes statetrackers=mesa drivers=llvmpipe winsys=gdi dri=false + +Using +===== + +On Linux, building will create a drop-in alternative for libGL.so. To use it +set the environment variables: + + export LD_LIBRARY_PATH=$PWD/build/linux-x86_64-debug/lib:$LD_LIBRARY_PATH + +or + + export LD_LIBRARY_PATH=$PWD/build/linux-x86-debug/lib:$LD_LIBRARY_PATH + +For performance evaluation pass debug=no to scons, and use the corresponding +lib directory without the "-debug" suffix. + +On Windows, building will create a drop-in alternative for opengl32.dll. To use +it put it in the same directory as the application. It can also be used by +replacing the native ICD driver, but it's quite an advanced usage, so if you +need to ask, don't even try it. + + +Unit testing +============ + +Building will also create several unit tests in +build/linux-???-debug/gallium/drivers/llvmpipe: + + - lp_test_blend: blending + - lp_test_conv: SIMD vector conversion + - lp_test_format: pixel unpacking/packing + +Some of this tests can output results and benchmarks to a tab-separated-file +for posterior analysis, e.g.: + + build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv + + +Development Notes +================= + +- When looking to this code by the first time start in lp_state_fs.c, and + then skim through the lp_bld_* functions called in there, and the comments + at the top of the lp_bld_*.c functions. + +- The driver-independent parts of the LLVM / Gallium code are found in + src/gallium/auxiliary/gallivm/. The filenames and function prefixes + need to be renamed from "lp_bld_" to something else though. + +- We use LLVM-C bindings for now. They are not documented, but follow the C++ + interfaces very closely, and appear to be complete enough for code + generation. See + http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html + for a stand-alone example. + See the llvm-c/Core.h file for reference. --- mesa-7.9+repack.orig/src/gallium/drivers/trace/README +++ mesa-7.9+repack/src/gallium/drivers/trace/README @@ -0,0 +1,64 @@ + TRACE PIPE DRIVER + + += About = + +This directory contains a Gallium3D trace debugger pipe driver. +It can traces all incoming calls. + + += Build Instructions = + +To build, invoke scons on the top dir as + + scons dri=no statetrackers=mesa winsys=xlib + + += Usage = + +To use do + + export LD_LIBRARY_PATH=$PWD/build/linux-x86-debug/lib + +ensure the right libGL.so is being picked by doing + + ldd progs/trivial/tri + +== Tracing == + +For tracing then do + + GALLIUM_TRACE=tri.trace progs/trivial/tri + +which should create a tri.trace file, which is an XML file. You can view copying +trace.xsl to the same directory, and opening with a XSLT capable browser such as +Firefox or Internet Explorer. + +== Remote debugging == + +For remote debugging see: + + src/gallium/drivers/rbug/README + += Integrating = + +You can integrate the trace pipe driver either inside the state tracker or the +target. The procedure on both cases is the same. Let's assume you have a +pipe_screen obtained by the usual means (variable and function names are just +for illustration purposes): + + real_screen = real_screen_create(...); + +The trace screen is then created by doing + + trace_screen = trace_screen_create(real_screen); + +You can then simply use trace_screen instead of real_screen. + +You can create as many contexts you wish from trace_screen::context_create they +are automatically wrapped by trace_screen. + + +-- +Jose Fonseca +Jakob Bornecrantz --- mesa-7.9+repack.orig/src/gallium/drivers/trace/trace.xsl +++ mesa-7.9+repack/src/gallium/drivers/trace/trace.xsl @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + Gallium Trace + + + +
    + +
+ + +
+ + +
  • + + + + + + :: + + + ( + + ) + +
  • +
    + + + + = + + + , + + + + + = + + + + + + + + + + + + ... + + + + + + " + + + + " + + + + + { + + } + + + + + + , + + + + + + NULL + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + +
    --- mesa-7.9+repack.orig/src/gallium/drivers/rbug/README +++ mesa-7.9+repack/src/gallium/drivers/rbug/README @@ -0,0 +1,58 @@ + RBUG PIPE DRIVER + + += About = + +This directory contains a Gallium3D remote debugger pipe driver. +It provides remote debugging functionality. + + += Build Instructions = + +To build, invoke scons on the top dir as + + scons dri=no statetrackers=mesa winsys=xlib + + += Usage = + +To use do + + export LD_LIBRARY_PATH=$PWD/build/linux-x86-debug/lib + +ensure the right libGL.so is being picked by doing + + ldd progs/trivial/tri + + export XMESA_TRACE=y + GALLIUM_RBUG=true progs/trivial/tri + +which should open gallium remote debugging session. While the program is running +you can launch the small remote debugging application from progs/rbug. More +information is in that directory. Also for a gui see: + + http://cgit.freedesktop.org/mesa/rbug-gui + + += Integrating = + +You can integrate the rbug pipe driver either inside the state tracker or the +target. The procedure on both cases is the same. Let's assume you have a +pipe_screen obtained by the usual means (variable and function names are just +for illustration purposes): + + real_screen = real_screen_create(...); + +The rbug screen is then created by doing + + rbug_screen = rbug_screen_create(real_screen); + +You can then simply use rbug_screen instead of real_screen. + +You can create as many contexts you wish from rbug_screen::context_create they +are automatically wrapped by rbug_screen. + + +-- +Jose Fonseca +Jakob Bornecrantz --- mesa-7.9+repack.orig/src/gallium/drivers/svga/include/README +++ mesa-7.9+repack/src/gallium/drivers/svga/include/README @@ -0,0 +1,3 @@ +This directory contains the headers from the VMware SVGA Device Developer Kit: + + https://vmware-svga.svn.sourceforge.net/svnroot/vmware-svga/trunk/lib/vmware/ --- mesa-7.9+repack.orig/src/gallium/state_trackers/README +++ mesa-7.9+repack/src/gallium/state_trackers/README @@ -0,0 +1,2 @@ +This directory is a placeholder for incubating state-trackers. Mesa's +state-tracker is in src/mesa. --- mesa-7.9+repack.orig/src/gallium/state_trackers/egl/common/egl_g3d_api.c +++ mesa-7.9+repack/src/gallium/state_trackers/egl/common/egl_g3d_api.c @@ -609,8 +609,10 @@ gctx->stctxi->flush(gctx->stctxi, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, &fence); - screen->fence_finish(screen, fence, 0); - screen->fence_reference(screen, &fence, NULL); + if (fence) { + screen->fence_finish(screen, fence, 0); + screen->fence_reference(screen, &fence, NULL); + } return EGL_TRUE; } --- mesa-7.9+repack.orig/src/gallium/state_trackers/vega/vg_manager.c +++ mesa-7.9+repack/src/gallium/state_trackers/vega/vg_manager.c @@ -352,7 +352,7 @@ return NULL; /* only 1.0 is supported */ - if (attribs->major != 1 || attribs->minor > 0) + if (attribs->major > 1 || (attribs->major == 1 && attribs->minor > 0)) return NULL; pipe = smapi->screen->context_create(smapi->screen, NULL); --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_dri2.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_dri2.c @@ -201,11 +201,11 @@ DRI2Buffer2Ptr buffer; BufferPrivatePtr private; - buffer = xcalloc(1, sizeof *buffer); + buffer = calloc(1, sizeof *buffer); if (!buffer) return NULL; - private = xcalloc(1, sizeof *private); + private = calloc(1, sizeof *private); if (!private) { goto fail; } @@ -217,9 +217,9 @@ if (dri2_do_create_buffer(pDraw, (DRI2BufferPtr)buffer, format)) return buffer; - xfree(private); + free(private); fail: - xfree(buffer); + free(buffer); return NULL; } @@ -229,8 +229,8 @@ /* So far it is safe to downcast a DRI2Buffer2Ptr to DRI2BufferPtr */ dri2_do_destroy_buffer(pDraw, (DRI2BufferPtr)buffer); - xfree(buffer->driverPrivate); - xfree(buffer); + free(buffer->driverPrivate); + free(buffer); } #endif /* DRI2INFOREC_VERSION >= 2 */ @@ -244,11 +244,11 @@ DRI2BufferPtr buffers; int i; - buffers = xcalloc(count, sizeof *buffers); + buffers = calloc(count, sizeof *buffers); if (!buffers) goto fail_buffers; - privates = xcalloc(count, sizeof *privates); + privates = calloc(count, sizeof *privates); if (!privates) goto fail_privates; @@ -263,9 +263,9 @@ return buffers; fail: - xfree(privates); + free(privates); fail_privates: - xfree(buffers); + free(buffers); fail_buffers: return NULL; } @@ -280,8 +280,8 @@ } if (buffers) { - xfree(buffers[0].driverPrivate); - xfree(buffers); + free(buffers[0].driverPrivate); + free(buffers); } } --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_xv.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_xv.c @@ -536,8 +536,10 @@ dst_surf = xorg_gpu_surface(pPriv->r->pipe->screen, dst); hdtv = ((src_w >= RES_720P_X) && (src_h >= RES_720P_Y)); +#ifdef COMPOSITE REGION_TRANSLATE(pScrn->pScreen, dstRegion, -pPixmap->screen_x, -pPixmap->screen_y); +#endif dxo = dstRegion->extents.x1; dyo = dstRegion->extents.y1; @@ -562,11 +564,16 @@ int box_y2 = pbox->y2; float diff_x = (float)src_w / (float)dst_w; float diff_y = (float)src_h / (float)dst_h; - float offset_x = box_x1 - dstX + pPixmap->screen_x; - float offset_y = box_y1 - dstY + pPixmap->screen_y; + float offset_x = box_x1 - dstX; + float offset_y = box_y1 - dstY; float offset_w; float offset_h; +#ifdef COMPOSITE + offset_x += pPixmap->screen_x; + offset_y += pPixmap->screen_y; +#endif + x = box_x1; y = box_y1; w = box_x2 - box_x1; --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_crtc.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_crtc.c @@ -234,6 +234,10 @@ 64, 64, (void*)image, 64 * 4, 0, 0); ms->ctx->transfer_unmap(ms->ctx, transfer); ms->ctx->transfer_destroy(ms->ctx, transfer); + + if (crtc->cursor_shown) + drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id, + crtcp->cursor_handle, 64, 64); } #if HAVE_LIBKMS @@ -271,6 +275,10 @@ memcpy(ptr, image, 64*64*4); kms_bo_unmap(crtcp->cursor_bo); + if (crtc->cursor_shown) + drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id, + crtcp->cursor_handle, 64, 64); + return; err_bo_destroy: @@ -353,7 +361,7 @@ drmModeFreeCrtc(crtcp->drm_crtc); - xfree(crtcp); + free(crtcp); crtc->driver_private = NULL; } @@ -401,7 +409,7 @@ if (crtc == NULL) goto out; - crtcp = xcalloc(1, sizeof(struct crtc_private)); + crtcp = calloc(1, sizeof(struct crtc_private)); if (!crtcp) { xf86CrtcDestroy(crtc); goto out; --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_tracker.h +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_tracker.h @@ -76,6 +76,7 @@ Bool dirty_throttling; Bool swap_throttling; Bool no_3d; + Bool unhidden_hw_cursor_update; Bool (*winsys_pre_init) (struct _CustomizerRec *cust, int fd); Bool (*winsys_screen_init)(struct _CustomizerRec *cust); Bool (*winsys_screen_close)(struct _CustomizerRec *cust); --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_output.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_output.c @@ -128,7 +128,7 @@ for (i = 0; i < drm_connector->count_modes; i++) { drm_mode = &drm_connector->modes[i]; if (drm_mode) { - mode = xcalloc(1, sizeof(DisplayModeRec)); + mode = calloc(1, sizeof(DisplayModeRec)); if (!mode) continue; mode->Clock = drm_mode->clock; @@ -195,7 +195,7 @@ { struct output_private *priv = output->driver_private; drmModeFreeConnector(priv->drm_connector); - xfree(priv); + free(priv); output->driver_private = NULL; } @@ -262,14 +262,14 @@ drm_connector->connector_type_id); - priv = xcalloc(sizeof(*priv), 1); + priv = calloc(sizeof(*priv), 1); if (!priv) { continue; } output = xf86OutputCreate(pScrn, &output_funcs, name); if (!output) { - xfree(priv); + free(priv); continue; } --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_driver.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_driver.c @@ -45,6 +45,7 @@ #include "miscstruct.h" #include "dixstruct.h" #include "xf86xv.h" +#include "xorgVersion.h" #ifndef XSERVER_LIBPCIACCESS #error "libpciaccess needed" #endif @@ -122,7 +123,7 @@ Bool xorg_tracker_have_modesetting(ScrnInfoPtr pScrn, struct pci_device *device) { - char *BusID = xalloc(64); + char *BusID = malloc(64); sprintf(BusID, "pci:%04x:%02x:%02x.%d", device->domain, device->bus, device->dev, device->func); @@ -130,14 +131,14 @@ if (drmCheckModesettingSupported(BusID)) { xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0, "Drm modesetting not supported %s\n", BusID); - xfree(BusID); + free(BusID); return FALSE; } xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0, "Drm modesetting supported on %s\n", BusID); - xfree(BusID); + free(BusID); return TRUE; } @@ -174,7 +175,7 @@ if (!pScrn->driverPrivate) return; - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -274,7 +275,7 @@ if (ms->fd < 0) { char *BusID; - BusID = xalloc(64); + BusID = malloc(64); sprintf(BusID, "PCI:%d:%d:%d", ((ms->PciInfo->domain << 8) | ms->PciInfo->bus), ms->PciInfo->dev, ms->PciInfo->func @@ -283,7 +284,7 @@ ms->fd = drmOpen(driver_descriptor.driver_name, BusID); ms->isMaster = TRUE; - xfree(BusID); + free(BusID); if (ms->fd >= 0) return TRUE; @@ -369,6 +370,7 @@ ms = modesettingPTR(pScrn); ms->pEnt = pEnt; ms->cust = cust; + ms->fb_id = -1; pScrn->displayWidth = 640; /* default it */ @@ -402,19 +404,6 @@ if (!drv_init_drm(pScrn)) return FALSE; - use3D = cust ? !cust->no_3d : TRUE; - ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL, - &use3D) ? - X_CONFIG : X_PROBED; - - ms->no3D = !use3D; - - if (!drv_init_resource_management(pScrn)) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init " - "Gallium3D or libKMS."); - return FALSE; - } - pScrn->monitor = pScrn->confScreen->monitor; pScrn->progClock = TRUE; pScrn->rgbBits = 8; @@ -444,11 +433,24 @@ /* Process the options */ xf86CollectOptions(pScrn, NULL); - if (!(ms->Options = xalloc(sizeof(drv_options)))) + if (!(ms->Options = malloc(sizeof(drv_options)))) return FALSE; memcpy(ms->Options, drv_options, sizeof(drv_options)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, ms->Options); + use3D = cust ? !cust->no_3d : TRUE; + ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL, + &use3D) ? + X_CONFIG : X_PROBED; + + ms->no3D = !use3D; + + if (!drv_init_resource_management(pScrn)) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init " + "Gallium3D or libKMS."); + return FALSE; + } + /* Allocate an xf86CrtcConfig */ xf86CrtcConfigInit(pScrn, &crtc_config_funcs); xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); @@ -791,7 +793,9 @@ if (!ms->SWCursor) xf86_cursors_init(pScreen, 64, 64, HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 | - HARDWARE_CURSOR_ARGB); + HARDWARE_CURSOR_ARGB | + ((cust && cust->unhidden_hw_cursor_update) ? + HARDWARE_CURSOR_UPDATE_UNHIDDEN : 0)); /* Must force it before EnterVT, so we are in control of VT and * later memory should be bound when allocating, e.g rotate_mem */ @@ -862,8 +866,10 @@ } } - drmModeRmFB(ms->fd, ms->fb_id); - ms->fb_id = -1; + if (ms->fb_id != -1) { + drmModeRmFB(ms->fd, ms->fb_id); + ms->fb_id = -1; + } /* idle hardware */ if (!ms->kms) @@ -944,7 +950,6 @@ } #endif - drmModeRmFB(ms->fd, ms->fb_id); ms->destroy_front_buffer(pScrn); if (ms->exa) @@ -1178,6 +1183,8 @@ stride, ptr); +#if (XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 99, 1, 0)) + /* This a hack to work around EnableDisableFBAccess setting the pointer * the real fix would be to replace pScrn->EnableDisableFBAccess hook * and set the rootPixmap->devPrivate.ptr to something valid before that. @@ -1187,6 +1194,8 @@ */ pScrn->pixmapPrivate.ptr = ptr; +#endif + return TRUE; err_destroy: --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/Makefile +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/Makefile @@ -10,7 +10,7 @@ $(shell pkg-config libkms --atleast-version=1.0 \ && echo "-DHAVE_LIBKMS") \ $(shell pkg-config libkms --silence-errors --cflags-only-I) \ - $(shell pkg-config --cflags-only-I pixman-1 xorg-server libdrm xproto) \ + $(shell pkg-config --cflags-only-I pixman-1 xorg-server libdrm xproto dri2proto) \ -I$(TOP)/src/gallium/include \ -I$(TOP)/src/gallium/auxiliary \ -I$(TOP)/include \ --- mesa-7.9+repack.orig/src/gallium/state_trackers/xorg/xorg_exa.c +++ mesa-7.9+repack/src/gallium/state_trackers/xorg/xorg_exa.c @@ -720,7 +720,7 @@ { struct exa_pixmap_priv *priv; - priv = xcalloc(1, sizeof(struct exa_pixmap_priv)); + priv = calloc(1, sizeof(struct exa_pixmap_priv)); if (!priv) return NULL; @@ -737,7 +737,7 @@ pipe_resource_reference(&priv->tex, NULL); - xfree(priv); + free(priv); } static Bool @@ -975,7 +975,7 @@ ms->ctx = NULL; exaDriverFini(pScrn->pScreen); - xfree(exa); + free(exa); ms->exa = NULL; } @@ -987,7 +987,7 @@ ExaDriverPtr pExa; CustomizerPtr cust = ms->cust; - exa = xcalloc(1, sizeof(struct exa_context)); + exa = calloc(1, sizeof(struct exa_context)); if (!exa) return NULL; --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/p_texture.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/p_texture.i @@ -0,0 +1,156 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/** + * @file + * SWIG interface definion for Gallium types. + * + * @author Jose Fonseca + */ + + +%nodefaultctor pipe_resource; +%nodefaultctor st_surface; + +%nodefaultdtor pipe_resource; +%nodefaultdtor st_surface; + +%ignore pipe_resource::screen; + +%immutable st_surface::texture; +%immutable st_surface::face; +%immutable st_surface::level; +%immutable st_surface::zslice; + +%newobject pipe_resource::get_surface; + +/* Avoid naming conflict with p_inlines.h's pipe_buffer_read/write */ +%rename(read) read_; +%rename(write) write_; + +%extend pipe_resource { + + ~pipe_resource() { + struct pipe_resource *ptr = $self; + pipe_resource_reference(&ptr, NULL); + } + + unsigned get_width(unsigned level=0) { + return u_minify($self->width0, level); + } + + unsigned get_height(unsigned level=0) { + return u_minify($self->height0, level); + } + + unsigned get_depth(unsigned level=0) { + return u_minify($self->depth0, level); + } + + /** Get a surface which is a "view" into a texture */ + struct st_surface * + get_surface(unsigned face=0, unsigned level=0, unsigned zslice=0) + { + struct st_surface *surface; + + if(face >= ($self->target == PIPE_TEXTURE_CUBE ? 6U : 1U)) + SWIG_exception(SWIG_ValueError, "face out of bounds"); + if(level > $self->last_level) + SWIG_exception(SWIG_ValueError, "level out of bounds"); + if(zslice >= u_minify($self->depth0, level)) + SWIG_exception(SWIG_ValueError, "zslice out of bounds"); + + surface = CALLOC_STRUCT(st_surface); + if(!surface) + return NULL; + + pipe_resource_reference(&surface->texture, $self); + surface->face = face; + surface->level = level; + surface->zslice = zslice; + + return surface; + + fail: + return NULL; + } + + unsigned __len__(void) + { + assert($self->target == PIPE_BUFFER); + assert(p_atomic_read(&$self->reference.count) > 0); + return $self->width0; + } + +}; + +struct st_surface +{ + %immutable; + + struct pipe_resource *texture; + unsigned face; + unsigned level; + unsigned zslice; + +}; + +%extend st_surface { + + %immutable; + + unsigned format; + unsigned width; + unsigned height; + + ~st_surface() { + pipe_resource_reference(&$self->texture, NULL); + FREE($self); + } + + +}; + +%{ + static enum pipe_format + st_surface_format_get(struct st_surface *surface) + { + return surface->texture->format; + } + + static unsigned + st_surface_width_get(struct st_surface *surface) + { + return u_minify(surface->texture->width0, surface->level); + } + + static unsigned + st_surface_height_get(struct st_surface *surface) + { + return u_minify(surface->texture->height0, surface->level); + } +%} --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/p_state.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/p_state.i @@ -0,0 +1,184 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/** + * @file + * SWIG interface definion for Gallium types. + * + * @author Jose Fonseca + */ + +%module gallium; + +%ignore winsys; +%ignore pipe_vertex_buffer::buffer; + +%include "pipe/p_compiler.h"; +%include "pipe/p_state.h"; + + +%array_class(struct pipe_stencil_state, StencilArray); + + +%extend pipe_rt_blend_state +{ + struct pipe_rt_blend_state * + __getitem__(int index) + { + if(index < 0 || index >= PIPE_MAX_COLOR_BUFS) + SWIG_exception(SWIG_ValueError, "index out of bounds"); + return $self + index; + fail: + return NULL; + }; +}; + + +%extend pipe_blend_state +{ + pipe_blend_state(void) + { + return CALLOC_STRUCT(pipe_blend_state); + } + + %cstring_input_binary(const char *STRING, unsigned LENGTH); + pipe_blend_state(const char *STRING, unsigned LENGTH) + { + struct pipe_blend_state *state; + state = CALLOC_STRUCT(pipe_blend_state); + if (state) { + LENGTH = MIN2(sizeof *state, LENGTH); + memcpy(state, STRING, LENGTH); + } + return state; + } + + %cstring_output_allocate_size(char **STRING, int *LENGTH, os_free(*$1)); + void __str__(char **STRING, int *LENGTH) + { + struct os_stream *stream; + + stream = os_str_stream_create(1); + util_dump_blend_state(stream, $self); + + *STRING = os_str_stream_get_and_close(stream); + *LENGTH = strlen(*STRING); + } +}; + + +%extend pipe_framebuffer_state { + + pipe_framebuffer_state(void) { + return CALLOC_STRUCT(pipe_framebuffer_state); + } + + ~pipe_framebuffer_state() { + unsigned index; + for(index = 0; index < PIPE_MAX_COLOR_BUFS; ++index) + pipe_surface_reference(&$self->cbufs[index], NULL); + pipe_surface_reference(&$self->zsbuf, NULL); + FREE($self); + } + + void + set_cbuf(unsigned index, struct st_surface *surface) + { + struct pipe_surface *_surface = NULL; + + if(index >= PIPE_MAX_COLOR_BUFS) + SWIG_exception(SWIG_ValueError, "index out of bounds"); + + if(surface) { + _surface = st_pipe_surface(surface, PIPE_BIND_RENDER_TARGET); + if(!_surface) + SWIG_exception(SWIG_ValueError, "couldn't acquire surface for writing"); + } + + pipe_surface_reference(&$self->cbufs[index], _surface); + + fail: + return; + } + + void + set_zsbuf(struct st_surface *surface) + { + struct pipe_surface *_surface = NULL; + + if(surface) { + _surface = st_pipe_surface(surface, PIPE_BIND_DEPTH_STENCIL); + if(!_surface) + SWIG_exception(SWIG_ValueError, "couldn't acquire surface for writing"); + } + + pipe_surface_reference(&$self->zsbuf, _surface); + + fail: + return; + } + +}; + + +%extend pipe_shader_state { + + pipe_shader_state(const char *text, unsigned num_tokens = 1024) { + struct tgsi_token *tokens; + struct pipe_shader_state *shader; + + tokens = MALLOC(num_tokens * sizeof(struct tgsi_token)); + if(!tokens) + goto error1; + + if(tgsi_text_translate(text, tokens, num_tokens ) != TRUE) + goto error2; + + shader = CALLOC_STRUCT(pipe_shader_state); + if(!shader) + goto error3; + + shader->tokens = tokens; + + return shader; + +error3: +error2: + FREE(tokens); +error1: + return NULL; + } + + ~pipe_shader_state() { + FREE((void*)$self->tokens); + FREE($self); + } + + void dump(unsigned flags = 0) { + tgsi_dump($self->tokens, flags); + } +} --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/u_format.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/u_format.i @@ -0,0 +1,88 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS 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. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +static INLINE const char * +util_format_name(enum pipe_format format); + +static INLINE boolean +util_format_is_s3tc(enum pipe_format format); + +static INLINE boolean +util_format_is_depth_or_stencil(enum pipe_format format); + +static INLINE boolean +util_format_is_depth_and_stencil(enum pipe_format format); + + +uint +util_format_get_blocksizebits(enum pipe_format format); + +uint +util_format_get_blocksize(enum pipe_format format); + +uint +util_format_get_blockwidth(enum pipe_format format); + +uint +util_format_get_blockheight(enum pipe_format format); + +unsigned +util_format_get_nblocksx(enum pipe_format format, + unsigned x); + +unsigned +util_format_get_nblocksy(enum pipe_format format, + unsigned y); + +unsigned +util_format_get_nblocks(enum pipe_format format, + unsigned width, + unsigned height); + +size_t +util_format_get_stride(enum pipe_format format, + unsigned width); + +size_t +util_format_get_2d_size(enum pipe_format format, + size_t stride, + unsigned height); + +uint +util_format_get_component_bits(enum pipe_format format, + enum util_format_colorspace colorspace, + uint component); + +boolean +util_format_has_alpha(enum pipe_format format); + + +unsigned +util_format_get_nr_components(enum pipe_format format); + + --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/README +++ mesa-7.9+repack/src/gallium/state_trackers/python/README @@ -0,0 +1,43 @@ +This directory contains Python bindings to Gallium3D. It looks like a state +tracker from the pipe driver perspective, and it looks like a pipe driver from +the python script perspective. + + +To build you'll need: +* Python (with development packages) +* SCons +* SWIG, http://www.swig.org/download.html +* Python Imaging Library with TK support, http://www.pythonware.com/products/pil/, + for the samples + +On a debian-based distro you can simply do: + + aptitude install python-dev scons swig python-imaging python-imaging-tk + +On a Windows machine ensure the swig command is in your PATH. + +Invoke scons on the top dir as + + scons debug=yes statetrackers=python drivers=softpipe winsys=none + +To use it set PYTHONPATH appropriately, e.g, in Linux do: + + export PYTHONPATH=$PWD/build/linux-x86-debug/gallium/state_trackers/python + +or (in Windows) + + set PYTHONPATH=%CD%\build\windows-x86-debug\gallium\state_trackers\python + +and then try running + + python progs/gallium/python/samples/tri.py + +which should show a triangle. + + +This is still work in progress: +- errors are not handled properly and almost always result in crash +- state atoms with array members are awkward to set + +-- +Jose Fonseca --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/p_compiler.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/p_compiler.i @@ -0,0 +1,29 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + + +typedef unsigned char ubyte; --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/p_device.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/p_device.i @@ -0,0 +1,140 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/** + * @file + * SWIG interface definion for Gallium types. + * + * @author Jose Fonseca + */ + + +%nodefaultctor st_device; +%nodefaultdtor st_device; + + +struct st_device { +}; + +%newobject st_device::texture_create; +%newobject st_device::context_create; +%newobject st_device::buffer_create; + +%extend st_device { + + st_device(int hardware = 1) { + return st_device_create(hardware ? TRUE : FALSE); + } + + ~st_device() { + st_device_destroy($self); + } + + const char * get_name( void ) { + return $self->screen->get_name($self->screen); + } + + const char * get_vendor( void ) { + return $self->screen->get_vendor($self->screen); + } + + /** + * Query an integer-valued capability/parameter/limit + * \param param one of PIPE_CAP_x + */ + int get_param( int param ) { + return $self->screen->get_param($self->screen, param); + } + + /** + * Query a float-valued capability/parameter/limit + * \param param one of PIPE_CAP_x + */ + float get_paramf( int param ) { + return $self->screen->get_paramf($self->screen, param); + } + + /** + * Check if the given pipe_format is supported as a texture or + * drawing surface. + * \param bind bitmask of PIPE_BIND flags + */ + int is_format_supported( enum pipe_format format, + enum pipe_texture_target target, + unsigned sample_count, + unsigned bind, + unsigned geom_flags ) { + /* We can't really display surfaces with the python statetracker so mask + * out that usage */ + bind &= ~PIPE_BIND_DISPLAY_TARGET; + + return $self->screen->is_format_supported( $self->screen, + format, + target, + sample_count, + bind, + geom_flags ); + } + + struct st_context * + context_create(void) { + return st_context_create($self); + } + + struct pipe_resource * + resource_create( + enum pipe_format format, + unsigned width, + unsigned height, + unsigned depth = 1, + unsigned last_level = 0, + enum pipe_texture_target target = PIPE_TEXTURE_2D, + unsigned bind = 0 + ) { + struct pipe_resource templat; + + /* We can't really display surfaces with the python statetracker so mask + * out that usage */ + bind &= ~PIPE_BIND_DISPLAY_TARGET; + + memset(&templat, 0, sizeof(templat)); + templat.format = format; + templat.width0 = width; + templat.height0 = height; + templat.depth0 = depth; + templat.last_level = last_level; + templat.target = target; + templat.bind = bind; + + return $self->screen->resource_create($self->screen, &templat); + } + + struct pipe_resource * + buffer_create(unsigned size, unsigned bind = 0) { + return pipe_buffer_create($self->screen, bind, size); + } +}; --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/gallium.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/gallium.i @@ -0,0 +1,105 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/** + * @file + * SWIG interface definion for Gallium types. + * + * @author Jose Fonseca + */ + +%module gallium; + +%{ + +#include + +#include "pipe/p_screen.h" +#include "pipe/p_context.h" +#include "pipe/p_shader_tokens.h" +#include "os/os_stream.h" +#include "util/u_inlines.h" +#include "util/u_draw_quad.h" +#include "util/u_tile.h" +#include "util/u_math.h" +#include "util/u_format.h" +#include "util/u_dump.h" +#include "util/u_memory.h" +#include "util/u_sampler.h" +#include "cso_cache/cso_context.h" +#include "tgsi/tgsi_text.h" +#include "tgsi/tgsi_dump.h" + +#include "st_device.h" +#include "st_sample.h" + +%} + +%include "typemaps.i" +%include "exception.i" +%include "cstring.i" + +%include "carrays.i" +%array_class(unsigned char, ByteArray); +%array_class(int, IntArray); +%array_class(unsigned, UnsignedArray); +%array_class(float, FloatArray); + + +%rename(Device) st_device; +%rename(Context) st_context; +%rename(Resource) pipe_resource; +%rename(Surface) st_surface; + +%rename(BlendColor) pipe_blend_color; +%rename(Blend) pipe_blend_state; +%rename(Clip) pipe_clip_state; +%rename(Depth) pipe_depth_state; +%rename(Stencil) pipe_stencil_state; +%rename(Alpha) pipe_alpha_state; +%rename(DepthStencilAlpha) pipe_depth_stencil_alpha_state; +%rename(Framebuffer) pipe_framebuffer_state; +%rename(PolyStipple) pipe_poly_stipple; +%rename(Rasterizer) pipe_rasterizer_state; +%rename(Sampler) pipe_sampler_state; +%rename(Scissor) pipe_scissor_state; +%rename(Shader) pipe_shader_state; +%rename(VertexBuffer) pipe_vertex_buffer; +%rename(VertexElement) pipe_vertex_element; +%rename(Viewport) pipe_viewport_state; + + +%include "p_compiler.i" +%include "p_defines.h" +%include "p_format.h" + +%include "p_device.i" +%include "p_context.i" +%include "p_texture.i" +%include "p_state.i" + +%include "u_format.i" --- mesa-7.9+repack.orig/src/gallium/state_trackers/python/p_context.i +++ mesa-7.9+repack/src/gallium/state_trackers/python/p_context.i @@ -0,0 +1,765 @@ + /************************************************************************** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/** + * @file + * SWIG interface definion for Gallium types. + * + * @author Jose Fonseca + */ + +%nodefaultctor st_context; +%nodefaultdtor st_context; + +struct st_context { +}; + +%extend st_context { + + ~st_context() { + st_context_destroy($self); + } + + /* + * State functions (create/bind/destroy state objects) + */ + + void set_blend( const struct pipe_blend_state *state ) { + cso_set_blend($self->cso, state); + } + + void set_fragment_sampler( unsigned index, const struct pipe_sampler_state *state ) { + cso_single_sampler($self->cso, index, state); + cso_single_sampler_done($self->cso); + } + + void set_vertex_sampler( unsigned index, const struct pipe_sampler_state *state ) { + cso_single_vertex_sampler($self->cso, index, state); + cso_single_vertex_sampler_done($self->cso); + } + + void set_rasterizer( const struct pipe_rasterizer_state *state ) { + cso_set_rasterizer($self->cso, state); + } + + void set_depth_stencil_alpha(const struct pipe_depth_stencil_alpha_state *state) { + cso_set_depth_stencil_alpha($self->cso, state); + } + + void set_fragment_shader( const struct pipe_shader_state *state ) { + void *fs; + + if(!state) { + cso_set_fragment_shader_handle($self->cso, NULL); + return; + } + + fs = $self->pipe->create_fs_state($self->pipe, state); + if(!fs) + return; + + if(cso_set_fragment_shader_handle($self->cso, fs) != PIPE_OK) + return; + + cso_delete_fragment_shader($self->cso, $self->fs); + $self->fs = fs; + } + + void set_vertex_shader( const struct pipe_shader_state *state ) { + void *vs; + + if(!state) { + cso_set_vertex_shader_handle($self->cso, NULL); + return; + } + + vs = $self->pipe->create_vs_state($self->pipe, state); + if(!vs) + return; + + if(cso_set_vertex_shader_handle($self->cso, vs) != PIPE_OK) + return; + + cso_delete_vertex_shader($self->cso, $self->vs); + $self->vs = vs; + } + + void set_geometry_shader( const struct pipe_shader_state *state ) { + void *gs; + + if(!state) { + cso_set_geometry_shader_handle($self->cso, NULL); + return; + } + + gs = $self->pipe->create_gs_state($self->pipe, state); + if(!gs) + return; + + if(cso_set_geometry_shader_handle($self->cso, gs) != PIPE_OK) + return; + + cso_delete_geometry_shader($self->cso, $self->gs); + $self->gs = gs; + } + + struct pipe_sampler_view * + create_sampler_view(struct pipe_resource *texture, + enum pipe_format format = PIPE_FORMAT_NONE, + unsigned first_level = 0, + unsigned last_level = ~0, + unsigned swizzle_r = 0, + unsigned swizzle_g = 1, + unsigned swizzle_b = 2, + unsigned swizzle_a = 3) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_sampler_view templat; + + memset(&templat, 0, sizeof templat); + if (format == PIPE_FORMAT_NONE) { + templat.format = texture->format; + } else { + templat.format = format; + } + templat.last_level = MIN2(last_level, texture->last_level); + templat.first_level = first_level; + templat.last_level = last_level; + templat.swizzle_r = swizzle_r; + templat.swizzle_g = swizzle_g; + templat.swizzle_b = swizzle_b; + templat.swizzle_a = swizzle_a; + + return pipe->create_sampler_view(pipe, texture, &templat); + } + + void + sampler_view_destroy(struct pipe_context *ctx, + struct pipe_sampler_view *view) + { + struct pipe_context *pipe = $self->pipe; + + pipe->sampler_view_destroy(pipe, view); + } + + /* + * Parameter-like state (or properties) + */ + + void set_blend_color(const struct pipe_blend_color *state ) { + cso_set_blend_color($self->cso, state); + } + + void set_stencil_ref(const struct pipe_stencil_ref *state ) { + cso_set_stencil_ref($self->cso, state); + } + + void set_clip(const struct pipe_clip_state *state ) { + $self->pipe->set_clip_state($self->pipe, state); + } + + void set_constant_buffer(unsigned shader, unsigned index, + struct pipe_resource *buffer ) + { + $self->pipe->set_constant_buffer($self->pipe, shader, index, buffer); + } + + void set_framebuffer(const struct pipe_framebuffer_state *state ) + { + memcpy(&$self->framebuffer, state, sizeof *state); + cso_set_framebuffer($self->cso, state); + } + + void set_polygon_stipple(const struct pipe_poly_stipple *state ) { + $self->pipe->set_polygon_stipple($self->pipe, state); + } + + void set_scissor(const struct pipe_scissor_state *state ) { + $self->pipe->set_scissor_state($self->pipe, state); + } + + void set_viewport(const struct pipe_viewport_state *state) { + cso_set_viewport($self->cso, state); + } + + void set_fragment_sampler_view(unsigned index, + struct pipe_sampler_view *view) + { + pipe_sampler_view_reference(&$self->fragment_sampler_views[index], view); + + $self->pipe->set_fragment_sampler_views($self->pipe, + PIPE_MAX_SAMPLERS, + $self->fragment_sampler_views); + } + + void set_vertex_sampler_view(unsigned index, + struct pipe_sampler_view *view) + { + pipe_sampler_view_reference(&$self->vertex_sampler_views[index], view); + + $self->pipe->set_vertex_sampler_views($self->pipe, + PIPE_MAX_VERTEX_SAMPLERS, + $self->vertex_sampler_views); + } + + void set_fragment_sampler_texture(unsigned index, + struct pipe_resource *texture) { + struct pipe_sampler_view templ; + + if(!texture) + texture = $self->default_texture; + pipe_sampler_view_reference(&$self->fragment_sampler_views[index], NULL); + u_sampler_view_default_template(&templ, + texture, + texture->format); + $self->fragment_sampler_views[index] = $self->pipe->create_sampler_view($self->pipe, + texture, + &templ); + $self->pipe->set_fragment_sampler_views($self->pipe, + PIPE_MAX_SAMPLERS, + $self->fragment_sampler_views); + } + + void set_vertex_sampler_texture(unsigned index, + struct pipe_resource *texture) { + struct pipe_sampler_view templ; + + if(!texture) + texture = $self->default_texture; + pipe_sampler_view_reference(&$self->vertex_sampler_views[index], NULL); + u_sampler_view_default_template(&templ, + texture, + texture->format); + $self->vertex_sampler_views[index] = $self->pipe->create_sampler_view($self->pipe, + texture, + &templ); + + $self->pipe->set_vertex_sampler_views($self->pipe, + PIPE_MAX_VERTEX_SAMPLERS, + $self->vertex_sampler_views); + } + + void set_vertex_buffer(unsigned index, + unsigned stride, + unsigned max_index, + unsigned buffer_offset, + struct pipe_resource *buffer) + { + unsigned i; + struct pipe_vertex_buffer state; + + memset(&state, 0, sizeof(state)); + state.stride = stride; + state.max_index = max_index; + state.buffer_offset = buffer_offset; + state.buffer = buffer; + + memcpy(&$self->vertex_buffers[index], &state, sizeof(state)); + + for(i = 0; i < PIPE_MAX_ATTRIBS; ++i) + if(self->vertex_buffers[i].buffer) + $self->num_vertex_buffers = i + 1; + + $self->pipe->set_vertex_buffers($self->pipe, + $self->num_vertex_buffers, + $self->vertex_buffers); + } + + void set_index_buffer(unsigned index_size, + unsigned offset, + struct pipe_resource *buffer) + { + struct pipe_index_buffer ib; + + memset(&ib, 0, sizeof(ib)); + ib.index_size = index_size; + ib.offset = offset; + ib.buffer = buffer; + + $self->pipe->set_index_buffer($self->pipe, &ib); + } + + void set_vertex_element(unsigned index, + const struct pipe_vertex_element *element) + { + memcpy(&$self->vertex_elements[index], element, sizeof(*element)); + } + + void set_vertex_elements(unsigned num) + { + $self->num_vertex_elements = num; + cso_set_vertex_elements($self->cso, + $self->num_vertex_elements, + $self->vertex_elements); + } + + /* + * Draw functions + */ + + void draw_arrays(unsigned mode, unsigned start, unsigned count) { + util_draw_arrays($self->pipe, mode, start, count); + } + + void draw_vbo(const struct pipe_draw_info *info) + { + $self->pipe->draw_vbo($self->pipe, info); + } + + void draw_vertices(unsigned prim, + unsigned num_verts, + unsigned num_attribs, + const float *vertices) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_screen *screen = pipe->screen; + struct pipe_resource *vbuf; + struct pipe_transfer *transfer; + struct pipe_vertex_element velements[PIPE_MAX_ATTRIBS]; + struct pipe_vertex_buffer vbuffer; + float *map; + unsigned size; + unsigned i; + + size = num_verts * num_attribs * 4 * sizeof(float); + + vbuf = pipe_buffer_create(screen, + PIPE_BIND_VERTEX_BUFFER, + size); + if(!vbuf) + goto error1; + + map = pipe_buffer_map(pipe, vbuf, PIPE_TRANSFER_WRITE, &transfer); + if (!map) + goto error2; + memcpy(map, vertices, size); + pipe_buffer_unmap(pipe, vbuf, transfer); + + cso_save_vertex_elements($self->cso); + + /* tell pipe about the vertex attributes */ + for (i = 0; i < num_attribs; i++) { + velements[i].src_offset = i * 4 * sizeof(float); + velements[i].instance_divisor = 0; + velements[i].vertex_buffer_index = 0; + velements[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT; + } + cso_set_vertex_elements($self->cso, num_attribs, velements); + + /* tell pipe about the vertex buffer */ + memset(&vbuffer, 0, sizeof(vbuffer)); + vbuffer.buffer = vbuf; + vbuffer.stride = num_attribs * 4 * sizeof(float); /* vertex size */ + vbuffer.buffer_offset = 0; + vbuffer.max_index = num_verts - 1; + pipe->set_vertex_buffers(pipe, 1, &vbuffer); + + /* draw */ + util_draw_arrays(pipe, prim, 0, num_verts); + + cso_restore_vertex_elements($self->cso); + +error2: + pipe_resource_reference(&vbuf, NULL); +error1: + ; + } + + void + clear(unsigned buffers, const float *rgba, double depth = 0.0f, + unsigned stencil = 0) + { + $self->pipe->clear($self->pipe, buffers, rgba, depth, stencil); + } + + void + flush(unsigned flags = 0) { + struct pipe_fence_handle *fence = NULL; + $self->pipe->flush($self->pipe, flags | PIPE_FLUSH_RENDER_CACHE, &fence); + if(fence) { + /* TODO: allow asynchronous operation */ + $self->pipe->screen->fence_finish( $self->pipe->screen, fence, 0 ); + $self->pipe->screen->fence_reference( $self->pipe->screen, &fence, NULL ); + } + } + + /* + * Surface functions + */ + + void resource_copy_region(struct pipe_resource *dst, + struct pipe_subresource subdst, + unsigned dstx, unsigned dsty, unsigned dstz, + struct pipe_resource *src, + struct pipe_subresource subsrc, + unsigned srcx, unsigned srcy, unsigned srcz, + unsigned width, unsigned height) + { + $self->pipe->resource_copy_region($self->pipe, + dst, subdst, dstx, dsty, dstz, + src, subsrc, srcx, srcy, srcz, + width, height); + } + + + void clear_render_target(struct st_surface *dst, + float *rgba, + unsigned x, unsigned y, + unsigned width, unsigned height) + { + struct pipe_surface *_dst = NULL; + + _dst = st_pipe_surface(dst, PIPE_BIND_RENDER_TARGET); + if(!_dst) + SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing"); + + $self->pipe->clear_render_target($self->pipe, _dst, rgba, x, y, width, height); + + fail: + pipe_surface_reference(&_dst, NULL); + } + + void clear_depth_stencil(struct st_surface *dst, + unsigned clear_flags, + double depth, + unsigned stencil, + unsigned x, unsigned y, + unsigned width, unsigned height) + { + struct pipe_surface *_dst = NULL; + + _dst = st_pipe_surface(dst, PIPE_BIND_DEPTH_STENCIL); + if(!_dst) + SWIG_exception(SWIG_ValueError, "couldn't acquire destination surface for writing"); + + $self->pipe->clear_depth_stencil($self->pipe, _dst, clear_flags, depth, stencil, + x, y, width, height); + + fail: + pipe_surface_reference(&_dst, NULL); + } + + %cstring_output_allocate_size(char **STRING, int *LENGTH, free(*$1)); + void + surface_read_raw(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + char **STRING, int *LENGTH) + { + struct pipe_resource *texture = surface->texture; + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + unsigned stride; + + stride = util_format_get_stride(texture->format, w); + *LENGTH = util_format_get_nblocksy(texture->format, h) * stride; + *STRING = (char *) malloc(*LENGTH); + if(!*STRING) + return; + + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_READ, + x, y, w, h); + if(transfer) { + pipe_get_tile_raw(pipe, transfer, 0, 0, w, h, *STRING, stride); + pipe->transfer_destroy(pipe, transfer); + } + } + + %cstring_input_binary(const char *STRING, unsigned LENGTH); + void + surface_write_raw(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + const char *STRING, unsigned LENGTH, unsigned stride = 0) + { + struct pipe_resource *texture = surface->texture; + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + + if(stride == 0) + stride = util_format_get_stride(texture->format, w); + + if(LENGTH < util_format_get_nblocksy(texture->format, h) * stride) + SWIG_exception(SWIG_ValueError, "offset must be smaller than buffer size"); + + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_WRITE, + x, y, w, h); + if(!transfer) + SWIG_exception(SWIG_MemoryError, "couldn't initiate transfer"); + + pipe_put_tile_raw(pipe, transfer, 0, 0, w, h, STRING, stride); + pipe->transfer_destroy(pipe, transfer); + + fail: + return; + } + + void + surface_read_rgba(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + float *rgba) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_READ, + x, y, w, h); + if(transfer) { + pipe_get_tile_rgba(pipe, transfer, 0, 0, w, h, rgba); + pipe->transfer_destroy(pipe, transfer); + } + } + + void + surface_write_rgba(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + const float *rgba) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_WRITE, + x, y, w, h); + if(transfer) { + pipe_put_tile_rgba(pipe, transfer, 0, 0, w, h, rgba); + pipe->transfer_destroy(pipe, transfer); + } + } + + %cstring_output_allocate_size(char **STRING, int *LENGTH, free(*$1)); + void + surface_read_rgba8(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + char **STRING, int *LENGTH) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + float *rgba; + unsigned char *rgba8; + unsigned i, j, k; + + *LENGTH = 0; + *STRING = NULL; + + if (!surface) + return; + + *LENGTH = h*w*4; + *STRING = (char *) malloc(*LENGTH); + if(!*STRING) + return; + + rgba = malloc(h*w*4*sizeof(float)); + if(!rgba) + return; + + rgba8 = (unsigned char *) *STRING; + + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_READ, + x, y, w, h); + if(transfer) { + pipe_get_tile_rgba(pipe, transfer, 0, 0, w, h, rgba); + for(j = 0; j < h; ++j) { + for(i = 0; i < w; ++i) + for(k = 0; k <4; ++k) + rgba8[j*w*4 + i*4 + k] = float_to_ubyte(rgba[j*w*4 + i*4 + k]); + } + pipe->transfer_destroy(pipe, transfer); + } + + free(rgba); + } + + void + surface_read_z(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + unsigned *z) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_READ, + x, y, w, h); + if(transfer) { + pipe_get_tile_z(pipe, transfer, 0, 0, w, h, z); + pipe->transfer_destroy(pipe, transfer); + } + } + + void + surface_write_z(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + const unsigned *z) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_WRITE, + x, y, w, h); + if(transfer) { + pipe_put_tile_z(pipe, transfer, 0, 0, w, h, z); + pipe->transfer_destroy(pipe, transfer); + } + } + + void + surface_sample_rgba(struct st_surface *surface, + float *rgba, + int norm = 0) + { + st_sample_surface($self->pipe, surface, rgba, norm != 0); + } + + unsigned + surface_compare_rgba(struct st_surface *surface, + unsigned x, unsigned y, unsigned w, unsigned h, + const float *rgba, float tol = 0.0) + { + struct pipe_context *pipe = $self->pipe; + struct pipe_transfer *transfer; + float *rgba2; + const float *p1; + const float *p2; + unsigned i, j, n; + + rgba2 = MALLOC(h*w*4*sizeof(float)); + if(!rgba2) + return ~0; + + transfer = pipe_get_transfer(pipe, + surface->texture, + surface->face, + surface->level, + surface->zslice, + PIPE_TRANSFER_READ, + x, y, w, h); + if(!transfer) { + FREE(rgba2); + return ~0; + } + + pipe_get_tile_rgba(pipe, transfer, 0, 0, w, h, rgba2); + pipe->transfer_destroy(pipe, transfer); + + p1 = rgba; + p2 = rgba2; + n = 0; + for(i = h*w; i; --i) { + unsigned differs = 0; + for(j = 4; j; --j) { + float delta = *p2++ - *p1++; + if (delta < -tol || delta > tol) + differs = 1; + } + n += differs; + } + + FREE(rgba2); + + return n; + } + + %cstring_input_binary(const char *STRING, unsigned LENGTH); + void + transfer_inline_write(struct pipe_resource *resource, + struct pipe_subresource *sr, + unsigned usage, + const struct pipe_box *box, + const char *STRING, unsigned LENGTH, + unsigned stride, + unsigned slice_stride) + { + struct pipe_context *pipe = $self->pipe; + + pipe->transfer_inline_write(pipe, resource, *sr, usage, box, STRING, stride, slice_stride); + } + + %cstring_output_allocate_size(char **STRING, int *LENGTH, free(*$1)); + void buffer_read(struct pipe_resource *buffer, + char **STRING, int *LENGTH) + { + struct pipe_context *pipe = $self->pipe; + + assert(buffer->target == PIPE_BUFFER); + + *LENGTH = buffer->width0; + *STRING = (char *) malloc(buffer->width0); + if(!*STRING) + return; + + pipe_buffer_read(pipe, buffer, 0, buffer->width0, *STRING); + } + + void buffer_write(struct pipe_resource *buffer, + const char *STRING, unsigned LENGTH, unsigned offset = 0) + { + struct pipe_context *pipe = $self->pipe; + + assert(buffer->target == PIPE_BUFFER); + + if(offset > buffer->width0) + SWIG_exception(SWIG_ValueError, "offset must be smaller than buffer size"); + + if(offset + LENGTH > buffer->width0) + SWIG_exception(SWIG_ValueError, "data length must fit inside the buffer"); + + pipe_buffer_write(pipe, buffer, offset, LENGTH, STRING); + +fail: + return; + } + +}; --- mesa-7.9+repack.orig/src/gallium/state_trackers/wgl/opengl32.mingw.def +++ mesa-7.9+repack/src/gallium/state_trackers/wgl/opengl32.mingw.def @@ -0,0 +1,388 @@ +EXPORTS +; GlmfBeginGlsBlock = GlmfBeginGlsBlock@4 +; GlmfCloseMetaFile = GlmfCloseMetaFile@4 +; GlmfEndGlsBlock = GlmfEndGlsBlock@4 +; GlmfEndPlayback = GlmfEndPlayback@4 +; GlmfInitPlayback = GlmfInitPlayback@12 +; GlmfPlayGlsRecord = GlmfPlayGlsRecord@16 + glAccum = glAccum@8 + glAlphaFunc = glAlphaFunc@8 + glAreTexturesResident = glAreTexturesResident@12 + glArrayElement = glArrayElement@4 + glBegin = glBegin@4 + glBindTexture = glBindTexture@8 + glBitmap = glBitmap@28 + glBlendFunc = glBlendFunc@8 + glCallList = glCallList@4 + glCallLists = glCallLists@12 + glClear = glClear@4 + glClearAccum = glClearAccum@16 + glClearColor = glClearColor@16 + glClearDepth = glClearDepth@8 + glClearIndex = glClearIndex@4 + glClearStencil = glClearStencil@4 + glClipPlane = glClipPlane@8 + glColor3b = glColor3b@12 + glColor3bv = glColor3bv@4 + glColor3d = glColor3d@24 + glColor3dv = glColor3dv@4 + glColor3f = glColor3f@12 + glColor3fv = glColor3fv@4 + glColor3i = glColor3i@12 + glColor3iv = glColor3iv@4 + glColor3s = glColor3s@12 + glColor3sv = glColor3sv@4 + glColor3ub = glColor3ub@12 + glColor3ubv = glColor3ubv@4 + glColor3ui = glColor3ui@12 + glColor3uiv = glColor3uiv@4 + glColor3us = glColor3us@12 + glColor3usv = glColor3usv@4 + glColor4b = glColor4b@16 + glColor4bv = glColor4bv@4 + glColor4d = glColor4d@32 + glColor4dv = glColor4dv@4 + glColor4f = glColor4f@16 + glColor4fv = glColor4fv@4 + glColor4i = glColor4i@16 + glColor4iv = glColor4iv@4 + glColor4s = glColor4s@16 + glColor4sv = glColor4sv@4 + glColor4ub = glColor4ub@16 + glColor4ubv = glColor4ubv@4 + glColor4ui = glColor4ui@16 + glColor4uiv = glColor4uiv@4 + glColor4us = glColor4us@16 + glColor4usv = glColor4usv@4 + glColorMask = glColorMask@16 + glColorMaterial = glColorMaterial@8 + glColorPointer = glColorPointer@16 + glCopyPixels = glCopyPixels@20 + glCopyTexImage1D = glCopyTexImage1D@28 + glCopyTexImage2D = glCopyTexImage2D@32 + glCopyTexSubImage1D = glCopyTexSubImage1D@24 + glCopyTexSubImage2D = glCopyTexSubImage2D@32 + glCullFace = glCullFace@4 +; glDebugEntry = glDebugEntry@8 + glDeleteLists = glDeleteLists@8 + glDeleteTextures = glDeleteTextures@8 + glDepthFunc = glDepthFunc@4 + glDepthMask = glDepthMask@4 + glDepthRange = glDepthRange@16 + glDisable = glDisable@4 + glDisableClientState = glDisableClientState@4 + glDrawArrays = glDrawArrays@12 + glDrawBuffer = glDrawBuffer@4 + glDrawElements = glDrawElements@16 + glDrawPixels = glDrawPixels@20 + glEdgeFlag = glEdgeFlag@4 + glEdgeFlagPointer = glEdgeFlagPointer@8 + glEdgeFlagv = glEdgeFlagv@4 + glEnable = glEnable@4 + glEnableClientState = glEnableClientState@4 + glEnd = glEnd@0 + glEndList = glEndList@0 + glEvalCoord1d = glEvalCoord1d@8 + glEvalCoord1dv = glEvalCoord1dv@4 + glEvalCoord1f = glEvalCoord1f@4 + glEvalCoord1fv = glEvalCoord1fv@4 + glEvalCoord2d = glEvalCoord2d@16 + glEvalCoord2dv = glEvalCoord2dv@4 + glEvalCoord2f = glEvalCoord2f@8 + glEvalCoord2fv = glEvalCoord2fv@4 + glEvalMesh1 = glEvalMesh1@12 + glEvalMesh2 = glEvalMesh2@20 + glEvalPoint1 = glEvalPoint1@4 + glEvalPoint2 = glEvalPoint2@8 + glFeedbackBuffer = glFeedbackBuffer@12 + glFinish = glFinish@0 + glFlush = glFlush@0 + glFogf = glFogf@8 + glFogfv = glFogfv@8 + glFogi = glFogi@8 + glFogiv = glFogiv@8 + glFrontFace = glFrontFace@4 + glFrustum = glFrustum@48 + glGenLists = glGenLists@4 + glGenTextures = glGenTextures@8 + glGetBooleanv = glGetBooleanv@8 + glGetClipPlane = glGetClipPlane@8 + glGetDoublev = glGetDoublev@8 + glGetError = glGetError@0 + glGetFloatv = glGetFloatv@8 + glGetIntegerv = glGetIntegerv@8 + glGetLightfv = glGetLightfv@12 + glGetLightiv = glGetLightiv@12 + glGetMapdv = glGetMapdv@12 + glGetMapfv = glGetMapfv@12 + glGetMapiv = glGetMapiv@12 + glGetMaterialfv = glGetMaterialfv@12 + glGetMaterialiv = glGetMaterialiv@12 + glGetPixelMapfv = glGetPixelMapfv@8 + glGetPixelMapuiv = glGetPixelMapuiv@8 + glGetPixelMapusv = glGetPixelMapusv@8 + glGetPointerv = glGetPointerv@8 + glGetPolygonStipple = glGetPolygonStipple@4 + glGetString = glGetString@4 + glGetTexEnvfv = glGetTexEnvfv@12 + glGetTexEnviv = glGetTexEnviv@12 + glGetTexGendv = glGetTexGendv@12 + glGetTexGenfv = glGetTexGenfv@12 + glGetTexGeniv = glGetTexGeniv@12 + glGetTexImage = glGetTexImage@20 + glGetTexLevelParameterfv = glGetTexLevelParameterfv@16 + glGetTexLevelParameteriv = glGetTexLevelParameteriv@16 + glGetTexParameterfv = glGetTexParameterfv@12 + glGetTexParameteriv = glGetTexParameteriv@12 + glHint = glHint@8 + glIndexMask = glIndexMask@4 + glIndexPointer = glIndexPointer@12 + glIndexd = glIndexd@8 + glIndexdv = glIndexdv@4 + glIndexf = glIndexf@4 + glIndexfv = glIndexfv@4 + glIndexi = glIndexi@4 + glIndexiv = glIndexiv@4 + glIndexs = glIndexs@4 + glIndexsv = glIndexsv@4 + glIndexub = glIndexub@4 + glIndexubv = glIndexubv@4 + glInitNames = glInitNames@0 + glInterleavedArrays = glInterleavedArrays@12 + glIsEnabled = glIsEnabled@4 + glIsList = glIsList@4 + glIsTexture = glIsTexture@4 + glLightModelf = glLightModelf@8 + glLightModelfv = glLightModelfv@8 + glLightModeli = glLightModeli@8 + glLightModeliv = glLightModeliv@8 + glLightf = glLightf@12 + glLightfv = glLightfv@12 + glLighti = glLighti@12 + glLightiv = glLightiv@12 + glLineStipple = glLineStipple@8 + glLineWidth = glLineWidth@4 + glListBase = glListBase@4 + glLoadIdentity = glLoadIdentity@0 + glLoadMatrixd = glLoadMatrixd@4 + glLoadMatrixf = glLoadMatrixf@4 + glLoadName = glLoadName@4 + glLogicOp = glLogicOp@4 + glMap1d = glMap1d@32 + glMap1f = glMap1f@24 + glMap2d = glMap2d@56 + glMap2f = glMap2f@40 + glMapGrid1d = glMapGrid1d@20 + glMapGrid1f = glMapGrid1f@12 + glMapGrid2d = glMapGrid2d@40 + glMapGrid2f = glMapGrid2f@24 + glMaterialf = glMaterialf@12 + glMaterialfv = glMaterialfv@12 + glMateriali = glMateriali@12 + glMaterialiv = glMaterialiv@12 + glMatrixMode = glMatrixMode@4 + glMultMatrixd = glMultMatrixd@4 + glMultMatrixf = glMultMatrixf@4 + glNewList = glNewList@8 + glNormal3b = glNormal3b@12 + glNormal3bv = glNormal3bv@4 + glNormal3d = glNormal3d@24 + glNormal3dv = glNormal3dv@4 + glNormal3f = glNormal3f@12 + glNormal3fv = glNormal3fv@4 + glNormal3i = glNormal3i@12 + glNormal3iv = glNormal3iv@4 + glNormal3s = glNormal3s@12 + glNormal3sv = glNormal3sv@4 + glNormalPointer = glNormalPointer@12 + glOrtho = glOrtho@48 + glPassThrough = glPassThrough@4 + glPixelMapfv = glPixelMapfv@12 + glPixelMapuiv = glPixelMapuiv@12 + glPixelMapusv = glPixelMapusv@12 + glPixelStoref = glPixelStoref@8 + glPixelStorei = glPixelStorei@8 + glPixelTransferf = glPixelTransferf@8 + glPixelTransferi = glPixelTransferi@8 + glPixelZoom = glPixelZoom@8 + glPointSize = glPointSize@4 + glPolygonMode = glPolygonMode@8 + glPolygonOffset = glPolygonOffset@8 + glPolygonStipple = glPolygonStipple@4 + glPopAttrib = glPopAttrib@0 + glPopClientAttrib = glPopClientAttrib@0 + glPopMatrix = glPopMatrix@0 + glPopName = glPopName@0 + glPrioritizeTextures = glPrioritizeTextures@12 + glPushAttrib = glPushAttrib@4 + glPushClientAttrib = glPushClientAttrib@4 + glPushMatrix = glPushMatrix@0 + glPushName = glPushName@4 + glRasterPos2d = glRasterPos2d@16 + glRasterPos2dv = glRasterPos2dv@4 + glRasterPos2f = glRasterPos2f@8 + glRasterPos2fv = glRasterPos2fv@4 + glRasterPos2i = glRasterPos2i@8 + glRasterPos2iv = glRasterPos2iv@4 + glRasterPos2s = glRasterPos2s@8 + glRasterPos2sv = glRasterPos2sv@4 + glRasterPos3d = glRasterPos3d@24 + glRasterPos3dv = glRasterPos3dv@4 + glRasterPos3f = glRasterPos3f@12 + glRasterPos3fv = glRasterPos3fv@4 + glRasterPos3i = glRasterPos3i@12 + glRasterPos3iv = glRasterPos3iv@4 + glRasterPos3s = glRasterPos3s@12 + glRasterPos3sv = glRasterPos3sv@4 + glRasterPos4d = glRasterPos4d@32 + glRasterPos4dv = glRasterPos4dv@4 + glRasterPos4f = glRasterPos4f@16 + glRasterPos4fv = glRasterPos4fv@4 + glRasterPos4i = glRasterPos4i@16 + glRasterPos4iv = glRasterPos4iv@4 + glRasterPos4s = glRasterPos4s@16 + glRasterPos4sv = glRasterPos4sv@4 + glReadBuffer = glReadBuffer@4 + glReadPixels = glReadPixels@28 + glRectd = glRectd@32 + glRectdv = glRectdv@8 + glRectf = glRectf@16 + glRectfv = glRectfv@8 + glRecti = glRecti@16 + glRectiv = glRectiv@8 + glRects = glRects@16 + glRectsv = glRectsv@8 + glRenderMode = glRenderMode@4 + glRotated = glRotated@32 + glRotatef = glRotatef@16 + glScaled = glScaled@24 + glScalef = glScalef@12 + glScissor = glScissor@16 + glSelectBuffer = glSelectBuffer@8 + glShadeModel = glShadeModel@4 + glStencilFunc = glStencilFunc@12 + glStencilMask = glStencilMask@4 + glStencilOp = glStencilOp@12 + glTexCoord1d = glTexCoord1d@8 + glTexCoord1dv = glTexCoord1dv@4 + glTexCoord1f = glTexCoord1f@4 + glTexCoord1fv = glTexCoord1fv@4 + glTexCoord1i = glTexCoord1i@4 + glTexCoord1iv = glTexCoord1iv@4 + glTexCoord1s = glTexCoord1s@4 + glTexCoord1sv = glTexCoord1sv@4 + glTexCoord2d = glTexCoord2d@16 + glTexCoord2dv = glTexCoord2dv@4 + glTexCoord2f = glTexCoord2f@8 + glTexCoord2fv = glTexCoord2fv@4 + glTexCoord2i = glTexCoord2i@8 + glTexCoord2iv = glTexCoord2iv@4 + glTexCoord2s = glTexCoord2s@8 + glTexCoord2sv = glTexCoord2sv@4 + glTexCoord3d = glTexCoord3d@24 + glTexCoord3dv = glTexCoord3dv@4 + glTexCoord3f = glTexCoord3f@12 + glTexCoord3fv = glTexCoord3fv@4 + glTexCoord3i = glTexCoord3i@12 + glTexCoord3iv = glTexCoord3iv@4 + glTexCoord3s = glTexCoord3s@12 + glTexCoord3sv = glTexCoord3sv@4 + glTexCoord4d = glTexCoord4d@32 + glTexCoord4dv = glTexCoord4dv@4 + glTexCoord4f = glTexCoord4f@16 + glTexCoord4fv = glTexCoord4fv@4 + glTexCoord4i = glTexCoord4i@16 + glTexCoord4iv = glTexCoord4iv@4 + glTexCoord4s = glTexCoord4s@16 + glTexCoord4sv = glTexCoord4sv@4 + glTexCoordPointer = glTexCoordPointer@16 + glTexEnvf = glTexEnvf@12 + glTexEnvfv = glTexEnvfv@12 + glTexEnvi = glTexEnvi@12 + glTexEnviv = glTexEnviv@12 + glTexGend = glTexGend@16 + glTexGendv = glTexGendv@12 + glTexGenf = glTexGenf@12 + glTexGenfv = glTexGenfv@12 + glTexGeni = glTexGeni@12 + glTexGeniv = glTexGeniv@12 + glTexImage1D = glTexImage1D@32 + glTexImage2D = glTexImage2D@36 + glTexParameterf = glTexParameterf@12 + glTexParameterfv = glTexParameterfv@12 + glTexParameteri = glTexParameteri@12 + glTexParameteriv = glTexParameteriv@12 + glTexSubImage1D = glTexSubImage1D@28 + glTexSubImage2D = glTexSubImage2D@36 + glTranslated = glTranslated@24 + glTranslatef = glTranslatef@12 + glVertex2d = glVertex2d@16 + glVertex2dv = glVertex2dv@4 + glVertex2f = glVertex2f@8 + glVertex2fv = glVertex2fv@4 + glVertex2i = glVertex2i@8 + glVertex2iv = glVertex2iv@4 + glVertex2s = glVertex2s@8 + glVertex2sv = glVertex2sv@4 + glVertex3d = glVertex3d@24 + glVertex3dv = glVertex3dv@4 + glVertex3f = glVertex3f@12 + glVertex3fv = glVertex3fv@4 + glVertex3i = glVertex3i@12 + glVertex3iv = glVertex3iv@4 + glVertex3s = glVertex3s@12 + glVertex3sv = glVertex3sv@4 + glVertex4d = glVertex4d@32 + glVertex4dv = glVertex4dv@4 + glVertex4f = glVertex4f@16 + glVertex4fv = glVertex4fv@4 + glVertex4i = glVertex4i@16 + glVertex4iv = glVertex4iv@4 + glVertex4s = glVertex4s@16 + glVertex4sv = glVertex4sv@4 + glVertexPointer = glVertexPointer@16 + glViewport = glViewport@16 + wglChoosePixelFormat = wglChoosePixelFormat@8 + wglCopyContext = wglCopyContext@12 + wglCreateContext = wglCreateContext@4 + wglCreateLayerContext = wglCreateLayerContext@8 + wglDeleteContext = wglDeleteContext@4 + wglDescribeLayerPlane = wglDescribeLayerPlane@20 + wglDescribePixelFormat = wglDescribePixelFormat@16 + wglGetCurrentContext = wglGetCurrentContext@0 + wglGetCurrentDC = wglGetCurrentDC@0 +; wglGetDefaultProcAddress = wglGetDefaultProcAddress@4 + wglGetLayerPaletteEntries = wglGetLayerPaletteEntries@20 + wglGetPixelFormat = wglGetPixelFormat@4 + wglGetProcAddress = wglGetProcAddress@4 + wglMakeCurrent = wglMakeCurrent@8 + wglRealizeLayerPalette = wglRealizeLayerPalette@12 + wglSetLayerPaletteEntries = wglSetLayerPaletteEntries@20 + wglSetPixelFormat = wglSetPixelFormat@12 + wglShareLists = wglShareLists@8 + wglSwapBuffers = wglSwapBuffers@4 + wglSwapLayerBuffers = wglSwapLayerBuffers@8 + wglSwapMultipleBuffers = wglSwapMultipleBuffers@8 + wglUseFontBitmapsA = wglUseFontBitmapsA@16 + wglUseFontBitmapsW = wglUseFontBitmapsW@16 + wglUseFontOutlinesA = wglUseFontOutlinesA@32 + wglUseFontOutlinesW = wglUseFontOutlinesW@32 + DrvCopyContext = DrvCopyContext@12 + DrvCreateContext = DrvCreateContext@4 + DrvCreateLayerContext = DrvCreateLayerContext@8 + DrvDeleteContext = DrvDeleteContext@4 + DrvDescribeLayerPlane = DrvDescribeLayerPlane@20 + DrvDescribePixelFormat = DrvDescribePixelFormat@16 + DrvGetLayerPaletteEntries = DrvGetLayerPaletteEntries@20 + DrvGetProcAddress = DrvGetProcAddress@4 + DrvPresentBuffers = DrvPresentBuffers@8 + DrvRealizeLayerPalette = DrvRealizeLayerPalette@12 + DrvReleaseContext = DrvReleaseContext@4 + DrvSetCallbackProcs = DrvSetCallbackProcs@8 + DrvSetContext = DrvSetContext@12 + DrvSetLayerPaletteEntries = DrvSetLayerPaletteEntries@20 + DrvSetPixelFormat = DrvSetPixelFormat@8 + DrvShareLists = DrvShareLists@8 + DrvSwapBuffers = DrvSwapBuffers@4 + DrvSwapLayerBuffers = DrvSwapLayerBuffers@8 + DrvValidateVersion = DrvValidateVersion@4 --- mesa-7.9+repack.orig/src/gallium/state_trackers/wgl/opengl32.def +++ mesa-7.9+repack/src/gallium/state_trackers/wgl/opengl32.def @@ -0,0 +1,389 @@ +EXPORTS +; GlmfBeginGlsBlock +; GlmfCloseMetaFile +; GlmfEndGlsBlock +; GlmfEndPlayback +; GlmfInitPlayback +; GlmfPlayGlsRecord + glAccum + glAlphaFunc + glAreTexturesResident + glArrayElement + glBegin + glBindTexture + glBitmap + glBlendFunc + glCallList + glCallLists + glClear + glClearAccum + glClearColor + glClearDepth + glClearIndex + glClearStencil + glClipPlane + glColor3b + glColor3bv + glColor3d + glColor3dv + glColor3f + glColor3fv + glColor3i + glColor3iv + glColor3s + glColor3sv + glColor3ub + glColor3ubv + glColor3ui + glColor3uiv + glColor3us + glColor3usv + glColor4b + glColor4bv + glColor4d + glColor4dv + glColor4f + glColor4fv + glColor4i + glColor4iv + glColor4s + glColor4sv + glColor4ub + glColor4ubv + glColor4ui + glColor4uiv + glColor4us + glColor4usv + glColorMask + glColorMaterial + glColorPointer + glCopyPixels + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glCullFace +; glDebugEntry + glDeleteLists + glDeleteTextures + glDepthFunc + glDepthMask + glDepthRange + glDisable + glDisableClientState + glDrawArrays + glDrawBuffer + glDrawElements + glDrawPixels + glEdgeFlag + glEdgeFlagPointer + glEdgeFlagv + glEnable + glEnableClientState + glEnd + glEndList + glEvalCoord1d + glEvalCoord1dv + glEvalCoord1f + glEvalCoord1fv + glEvalCoord2d + glEvalCoord2dv + glEvalCoord2f + glEvalCoord2fv + glEvalMesh1 + glEvalMesh2 + glEvalPoint1 + glEvalPoint2 + glFeedbackBuffer + glFinish + glFlush + glFogf + glFogfv + glFogi + glFogiv + glFrontFace + glFrustum + glGenLists + glGenTextures + glGetBooleanv + glGetClipPlane + glGetDoublev + glGetError + glGetFloatv + glGetIntegerv + glGetLightfv + glGetLightiv + glGetMapdv + glGetMapfv + glGetMapiv + glGetMaterialfv + glGetMaterialiv + glGetPixelMapfv + glGetPixelMapuiv + glGetPixelMapusv + glGetPointerv + glGetPolygonStipple + glGetString + glGetTexEnvfv + glGetTexEnviv + glGetTexGendv + glGetTexGenfv + glGetTexGeniv + glGetTexImage + glGetTexLevelParameterfv + glGetTexLevelParameteriv + glGetTexParameterfv + glGetTexParameteriv + glHint + glIndexMask + glIndexPointer + glIndexd + glIndexdv + glIndexf + glIndexfv + glIndexi + glIndexiv + glIndexs + glIndexsv + glIndexub + glIndexubv + glInitNames + glInterleavedArrays + glIsEnabled + glIsList + glIsTexture + glLightModelf + glLightModelfv + glLightModeli + glLightModeliv + glLightf + glLightfv + glLighti + glLightiv + glLineStipple + glLineWidth + glListBase + glLoadIdentity + glLoadMatrixd + glLoadMatrixf + glLoadName + glLogicOp + glMap1d + glMap1f + glMap2d + glMap2f + glMapGrid1d + glMapGrid1f + glMapGrid2d + glMapGrid2f + glMaterialf + glMaterialfv + glMateriali + glMaterialiv + glMatrixMode + glMultMatrixd + glMultMatrixf + glNewList + glNormal3b + glNormal3bv + glNormal3d + glNormal3dv + glNormal3f + glNormal3fv + glNormal3i + glNormal3iv + glNormal3s + glNormal3sv + glNormalPointer + glOrtho + glPassThrough + glPixelMapfv + glPixelMapuiv + glPixelMapusv + glPixelStoref + glPixelStorei + glPixelTransferf + glPixelTransferi + glPixelZoom + glPointSize + glPolygonMode + glPolygonOffset + glPolygonStipple + glPopAttrib + glPopClientAttrib + glPopMatrix + glPopName + glPrioritizeTextures + glPushAttrib + glPushClientAttrib + glPushMatrix + glPushName + glRasterPos2d + glRasterPos2dv + glRasterPos2f + glRasterPos2fv + glRasterPos2i + glRasterPos2iv + glRasterPos2s + glRasterPos2sv + glRasterPos3d + glRasterPos3dv + glRasterPos3f + glRasterPos3fv + glRasterPos3i + glRasterPos3iv + glRasterPos3s + glRasterPos3sv + glRasterPos4d + glRasterPos4dv + glRasterPos4f + glRasterPos4fv + glRasterPos4i + glRasterPos4iv + glRasterPos4s + glRasterPos4sv + glReadBuffer + glReadPixels + glRectd + glRectdv + glRectf + glRectfv + glRecti + glRectiv + glRects + glRectsv + glRenderMode + glRotated + glRotatef + glScaled + glScalef + glScissor + glSelectBuffer + glShadeModel + glStencilFunc + glStencilMask + glStencilOp + glTexCoord1d + glTexCoord1dv + glTexCoord1f + glTexCoord1fv + glTexCoord1i + glTexCoord1iv + glTexCoord1s + glTexCoord1sv + glTexCoord2d + glTexCoord2dv + glTexCoord2f + glTexCoord2fv + glTexCoord2i + glTexCoord2iv + glTexCoord2s + glTexCoord2sv + glTexCoord3d + glTexCoord3dv + glTexCoord3f + glTexCoord3fv + glTexCoord3i + glTexCoord3iv + glTexCoord3s + glTexCoord3sv + glTexCoord4d + glTexCoord4dv + glTexCoord4f + glTexCoord4fv + glTexCoord4i + glTexCoord4iv + glTexCoord4s + glTexCoord4sv + glTexCoordPointer + glTexEnvf + glTexEnvfv + glTexEnvi + glTexEnviv + glTexGend + glTexGendv + glTexGenf + glTexGenfv + glTexGeni + glTexGeniv + glTexImage1D + glTexImage2D + glTexParameterf + glTexParameterfv + glTexParameteri + glTexParameteriv + glTexSubImage1D + glTexSubImage2D + glTranslated + glTranslatef + glVertex2d + glVertex2dv + glVertex2f + glVertex2fv + glVertex2i + glVertex2iv + glVertex2s + glVertex2sv + glVertex3d + glVertex3dv + glVertex3f + glVertex3fv + glVertex3i + glVertex3iv + glVertex3s + glVertex3sv + glVertex4d + glVertex4dv + glVertex4f + glVertex4fv + glVertex4i + glVertex4iv + glVertex4s + glVertex4sv + glVertexPointer + glViewport + wglChoosePixelFormat + wglCopyContext + wglCreateContext + wglCreateLayerContext + wglDeleteContext + wglDescribeLayerPlane + wglDescribePixelFormat + wglGetCurrentContext + wglGetCurrentDC +; wglGetDefaultProcAddress + wglGetLayerPaletteEntries + wglGetPixelFormat + wglGetProcAddress + wglMakeCurrent + wglRealizeLayerPalette + wglSetLayerPaletteEntries + wglSetPixelFormat + wglShareLists + wglSwapBuffers + wglSwapLayerBuffers + wglSwapMultipleBuffers + wglUseFontBitmapsA + wglUseFontBitmapsW + wglUseFontOutlinesA + wglUseFontOutlinesW + wglGetExtensionsStringARB + DrvCopyContext + DrvCreateContext + DrvCreateLayerContext + DrvDeleteContext + DrvDescribeLayerPlane + DrvDescribePixelFormat + DrvGetLayerPaletteEntries + DrvGetProcAddress + DrvPresentBuffers + DrvRealizeLayerPalette + DrvReleaseContext + DrvSetCallbackProcs + DrvSetContext + DrvSetLayerPaletteEntries + DrvSetPixelFormat + DrvShareLists + DrvSwapBuffers + DrvSwapLayerBuffers + DrvValidateVersion --- mesa-7.9+repack.orig/src/mapi/glapi/gen/next_available_offset.sh +++ mesa-7.9+repack/src/mapi/glapi/gen/next_available_offset.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# +# (C) Copyright IBM Corporation 2004 +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# IBM AND/OR ITS SUPPLIERS 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. +# +# Authors: +# Ian Romanick + +# Trivial shell script to search the API definition file and print out the +# next numerically available API entry-point offset. This could probably +# be made smarter, but it would be better to use the existin Python +# framework to do that. This is just a quick-and-dirty hack. + +num=$(grep 'offset="' gl_API.xml |\ + sed 's/.\+ offset="//g;s/".*$//g' |\ + grep -v '?' |\ + sort -rn |\ + head -1) + +echo $((num + 1)) --- mesa-7.9+repack.orig/src/mapi/vgapi/SConscript +++ mesa-7.9+repack/src/mapi/vgapi/SConscript @@ -0,0 +1,56 @@ +####################################################################### +# SConscript for vgapi + +from sys import executable as python_cmd + +Import('*') + +if env['platform'] != 'winddk': + + env = env.Clone() + + vgapi_header = env.CodeGenerate( + target = '#src/mapi/vgapi/vgapi_tmp.h', + script = '../mapi/mapi_abi.py', + source = 'vgapi.csv', + command = python_cmd + ' $SCRIPT -i vgapi/vgapi_defines.h $SOURCE > $TARGET' + ) + + env.Append(CPPDEFINES = [ + 'MAPI_ABI_HEADER=\\"vgapi/vgapi_tmp.h\\"', + 'MAPI_DLL_EXPORTS', + 'KHRONOS_DLL_EXPORTS', + ]) + + env.Append(CPPPATH = [ + '#/include', + '#/src/mapi', + ]) + + mapi_sources = [ + 'entry.c', + 'mapi.c', + 'stub.c', + 'table.c', + 'u_current.c', + 'u_execmem.c', + 'u_thread.c', + ] + + vgapi_objects = [] + for s in mapi_sources: + o = env.SharedObject(s[:-2], '../mapi/' + s) + vgapi_objects.append(o) + + env.Depends(vgapi_objects, vgapi_header) + + openvg = env.SharedLibrary( + target = 'libOpenVG', + source = vgapi_objects, + ) + + env.InstallSharedLibrary(openvg, version=(1, 0, 0)) + + vgapi = [env.FindIxes(openvg, 'LIBPREFIX', 'LIBSUFFIX')] + + Export(['vgapi', 'vgapi_header']) --- mesa-7.9+repack.orig/src/mesa/SConscript +++ mesa-7.9+repack/src/mesa/SConscript @@ -0,0 +1,322 @@ +####################################################################### +# SConscript for Mesa + + +Import('*') + +if env['platform'] != 'winddk': + + env = env.Clone() + + env.Append(CPPPATH = [ + '#/src/mapi', + '#/src/glsl', + '#/src/mesa', + ]) + + if env['platform'] == 'windows': + env.Append(CPPDEFINES = [ + '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers + 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers + 'WIN32_THREADS', # use Win32 thread API + ]) + env.Prepend(CPPPATH = ['#src/talloc']) + + # + # Source files + # + + main_sources = [ + 'main/api_arrayelt.c', + 'main/api_exec.c', + 'main/api_loopback.c', + 'main/api_noop.c', + 'main/api_validate.c', + 'main/accum.c', + 'main/arbprogram.c', + 'main/atifragshader.c', + 'main/attrib.c', + 'main/arrayobj.c', + 'main/blend.c', + 'main/bufferobj.c', + 'main/buffers.c', + 'main/clear.c', + 'main/clip.c', + 'main/colortab.c', + 'main/condrender.c', + 'main/context.c', + 'main/convolve.c', + 'main/cpuinfo.c', + 'main/debug.c', + 'main/depth.c', + 'main/depthstencil.c', + 'main/dlist.c', + 'main/dlopen.c', + 'main/drawpix.c', + 'main/drawtex.c', + 'main/enable.c', + 'main/enums.c', + 'main/eval.c', + 'main/execmem.c', + 'main/extensions.c', + 'main/fbobject.c', + 'main/feedback.c', + 'main/ffvertex_prog.c', + 'main/fog.c', + 'main/formats.c', + 'main/framebuffer.c', + 'main/get.c', + 'main/getstring.c', + 'main/hash.c', + 'main/hint.c', + 'main/histogram.c', + 'main/image.c', + 'main/imports.c', + 'main/light.c', + 'main/lines.c', + 'main/matrix.c', + 'main/mipmap.c', + 'main/mm.c', + 'main/multisample.c', + 'main/nvprogram.c', + 'main/pixel.c', + 'main/pixelstore.c', + 'main/points.c', + 'main/polygon.c', + 'main/querymatrix.c', + 'main/queryobj.c', + 'main/rastpos.c', + 'main/readpix.c', + 'main/remap.c', + 'main/renderbuffer.c', + 'main/scissor.c', + 'main/shaderapi.c', + 'main/shaderobj.c', + 'main/shared.c', + 'main/state.c', + 'main/stencil.c', + 'main/syncobj.c', + 'main/texcompress.c', + 'main/texcompress_s3tc.c', + 'main/texcompress_fxt1.c', + 'main/texenv.c', + 'main/texenvprogram.c', + 'main/texfetch.c', + 'main/texformat.c', + 'main/texgen.c', + 'main/texgetimage.c', + 'main/teximage.c', + 'main/texobj.c', + 'main/texpal.c', + 'main/texparam.c', + 'main/texrender.c', + 'main/texstate.c', + 'main/texstore.c', + 'main/transformfeedback.c', + 'main/uniforms.c', + 'main/varray.c', + 'main/version.c', + 'main/viewport.c', + 'main/vtxfmt.c', + ] + + math_sources = [ + 'math/m_debug_clip.c', + 'math/m_debug_norm.c', + 'math/m_debug_xform.c', + 'math/m_eval.c', + 'math/m_matrix.c', + 'math/m_translate.c', + 'math/m_vector.c', + 'math/m_xform.c', + ] + + vbo_sources = [ + 'vbo/vbo_context.c', + 'vbo/vbo_exec.c', + 'vbo/vbo_exec_api.c', + 'vbo/vbo_exec_array.c', + 'vbo/vbo_exec_draw.c', + 'vbo/vbo_exec_eval.c', + 'vbo/vbo_rebase.c', + 'vbo/vbo_split.c', + 'vbo/vbo_split_copy.c', + 'vbo/vbo_split_inplace.c', + 'vbo/vbo_save.c', + 'vbo/vbo_save_api.c', + 'vbo/vbo_save_draw.c', + 'vbo/vbo_save_loopback.c', + ] + + vf_sources = [ + 'vf/vf.c', + 'vf/vf_generic.c', + 'vf/vf_sse.c', + ] + + statetracker_sources = [ + 'state_tracker/st_atom.c', + 'state_tracker/st_atom_blend.c', + 'state_tracker/st_atom_clip.c', + 'state_tracker/st_atom_constbuf.c', + 'state_tracker/st_atom_depth.c', + 'state_tracker/st_atom_framebuffer.c', + 'state_tracker/st_atom_msaa.c', + 'state_tracker/st_atom_pixeltransfer.c', + 'state_tracker/st_atom_sampler.c', + 'state_tracker/st_atom_scissor.c', + 'state_tracker/st_atom_shader.c', + 'state_tracker/st_atom_rasterizer.c', + 'state_tracker/st_atom_stipple.c', + 'state_tracker/st_atom_texture.c', + 'state_tracker/st_atom_viewport.c', + 'state_tracker/st_cb_accum.c', + 'state_tracker/st_cb_bitmap.c', + 'state_tracker/st_cb_blit.c', + 'state_tracker/st_cb_bufferobjects.c', + 'state_tracker/st_cb_clear.c', + 'state_tracker/st_cb_condrender.c', + 'state_tracker/st_cb_flush.c', + 'state_tracker/st_cb_drawpixels.c', + 'state_tracker/st_cb_drawtex.c', + 'state_tracker/st_cb_eglimage.c', + 'state_tracker/st_cb_fbo.c', + 'state_tracker/st_cb_feedback.c', + 'state_tracker/st_cb_program.c', + 'state_tracker/st_cb_queryobj.c', + 'state_tracker/st_cb_rasterpos.c', + 'state_tracker/st_cb_readpixels.c', + 'state_tracker/st_cb_strings.c', + 'state_tracker/st_cb_texture.c', + 'state_tracker/st_cb_viewport.c', + 'state_tracker/st_cb_xformfb.c', + 'state_tracker/st_context.c', + 'state_tracker/st_debug.c', + 'state_tracker/st_draw.c', + 'state_tracker/st_draw_feedback.c', + 'state_tracker/st_extensions.c', + 'state_tracker/st_format.c', + 'state_tracker/st_gen_mipmap.c', + 'state_tracker/st_manager.c', + 'state_tracker/st_mesa_to_tgsi.c', + 'state_tracker/st_program.c', + 'state_tracker/st_texture.c', + ] + + program_sources = [ + 'program/arbprogparse.c', + 'program/hash_table.c', + 'program/ir_to_mesa.cpp', + 'program/lex.yy.c', + 'program/nvfragparse.c', + 'program/nvvertparse.c', + 'program/program.c', + 'program/program_parse.tab.c', + 'program/program_parse_extra.c', + 'program/prog_cache.c', + 'program/prog_execute.c', + 'program/prog_instruction.c', + 'program/prog_noise.c', + 'program/prog_optimize.c', + 'program/prog_parameter.c', + 'program/prog_parameter_layout.c', + 'program/prog_print.c', + 'program/prog_statevars.c', + 'program/prog_uniform.c', + 'program/programopt.c', + 'program/symbol_table.c', + ] + + mesa_sources = ( + main_sources + + math_sources + + program_sources + + vbo_sources + + vf_sources + + statetracker_sources + ) + + # + # Assembly sources + # + if gcc and env['machine'] == 'x86': + env.Append(CPPDEFINES = [ + 'USE_X86_ASM', + 'USE_MMX_ASM', + 'USE_3DNOW_ASM', + 'USE_SSE_ASM', + ]) + mesa_sources += [ + 'x86/common_x86.c', + 'x86/x86_xform.c', + 'x86/3dnow.c', + 'x86/sse.c', + 'x86/common_x86_asm.S', + 'x86/x86_xform2.S', + 'x86/x86_xform3.S', + 'x86/x86_xform4.S', + 'x86/x86_cliptest.S', + 'x86/mmx_blend.S', + 'x86/3dnow_xform1.S', + 'x86/3dnow_xform2.S', + 'x86/3dnow_xform3.S', + 'x86/3dnow_xform4.S', + 'x86/3dnow_normal.S', + 'x86/sse_xform1.S', + 'x86/sse_xform2.S', + 'x86/sse_xform3.S', + 'x86/sse_xform4.S', + 'x86/sse_normal.S', + 'x86/read_rgba_span_x86.S', + ] + elif gcc and env['machine'] == 'x86_64': + env.Append(CPPDEFINES = [ + 'USE_X86_64_ASM', + ]) + mesa_sources += [ + 'x86-64/x86-64.c', + 'x86-64/xform4.S', + ] + elif gcc and env['machine'] == 'ppc': + env.Append(CPPDEFINES = [ + 'USE_PPC_ASM', + 'USE_VMX_ASM', + ]) + mesa_sources += [ + 'ppc/common_ppc.c', + ] + elif gcc and env['machine'] == 'sparc': + mesa_sources += [ + 'sparc/sparc.c', + 'sparc/clip.S', + 'sparc/norm.S', + 'sparc/xform.S', + ] + else: + pass + + # Generate matypes.h + if gcc and env['machine'] in ('x86', 'x86_64'): + # See http://www.scons.org/wiki/UsingCodeGenerators + gen_matypes = env.Program( + target = 'gen_matypes', + source = 'x86/gen_matypes.c', + ) + matypes = env.Command( + 'matypes.h', + gen_matypes, + gen_matypes[0].abspath + ' > $TARGET', + ) + # Add the dir containing the generated header (somewhere inside the + # build dir) to the include path + env.Append(CPPPATH = [matypes[0].dir]) + + # + # Libraries + # + + mesa = env.ConvenienceLibrary( + target = 'mesa', + source = mesa_sources, + ) + Export('mesa') --- mesa-7.9+repack.orig/src/mesa/Makefile +++ mesa-7.9+repack/src/mesa/Makefile @@ -34,7 +34,7 @@ ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES) # append include dirs -MESA_CPPFLAGS += $(INCLUDE_DIRS) +MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS) ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS) ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS) --- mesa-7.9+repack.orig/src/mesa/x86-64/calling_convention.txt +++ mesa-7.9+repack/src/mesa/x86-64/calling_convention.txt @@ -0,0 +1,50 @@ +Register Usage +rax temporary register; with variable arguments passes information + about the number of SSE registers used; 1st return register + +rbx* callee-saved register; optionally used as base pointer + +rcx used to pass 4th integer argument to functions + +rdx used to pass 3rd argument to functions 2nd return register + +rsp* stack pointer + +rbp* callee-saved register; optionally used as frame pointer + +rsi used to pass 2nd argument to functions + +rdi used to pass 1st argument to functions + +r8 used to pass 5th argument to functions + +r9 used to pass 6th argument to functions + +r10 temporary register, used for passing a function's static chain pointer + +r11 temporary register + +r12-15* callee-saved registers + +xmm01 used to pass and return floating point arguments + +xmm27 used to pass floating point arguments + +xmm815 temporary registers + +mmx07 temporary registers + +st0 temporary register; used to return long double arguments + +st1 temporary registers; used to return long double arguments + +st27 temporary registers + +fs Reserved for system use (as thread specific data register) + + + +*) must be preserved across function calls + +Integer arguments from list: rdi,rsi,rdx,rcx,r8,r9,stack +Floating point arguments from list: xmm0-xmm7 \ No newline at end of file --- mesa-7.9+repack.orig/src/mesa/main/mipmap.c +++ mesa-7.9+repack/src/mesa/main/mipmap.c @@ -606,7 +606,7 @@ FILTER_3D(0); } } - if ((datatype == GL_BYTE) && (comps == 4)) { + else if ((datatype == GL_BYTE) && (comps == 4)) { DECLARE_ROW_POINTERS(GLbyte, 4); for (i = j = 0, k = k0; i < (GLuint) dstWidth; --- mesa-7.9+repack.orig/src/mesa/swrast/NOTES +++ mesa-7.9+repack/src/mesa/swrast/NOTES @@ -0,0 +1,55 @@ +INTRODUCTION + +Mesa's native software rasterizer. This module provides the fallback +paths for rasterization operations and states that aren't accelerated +in hardware drivers, and as the full rasterization engine in software +drivers. + +The swrast module 'stands alone', relying only on interfaces to core +mesa and it's own driver interface. It knows nothing about the tnl or +other modules, allowing it to be used for fallback paths in future tnl +schemes without modification. + +As well as providing triangle/line/point rasterization functionality, +the module provides implementations of the pixel operations +(ReadPixels, etc), and texture operations (CopyTexSubImage) which may +be plugged in to the core Mesa driver interface where accelerated +versions of these operations are unavailable. + + +STATE + +To create and destroy the module: + + GLboolean _swrast_CreateContext( GLcontext *ctx ); + void _swrast_DestroyContext( GLcontext *ctx ); + +This module tracks state changes internally and maintains derived +values based on the current state. For this to work, the driver +ensure the following funciton is called whenever the state changes and +the swsetup module is 'awake': + + void _swrast_InvalidateState( GLcontext *ctx, GLuint new_state ); + +There is no explicit call to put the swrast module to sleep. + + +CUSTOMIZATION + + void (*choose_point)( GLcontext * ); + void (*choose_line)( GLcontext * ); + void (*choose_triangle)( GLcontext * ); + +Drivers may add additional triangle/line/point functions to swrast by +overriding these functions. It is necessary for the driver to be very +careful that it doesn't return an inappropriate function, eg a +rasterization function in feedback mode. See the X11 driver for +examples. + +DRIVER INTERFACE + +The swrast device driver provides swrast primarily with span- and +pixel- level interfaces to a framebuffer, with a few additional hooks +for locking and setting the read buffer. + +See the definition of struct swrast_device_driver in swrast.h. \ No newline at end of file --- mesa-7.9+repack.orig/src/mesa/swrast/s_texfilter.c +++ mesa-7.9+repack/src/mesa/swrast/s_texfilter.c @@ -2972,11 +2972,16 @@ { GLint level; - lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); - - level = (GLint) lambda; - - level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) { + /* no mipmapping - use base level */ + level = tObj->BaseLevel; + } + else { + /* choose mipmap level */ + lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); + level = (GLint) lambda; + level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + } return level; } --- mesa-7.9+repack.orig/src/mesa/swrast_setup/NOTES +++ mesa-7.9+repack/src/mesa/swrast_setup/NOTES @@ -0,0 +1,65 @@ +INTRODUCTION + +A helper module which provides glue to bind the software rasterizer to +the software t&l module. The main task of this module is to build +swrast vertices from the t&l vertex_buffer structs, and to use them to +perform triangle setup functions not implemented in the software +rasterizer. + +The module implements a full set of functions to plug into the +t_vb_render.c driver interface (tnl->Driver.Render.*). + +There are strong advantages to decoupling the software rasterizer from +the t&l module, primarily allowing hardware drivers better control +over fallbacks, the removal of implicit knowledge about the software +rasterizer in the t&l module, allowing the two modules to evolve +independently and allowing either to be substituted with equivalent +functionality from another codebase. + +This module implements triangle/quad setup for offset, unfilled and +twoside-lit triangles. The software rasterizer doesn't handle these +primitives directly. + +Hardware rasterization drivers typically use this module in situations +where no hardware rasterization is possible, ie during total +fallbacks. + +STATE + +To create and destroy the module: + + GLboolean _swsetup_CreateContext( GLcontext *ctx ); + void _swsetup_DestroyContext( GLcontext *ctx ); + +The module is not active by default, and must be installed by calling +_swrast_Wakeup(). This function installs internal swrast_setup +functions into all the tnl->Driver.Render driver hooks, thus taking +over the task of rasterization entirely: + + void _swrast_Wakeup( GLcontext *ctx ); + + +This module tracks state changes internally and maintains derived +values based on the current state. For this to work, the driver +ensure the following funciton is called whenever the state changes and +the swsetup module is 'awake': + + void _swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ); + +There is no explicit call to put the swsetup module to sleep. Simply +install other function pointers into all the tnl->Driver.Render.* +hooks, and (optionally) cease calling _swsetup_InvalidateState(). + +DRIVER INTERFACE + +The module offers a minimal driver interface: + + void (*Start)( GLcontext *ctx ); + void (*Finish)( GLcontext *ctx ); + +These are called before and after the completion of all swrast drawing +activity. As swrast doesn't call callbacks during triangle, line or +point rasterization, these are necessary to provide locking hooks for +some drivers. They may otherwise be left null. + + --- mesa-7.9+repack.orig/src/mesa/drivers/windows/fx/fx.rc +++ mesa-7.9+repack/src/mesa/drivers/windows/fx/fx.rc @@ -0,0 +1,39 @@ +#include + +#define PRODNAME "Mesa 6.x" +#define CONTACTSTR "http://www.mesa3d.org" +#define HWSTR "3dfx Voodoo Graphics, Voodoo Rush, Voodoo^2, Voodoo Banshee, Velocity 100/200, Voodoo3, Voodoo4, Voodoo5" +#define COPYRIGHTSTR "Copyright \251 Brian E. Paul" + +#define VERSIONSTR "6.3.0.1" +#define MANVERSION 6 +#define MANREVISION 3 +#define BUILD_NUMBER 1 + +VS_VERSION_INFO VERSIONINFO + FILEVERSION MANVERSION, MANREVISION, 0, BUILD_NUMBER + PRODUCTVERSION MANVERSION, MANREVISION, 0, BUILD_NUMBER + FILEFLAGSMASK 0x0030003FL + + FILEOS VOS_DOS_WINDOWS32 + FILETYPE VFT_DRV + FILESUBTYPE VFT2_DRV_INSTALLABLE +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", PRODNAME + VALUE "FileVersion", VERSIONSTR + VALUE "LegalCopyright", COPYRIGHTSTR + VALUE "ProductName", PRODNAME + VALUE "Graphics Subsystem", HWSTR + VALUE "Contact", CONTACTSTR + END + END + BLOCK "VarFileInfo" + BEGIN + /* the following line should be extended for localized versions */ + VALUE "Translation", 0x409, 1252 + END +END --- mesa-7.9+repack.orig/src/mesa/drivers/windows/gdi/InitCritSections.cpp +++ mesa-7.9+repack/src/mesa/drivers/windows/gdi/InitCritSections.cpp @@ -0,0 +1,32 @@ +#include "glapi.h" +#include "glThread.h" + +#ifdef WIN32_THREADS +extern "C" _glthread_Mutex OneTimeLock; +extern "C" _glthread_Mutex GenTexturesLock; + +extern "C" void FreeAllTSD(void); + +class _CriticalSectionInit +{ +public: + static _CriticalSectionInit m_inst; + + _CriticalSectionInit() + { + _glthread_INIT_MUTEX(OneTimeLock); + _glthread_INIT_MUTEX(GenTexturesLock); + } + + ~_CriticalSectionInit() + { + _glthread_DESTROY_MUTEX(OneTimeLock); + _glthread_DESTROY_MUTEX(GenTexturesLock); + FreeAllTSD(); + } +}; + +_CriticalSectionInit _CriticalSectionInit::m_inst; + + +#endif --- mesa-7.9+repack.orig/src/mesa/drivers/windows/gldirect/opengl32.ref +++ mesa-7.9+repack/src/mesa/drivers/windows/gldirect/opengl32.ref @@ -0,0 +1,495 @@ +;**************************************************************************** +;* +;* Mesa 3-D graphics library +;* Direct3D Driver Interface +;* +;* ======================================================================== +;* +;* Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved. +;* +;* Permission is hereby granted, free of charge, to any person obtaining a +;* copy of this software and associated documentation files (the "Software"), +;* to deal in the Software without restriction, including without limitation +;* the rights to use, copy, modify, merge, publish, distribute, sublicense, +;* and/or sell copies of the Software, and to permit persons to whom the +;* Software is furnished to do so, subject to the following conditions: +;* +;* The above copyright notice and this permission notice shall be included +;* in all copies or substantial portions of the Software. +;* +;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +;* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +;* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +;* SCITECH SOFTWARE INC 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. +;* +;* ====================================================================== +;* +;* Language: ANSI C +;* Environment: Windows 9x/2000/XP/XBox (Win32) +;* +;* Description: DLL Module definition file +;* +;****************************************************************************/ + +DESCRIPTION 'GLDirect' + +VERSION 3.0 + +EXPORTS + glAccum + glAlphaFunc + glAreTexturesResident + glArrayElement + glBegin + glBindTexture + glBitmap + glBlendFunc + glCallList + glCallLists + glClear + glClearAccum + glClearIndex + glClearColor + glClearDepth + glClearStencil + glClipPlane + glColor3b + glColor3d + glColor3f + glColor3i + glColor3s + glColor3ub + glColor3ui + glColor3us + glColor4b + glColor4d + glColor4f + glColor4i + glColor4s + glColor4ub + glColor4ui + glColor4us + glColor3bv + glColor3dv + glColor3fv + glColor3iv + glColor3sv + glColor3ubv + glColor3uiv + glColor3usv + glColor4bv + glColor4dv + glColor4fv + glColor4iv + glColor4sv + glColor4ubv + glColor4uiv + glColor4usv + glColorMask + glColorMaterial + glColorPointer + glColorTableEXT + glColorSubTableEXT + glCopyPixels + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glCullFace + glDepthFunc + glDepthMask + glDepthRange + glDeleteLists + glDeleteTextures + glDisable + glDisableClientState + glDrawArrays + glDrawBuffer + glDrawElements + glDrawPixels + glEnable + glEnableClientState + glEnd + glEndList + glEvalCoord1d + glEvalCoord1f + glEvalCoord1dv + glEvalCoord1fv + glEvalCoord2d + glEvalCoord2f + glEvalCoord2dv + glEvalCoord2fv + glEvalPoint1 + glEvalPoint2 + glEvalMesh1 + glEdgeFlag + glEdgeFlagv + glEdgeFlagPointer + glEvalMesh2 + glFeedbackBuffer + glFinish + glFlush + glFogf + glFogi + glFogfv + glFogiv + glFrontFace + glFrustum + glGenLists + glGenTextures + glGetBooleanv + glGetClipPlane + glGetColorTableEXT + glGetColorTableParameterivEXT + glGetColorTableParameterfvEXT + glGetDoublev + glGetError + glGetFloatv + glGetIntegerv + glGetLightfv + glGetLightiv + glGetMapdv + glGetMapfv + glGetMapiv + glGetMaterialfv + glGetMaterialiv + glGetPixelMapfv + glGetPixelMapuiv + glGetPixelMapusv + glGetPointerv + glGetPolygonStipple + glGetString + glGetTexEnvfv + glGetTexEnviv + glGetTexGeniv + glGetTexGendv + glGetTexGenfv + glGetTexImage + glGetTexLevelParameterfv + glGetTexLevelParameteriv + glGetTexParameterfv + glGetTexParameteriv + glHint + glIndexd + glIndexf + glIndexi + glIndexs + glIndexub + glIndexdv + glIndexfv + glIndexiv + glIndexsv + glIndexubv + glIndexMask + glIndexPointer + glInterleavedArrays + glInitNames + glIsList + glIsTexture + glLightf + glLighti + glLightfv + glLightiv + glLightModelf + glLightModeli + glLightModelfv + glLightModeliv + glLineWidth + glLineStipple + glListBase + glLoadIdentity + glLoadMatrixd + glLoadMatrixf + glLoadName + glLogicOp + glMap1d + glMap1f + glMap2d + glMap2f + glMapGrid1d + glMapGrid1f + glMapGrid2d + glMapGrid2f + glMaterialf + glMateriali + glMaterialfv + glMaterialiv + glMatrixMode + glMultMatrixd + glMultMatrixf + glNewList + glNormal3b + glNormal3d + glNormal3f + glNormal3i + glNormal3s + glNormal3bv + glNormal3dv + glNormal3fv + glNormal3iv + glNormal3sv + glNormalPointer + glOrtho + glPassThrough + glPixelMapfv + glPixelMapuiv + glPixelMapusv + glPixelStoref + glPixelStorei + glPixelTransferf + glPixelTransferi + glPixelZoom + glPointSize + glPolygonMode + glPolygonOffset + glPolygonOffsetEXT + glPolygonStipple + glPopAttrib + glPopClientAttrib + glPopMatrix + glPopName + glPrioritizeTextures + glPushMatrix + glRasterPos2d + glRasterPos2f + glRasterPos2i + glRasterPos2s + glRasterPos3d + glRasterPos3f + glRasterPos3i + glRasterPos3s + glRasterPos4d + glRasterPos4f + glRasterPos4i + glRasterPos4s + glRasterPos2dv + glRasterPos2fv + glRasterPos2iv + glRasterPos2sv + glRasterPos3dv + glRasterPos3fv + glRasterPos3iv + glRasterPos3sv + glRasterPos4dv + glRasterPos4fv + glRasterPos4iv + glRasterPos4sv + glReadBuffer + glReadPixels + glRectd + glRectf + glRecti + glRects + glRectdv + glRectfv + glRectiv + glRectsv + glScissor + glIsEnabled + glPushAttrib + glPushClientAttrib + glPushName + glRenderMode + glRotated + glRotatef + glSelectBuffer + glScaled + glScalef + glShadeModel + glStencilFunc + glStencilMask + glStencilOp + glTexCoord1d + glTexCoord1f + glTexCoord1i + glTexCoord1s + glTexCoord2d + glTexCoord2f + glTexCoord2i + glTexCoord2s + glTexCoord3d + glTexCoord3f + glTexCoord3i + glTexCoord3s + glTexCoord4d + glTexCoord4f + glTexCoord4i + glTexCoord4s + glTexCoord1dv + glTexCoord1fv + glTexCoord1iv + glTexCoord1sv + glTexCoord2dv + glTexCoord2fv + glTexCoord2iv + glTexCoord2sv + glTexCoord3dv + glTexCoord3fv + glTexCoord3iv + glTexCoord3sv + glTexCoord4dv + glTexCoord4fv + glTexCoord4iv + glTexCoord4sv + glTexCoordPointer + glTexGend + glTexGenf + glTexGeni + glTexGendv + glTexGeniv + glTexGenfv + glTexEnvf + glTexEnvi + glTexEnvfv + glTexEnviv + glTexImage1D + glTexImage2D + glTexParameterf + glTexParameteri + glTexParameterfv + glTexParameteriv + glTexSubImage1D + glTexSubImage2D + glTranslated + glTranslatef + glVertex2d + glVertex2f + glVertex2i + glVertex2s + glVertex3d + glVertex3f + glVertex3i + glVertex3s + glVertex4d + glVertex4f + glVertex4i + glVertex4s + glVertex2dv + glVertex2fv + glVertex2iv + glVertex2sv + glVertex3dv + glVertex3fv + glVertex3iv + glVertex3sv + glVertex4dv + glVertex4fv + glVertex4iv + glVertex4sv + glVertexPointer + glViewport + + glBlendEquationEXT + glBlendColorEXT + glVertexPointerEXT + glNormalPointerEXT + glColorPointerEXT + glIndexPointerEXT + glTexCoordPointerEXT + glEdgeFlagPointerEXT + glGetPointervEXT + glArrayElementEXT + glDrawArraysEXT + glBindTextureEXT + glDeleteTexturesEXT + glGenTexturesEXT + glPrioritizeTexturesEXT + glCopyTexSubImage3DEXT + glTexImage3DEXT + glTexSubImage3DEXT + + glWindowPos4fMESA + glWindowPos2iMESA + glWindowPos2sMESA + glWindowPos2fMESA + glWindowPos2dMESA + glWindowPos2ivMESA + glWindowPos2svMESA + glWindowPos2fvMESA + glWindowPos2dvMESA + glWindowPos3iMESA + glWindowPos3sMESA + glWindowPos3fMESA + glWindowPos3dMESA + glWindowPos3ivMESA + glWindowPos3svMESA + glWindowPos3fvMESA + glWindowPos3dvMESA + glWindowPos4iMESA + glWindowPos4sMESA + glWindowPos4dMESA + glWindowPos4ivMESA + glWindowPos4svMESA + glWindowPos4fvMESA + glWindowPos4dvMESA + glResizeBuffersMESA + + wglCopyContext + wglCreateContext + wglCreateLayerContext + wglDeleteContext + wglDescribeLayerPlane + wglGetCurrentContext + wglGetCurrentDC + wglGetLayerPaletteEntries + wglGetProcAddress + wglMakeCurrent + wglRealizeLayerPalette + wglSetLayerPaletteEntries + wglShareLists + wglSwapLayerBuffers + wglUseFontBitmapsA + wglUseFontBitmapsW + wglUseFontOutlinesA + wglUseFontOutlinesW + +;These functions are identical and therefore share the same addresses + ChoosePixelFormat = wglChoosePixelFormat + DescribePixelFormat = wglDescribePixelFormat + GetPixelFormat = wglGetPixelFormat + SetPixelFormat = wglSetPixelFormat + SwapBuffers = wglSwapBuffers + + wglChoosePixelFormat + wglDescribePixelFormat + wglGetPixelFormat + wglSetPixelFormat + wglSwapBuffers + + glActiveTextureARB + glClientActiveTextureARB + glMultiTexCoord1dARB + glMultiTexCoord1dvARB + glMultiTexCoord1fARB + glMultiTexCoord1fvARB + glMultiTexCoord1iARB + glMultiTexCoord1ivARB + glMultiTexCoord1sARB + glMultiTexCoord1svARB + glMultiTexCoord2dARB + glMultiTexCoord2dvARB + glMultiTexCoord2fARB + glMultiTexCoord2fvARB + glMultiTexCoord2iARB + glMultiTexCoord2ivARB + glMultiTexCoord2sARB + glMultiTexCoord2svARB + glMultiTexCoord3dARB + glMultiTexCoord3dvARB + glMultiTexCoord3fARB + glMultiTexCoord3fvARB + glMultiTexCoord3iARB + glMultiTexCoord3ivARB + glMultiTexCoord3sARB + glMultiTexCoord3svARB + glMultiTexCoord4dARB + glMultiTexCoord4dvARB + glMultiTexCoord4fARB + glMultiTexCoord4fvARB + glMultiTexCoord4iARB + glMultiTexCoord4ivARB + glMultiTexCoord4sARB + glMultiTexCoord4svARB --- mesa-7.9+repack.orig/src/mesa/drivers/windows/gldirect/gldirect.rc +++ mesa-7.9+repack/src/mesa/drivers/windows/gldirect/gldirect.rc @@ -0,0 +1,43 @@ +/**************************************************************************** +* +* Mesa 3-D graphics library +* Direct3D Driver Interface +* +* ======================================================================== +* +* Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* SCITECH SOFTWARE INC 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. +* +* ====================================================================== +* +* Language: Windows Resource Compiler +* Environment: Windows 95 +* +****************************************************************************/ + +#ifndef WORKSHOP_INVOKED + #include +#endif + +#define FILE_DESCRIPTION "SciTech GLDirect" +#define ORIG_FILENAME "opengl32.dll" +#define FILE_TYPE VFT_DLL + +#include "gldirect/gldver.ver" --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r600/Lindent +++ mesa-7.9+repack/src/mesa/drivers/dri/r600/Lindent @@ -0,0 +1,2 @@ +#!/bin/sh +indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs "$@" --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r600/evergreen_render.c +++ mesa-7.9+repack/src/mesa/drivers/dri/r600/evergreen_render.c @@ -909,6 +909,10 @@ { GLboolean retval = GL_FALSE; + context_t *context = EVERGREEN_CONTEXT(ctx); + radeonContextPtr radeon = &context->radeon; + radeon_prepare_render(radeon); + /* This check should get folded into just the places that * min/max index are really needed. */ --- mesa-7.9+repack.orig/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py +++ mesa-7.9+repack/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py @@ -0,0 +1,191 @@ +#!/usr/bin/python + +import sys +import gettext +import re + +# List of supported languages +languages = sys.argv[1:] + +# Escape special characters in C strings +def escapeCString (s): + escapeSeqs = {'\a' : '\\a', '\b' : '\\b', '\f' : '\\f', '\n' : '\\n', + '\r' : '\\r', '\t' : '\\t', '\v' : '\\v', '\\' : '\\\\'} + # " -> '' is a hack. Quotes (") aren't possible in XML attributes. + # Better use Unicode characters for typographic quotes in option + # descriptions and translations. + i = 0 + r = '' + while i < len(s): + # Special case: escape double quote with \u201c or \u201d, depending + # on whether it's an open or close quote. This is needed because plain + # double quotes are not possible in XML attributes. + if s[i] == '"': + if i == len(s)-1 or s[i+1].isspace(): + # close quote + q = u'\u201c' + else: + # open quote + q = u'\u201d' + r = r + q + elif escapeSeqs.has_key(s[i]): + r = r + escapeSeqs[s[i]] + else: + r = r + s[i] + i = i + 1 + return r + +# Expand escape sequences in C strings (needed for gettext lookup) +def expandCString (s): + escapeSeqs = {'a' : '\a', 'b' : '\b', 'f' : '\f', 'n' : '\n', + 'r' : '\r', 't' : '\t', 'v' : '\v', + '"' : '"', '\\' : '\\'} + i = 0 + escape = False + hexa = False + octa = False + num = 0 + digits = 0 + r = '' + while i < len(s): + if not escape: + if s[i] == '\\': + escape = True + else: + r = r + s[i] + elif hexa: + if (s[i] >= '0' and s[i] <= '9') or \ + (s[i] >= 'a' and s[i] <= 'f') or \ + (s[i] >= 'A' and s[i] <= 'F'): + num = num * 16 + int(s[i],16) + digits = digits + 1 + else: + digits = 2 + if digits >= 2: + hexa = False + escape = False + r = r + chr(num) + elif octa: + if s[i] >= '0' and s[i] <= '7': + num = num * 8 + int(s[i],8) + digits = digits + 1 + else: + digits = 3 + if digits >= 3: + octa = False + escape = False + r = r + chr(num) + else: + if escapeSeqs.has_key(s[i]): + r = r + escapeSeqs[s[i]] + escape = False + elif s[i] >= '0' and s[i] <= '7': + octa = True + num = int(s[i],8) + if num <= 3: + digits = 1 + else: + digits = 2 + elif s[i] == 'x' or s[i] == 'X': + hexa = True + num = 0 + digits = 0 + else: + r = r + s[i] + escape = False + i = i + 1 + return r + +# Expand matches. The first match is always a DESC or DESC_BEGIN match. +# Subsequent matches are ENUM matches. +# +# DESC, DESC_BEGIN format: \1 \2= \3 \4=gettext(" \5= \6=") \7 +# ENUM format: \1 \2=gettext(" \3= \4=") \5 +def expandMatches (matches, translations, end=None): + assert len(matches) > 0 + nTranslations = len(translations) + i = 0 + # Expand the description+enums for all translations + for lang,trans in translations: + i = i + 1 + # Make sure that all but the last line of a simple description + # are extended with a backslash. + suffix = '' + if len(matches) == 1 and i < len(translations) and \ + not matches[0].expand (r'\7').endswith('\\'): + suffix = ' \\' + # Expand the description line. Need to use ugettext in order to allow + # non-ascii unicode chars in the original English descriptions. + text = escapeCString (trans.ugettext (unicode (expandCString ( + matches[0].expand (r'\5')), "utf-8"))).encode("utf-8") + print matches[0].expand (r'\1' + lang + r'\3"' + text + r'"\7') + suffix + # Expand any subsequent enum lines + for match in matches[1:]: + text = escapeCString (trans.ugettext (unicode (expandCString ( + match.expand (r'\3')), "utf-8"))).encode("utf-8") + print match.expand (r'\1"' + text + r'"\5') + + # Expand description end + if end: + print end, + +# Compile a list of translation classes to all supported languages. +# The first translation is always a NullTranslations. +translations = [("en", gettext.NullTranslations())] +for lang in languages: + try: + trans = gettext.translation ("options", ".", [lang]) + except IOError: + sys.stderr.write ("Warning: language '%s' not found.\n" % lang) + continue + translations.append ((lang, trans)) + +# Regular expressions: +reLibintl_h = re.compile (r'#\s*include\s*') +reDESC = re.compile (r'(\s*DRI_CONF_DESC\s*\(\s*)([a-z]+)(\s*,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reDESC_BEGIN = re.compile (r'(\s*DRI_CONF_DESC_BEGIN\s*\(\s*)([a-z]+)(\s*,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reENUM = re.compile (r'(\s*DRI_CONF_ENUM\s*\([^,]+,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reDESC_END = re.compile (r'\s*DRI_CONF_DESC_END') + +# Print a header +print \ +"/***********************************************************************\n" \ +" *** THIS FILE IS GENERATED AUTOMATICALLY. DON'T EDIT! ***\n" \ +" ***********************************************************************/" + +# Process the options template and generate options.h with all +# translations. +template = file ("t_options.h", "r") +descMatches = [] +for line in template: + if len(descMatches) > 0: + matchENUM = reENUM .match (line) + matchDESC_END = reDESC_END.match (line) + if matchENUM: + descMatches.append (matchENUM) + elif matchDESC_END: + expandMatches (descMatches, translations, line) + descMatches = [] + else: + sys.stderr.write ( + "Warning: unexpected line inside description dropped:\n%s\n" \ + % line) + continue + if reLibintl_h.search (line): + # Ignore (comment out) #include + print "/* %s * commented out by gen_xmlpool.py */" % line + continue + matchDESC = reDESC .match (line) + matchDESC_BEGIN = reDESC_BEGIN.match (line) + if matchDESC: + assert len(descMatches) == 0 + expandMatches ([matchDESC], translations) + elif matchDESC_BEGIN: + assert len(descMatches) == 0 + descMatches = [matchDESC_BEGIN] + else: + print line, + +if len(descMatches) > 0: + sys.stderr.write ("Warning: unterminated description at end of file.\n") + expandMatches (descMatches, translations) --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r300/Lindent +++ mesa-7.9+repack/src/mesa/drivers/dri/r300/Lindent @@ -0,0 +1,2 @@ +#!/bin/sh +indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs "$@" --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r300/compiler/SConscript +++ mesa-7.9+repack/src/mesa/drivers/dri/r300/compiler/SConscript @@ -0,0 +1,43 @@ +Import('*') + +env = env.Clone() +env.Append(CPPPATH = '#/include') +env.Append(CPPPATH = '#/src/mesa') + +# temporary fix +env['CFLAGS'] = str(env['CFLAGS']).replace('-Werror=declaration-after-statement', '') + +r300compiler = env.ConvenienceLibrary( + target = 'r300compiler', + source = [ + 'radeon_code.c', + 'radeon_compiler.c', + 'radeon_program.c', + 'radeon_program_print.c', + 'radeon_opcodes.c', + 'radeon_program_alu.c', + 'radeon_program_pair.c', + 'radeon_program_tex.c', + 'radeon_pair_translate.c', + 'radeon_pair_schedule.c', + 'radeon_pair_regalloc.c', + 'radeon_optimize.c', + 'radeon_remove_constants.c', + 'radeon_rename_regs.c', + 'radeon_emulate_branches.c', + 'radeon_emulate_loops.c', + 'radeon_dataflow.c', + 'radeon_dataflow_deadcode.c', + 'radeon_dataflow_swizzles.c', + 'r3xx_fragprog.c', + 'r300_fragprog.c', + 'r300_fragprog_swizzle.c', + 'r300_fragprog_emit.c', + 'r500_fragprog.c', + 'r500_fragprog_emit.c', + 'r3xx_vertprog.c', + 'r3xx_vertprog_dump.c', + 'memory_pool.c', + ]) + +Return('r300compiler') --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r200/r200_swtcl.c +++ mesa-7.9+repack/src/mesa/drivers/dri/r200/r200_swtcl.c @@ -613,6 +613,9 @@ r200ContextPtr rmesa = R200_CONTEXT(ctx); radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + r200ValidateState( ctx ); + if (rmesa->radeon.swtcl.hw_primitive != hwprim) { /* need to disable perspective-correct texturing for point sprites */ --- mesa-7.9+repack.orig/src/mesa/drivers/dri/r200/r200_tcl.c +++ mesa-7.9+repack/src/mesa/drivers/dri/r200/r200_tcl.c @@ -265,6 +265,8 @@ GLuint newprim = hw_prim | R200_VF_TCL_OUTPUT_VTX_ENABLE; radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + r200ValidateState( ctx ); if (newprim != rmesa->tcl.hw_primitive || !discrete_prim[hw_prim&0xf]) { --- mesa-7.9+repack.orig/src/mesa/drivers/dri/radeon/radeon_swtcl.c +++ mesa-7.9+repack/src/mesa/drivers/dri/radeon/radeon_swtcl.c @@ -412,6 +412,8 @@ return GL_TRUE; radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + radeonValidateState( ctx ); tnl->Driver.Render.Start( ctx ); --- mesa-7.9+repack.orig/src/mesa/drivers/dri/radeon/radeon_common_context.c +++ mesa-7.9+repack/src/mesa/drivers/dri/radeon/radeon_common_context.c @@ -521,6 +521,7 @@ __DRIcontext *driContext = radeon->dri.context; __DRIdrawable *drawable; __DRIscreen *screen; + struct radeon_framebuffer *draw; screen = driContext->driScreenPriv; if (!screen->dri2.loader) @@ -531,9 +532,10 @@ if (drawable->lastStamp != drawable->dri2.stamp) radeon_update_renderbuffers(driContext, drawable, GL_FALSE); - /* Intel driver does the equivalent of this, no clue if it is needed: - * radeon_draw_buffer(radeon->glCtx, &(drawable->driverPrivate)->base); - */ + /* Intel driver does the equivalent of this, no clue if it is needed:*/ + draw = drawable->driverPrivate; + radeon_draw_buffer(radeon->glCtx, &draw->base); + driContext->dri2.draw_stamp = drawable->dri2.stamp; } --- mesa-7.9+repack.orig/src/mesa/drivers/dri/radeon/radeon_tcl.c +++ mesa-7.9+repack/src/mesa/drivers/dri/radeon/radeon_tcl.c @@ -253,6 +253,8 @@ GLuint newprim = hw_prim | RADEON_CP_VC_CNTL_TCL_ENABLE; radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + radeonValidateState( ctx ); if (newprim != rmesa->tcl.hw_primitive || !discrete_prim[hw_prim&0xf]) { --- mesa-7.9+repack.orig/src/mesa/drivers/dri/mga/README +++ mesa-7.9+repack/src/mesa/drivers/dri/mga/README @@ -0,0 +1,26 @@ +MGA DRI driver ported from XF86DRI to FBDRI +by Denis Oliver Kropp + + +INFO + +This driver has been ported from the head branch of XFree86 to +the embedded-1-branch of Mesa. + + +STATUS + +Already working very well as far as I've tested it (16/32 bit). +glxgears runs at 935 fps (G550 32MB AGP 4x, Athlon 1.33) vs 744 fps with XFree. +Other demos (terrain, fire, etc.) have been successfully tested as well. + + +TODO + +- mgaEngineShutdown +- mgaEngineRestore +- SGRAM detection +- remove some unused bits from server/* +- subset driver support +- mgaWaitForVBlank +- deinitialization (from MGADRICloseScreen) a la radeonDestroyScreen --- mesa-7.9+repack.orig/src/mesa/drivers/dri/tdfx/BUGS +++ mesa-7.9+repack/src/mesa/drivers/dri/tdfx/BUGS @@ -0,0 +1,64 @@ +REMOVE THIS FILE BEFORE MERGING WITH TRUNK +------------------------------------------ + +OUTSTANDING BUGS + +demos/reflect - reading back Z on Voodoo3, image offset to right + Fixed in latest Glide. + +Q3 - some polygons drawn as vertical strips, similar to bug that was + seen in demos/fire. Voodoo3 only. May be related to glDepthMask + or glColorMask. + +book/fog - not fogging + Fog in orthograph mode still not implemented. Checking with + 3dfx engineers for ideas. + +Q3 demo crashes after changing display settings + but the full Q3 game version seems OK. + + + +MORE OUTSTANDING BUGS + +private context was NULL! causing immediate failure of any glx prog. cant +reproduce after restarting the X server. putting it down as halluc. + +texture object image was NULL, causing segmentation failure. happens with +prboom. ive put a check in tdfx_texstate.c but this isn't a fix. + +prboom, wall textures near first chainsaw aren't bound properly. sideways +movements causes the wall textures to move with you. prboom busted? + +16bpp mode, quake3, windowed, q3dm1, floor under rocketlauncher bands. it +looks like multitexturing gone wrong. i'll disable a tmu and test. + +sof, polygons appear at wrong x,y,z positions, intermittent, have not yet +found reliable way of reproducing. culling? sometimes polys disappear. + +descent3 is all black in 16bpp mode - FIXED (palette problems) + +smeared pixels in quake3 - FIXED (texture memory overlapped FB) + + + +PERFORMANCE COMPARISON (Brian / Alan) + + V3/16 is Voodoo3 in 16bpp on a P3/500 + V5/16 is Voodoo5 in 16bpp on a P3/600 + V5/32 is Voodoo5 in 32bpp on a P3/600 + V5A/16 is Voodoo5 in 16bpp on an Alpha AXP/600 + V5A/32 is Voodoo5 in 32bpp on an Alpha AXP/600 + + tdfx-2-1-branch tdfx-3-0-0-branch +demo V3/16 V5/16 V5/32 V3/16 V5/16 V5/32 V5A/16 V5A/32 +------------------------------------------------------------------------ +gloss 257 183 174 320 308 177 313 167 +fire 42 39 52 41 +fire (no help) 98 80 50 106 113 73 124 80 +tunnel 61 50 70 58 +tunnel (no help) 167 142 57 138 152 113 171 122 +gears 663 554 540 881 1232 776 1484 830 +teapot 20 21 37 36 +teapot (no help) 22 14 14 24 30 30 43 42 + --- mesa-7.9+repack.orig/src/mesa/state_tracker/st_manager.c +++ mesa-7.9+repack/src/mesa/state_tracker/st_manager.c @@ -486,9 +486,18 @@ stfb = st_ws_framebuffer(st->ctx->WinSysDrawBuffer); if (!stfb || stfb->iface != stfbi) stfb = st_ws_framebuffer(st->ctx->WinSysReadBuffer); - assert(stfb && stfb->iface == stfbi); - p_atomic_set(&stfb->revalidate, TRUE); + if (stfb && stfb->iface == stfbi) { + p_atomic_set(&stfb->revalidate, TRUE); + } + else { + /* This function is probably getting called when we've detected a + * change in a window's size but the currently bound context is + * not bound to that window. + * If the st_framebuffer_iface structure had a pointer to the + * corresponding st_framebuffer we'd be able to handle this. + */ + } } static void --- mesa-7.9+repack.orig/src/mesa/state_tracker/Makefile +++ mesa-7.9+repack/src/mesa/state_tracker/Makefile @@ -0,0 +1,2 @@ +default: + cd ../.. ; make \ No newline at end of file --- mesa-7.9+repack.orig/src/mesa/tnl/NOTES +++ mesa-7.9+repack/src/mesa/tnl/NOTES @@ -0,0 +1,102 @@ +INTRODUCTION + +A generic, configurable software implementation of GL transformation & +lighting. + +This module provides an implementation of the routines required by the +'vtxfmt' mechanism of core mesa for tnl functionality in all +combinations of compile and execute modes. + +Most current drivers use the tnl module exclusively to provide this +functionality, though there is an experimental alternate +implementation provided by the tnl_dd/t_dd_imm_* files which can +handle a small subset of GL states in execute mode only. + + +STATE + +To create and destroy the module: + + GLboolean _tnl_CreateContext( GLcontext *ctx ); + void _tnl_DestroyContext( GLcontext *ctx ); + +The module is not active by default, and must be installed by calling +_tnl_Wakeup(). This function installs internal tnl functions into all +the vtxfmt dispatch hooks, thus taking over the task of transformation +and lighting entirely: + + void _tnl_wakeup_exec( GLcontext *ctx ); + void _tnl_wakeup_save_exec( GLcontext *ctx ); + + +This module tracks state changes internally and maintains derived +values based on the current state. For this to work, the driver +ensure the following funciton is called whenever the state changes and +the swsetup module is 'awake': + + void _tnl_InvalidateState( GLcontext *ctx, GLuint new_state ); + +There is no explicit call to put the tnl module to sleep. Simply +install other function pointers into all the vtxfmt dispatch slots, +and (optionally) cease calling _tnl_InvalidateState(). + +CUSTOMIZATION + +The module provides customizability through several mechanisms. The +most important is by allowing drivers to specify the pipeline through +which vertex data is passed, including its eventual transfer to +rasterization hardware (or software). + +The default pipeline is specified in t_pipeline.c, and is usually a +starting point for driver pipelines. Some drivers will remove a stage +where hardware provides support for the implemented operation (for +instance fog where per-pixel hardware fog is available, as in the dri +tdfx driver), or add stages to shortcircuit latter operations (for +example taking advantage of hardware support for strips and other +higher-level primitives (for example the radeon driver). + +In addition, the following functions provide further tweaks: + +extern void +_tnl_need_projected_coords( GLcontext *ctx, GLboolean flag ); + + - Direct the default vertex transformation stage to + produce/not produce projected clip coordinates. + +extern void +_tnl_need_dlist_loopback( GLcontext *ctx, GLboolean flag ); + + - Direct the display list component of the tnl module to + replay display lists as 'glVertex' type calls, rather than + passing the display list data directly into the tnl pipeline + mechanism. + + This allows display lists to be replayed by the tnl module + even when the module is not strictly active. + + +extern void +_tnl_need_dlist_norm_lengths( GLcontext *ctx, GLboolean flag ); + + - Direct the display list component to enable/disable caching + 1/length values for display list normals. Doing so is + ususally helpful when lighting is performed in software, but + wasteful otherwise. + + +DRIVER INTERFACE + +The module itself offers a minimal driver interface: + + void (*RunPipeline)( GLcontext *ctx ); + +Normally this is set to _tnl_RunPipeline(), however the driver can use +this hook to wrap checks or other code around this call. + +In addition, the driver interface for the default render pipeline +stage is housed in the tnl context struct (this could be cleaner). + + +RENDER DRIVER INTERFACE + +See t_context.h for the definition and explanation of this. \ No newline at end of file --- mesa-7.9+repack.orig/src/glsl/autogen.sh +++ mesa-7.9+repack/src/glsl/autogen.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +$srcdir/configure --enable-maintainer-mode "$@" --- mesa-7.9+repack.orig/src/glsl/.dir-locals.el +++ mesa-7.9+repack/src/glsl/.dir-locals.el @@ -0,0 +1,3 @@ +((c-mode . ((c-basic-offset . 3))) + (c++-mode . ((c-basic-offset . 3))) +) --- mesa-7.9+repack.orig/src/glsl/Makefile.am +++ mesa-7.9+repack/src/glsl/Makefile.am @@ -0,0 +1,81 @@ +# Copyright © 2010 Intel Corporation +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# AUTHORS, COPYRIGHT HOLDERS, AND/OR THEIR SUPPLIERS 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. + +AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -I mesa + +SUBDIRS = glcpp + +bin_PROGRAMS = glsl + +glsl_LDADD = ./glcpp/libglcpp.la +glsl_LDFLAGS = @LDFLAGS@ $(talloc_LIBS) +glsl_SOURCES = \ + main.cpp \ + builtin_types.h \ + glsl_types.cpp \ + glsl_parser.ypp glsl_lexer.lpp glsl_parser_extras.cpp \ + ast_expr.cpp ast_to_hir.cpp ast_function.cpp ast_type.cpp \ + ir.cpp hir_field_selection.cpp builtin_function.cpp \ + ir_print_visitor.cpp ir_variable.cpp ir_function.cpp \ + ir_basic_block.cpp \ + ir_basic_block.h \ + ir_clone.cpp \ + ir_constant_expression.cpp \ + ir_constant_folding.cpp \ + ir_constant_variable.cpp \ + ir_copy_propagation.cpp \ + ir_copy_propagation.h \ + ir_dead_code.cpp \ + ir_dead_code.h \ + ir_dead_code_local.cpp \ + ir_expression_flattening.cpp \ + ir_function_can_inline.cpp \ + ir_function_inlining.cpp \ + ir_if_simplification.cpp \ + ir_optimization.h \ + ir_reader.cpp s_expression.cpp \ + ir_hv_accept.cpp \ + ir_hierarchical_visitor.h \ + ir_hierarchical_visitor.cpp \ + ir_swizzle_swizzle.cpp \ + ir_to_mesa.cpp \ + ir_to_mesa.h \ + ir_validate.cpp \ + ir_vec_index_to_swizzle.cpp \ + linker.cpp \ + loop_analysis.cpp \ + loop_controls.cpp \ + loop_unroll.cpp \ + lower_noise.cpp \ + lower_variable_index_to_cond_assign.cpp \ + opt_redundant_jumps.cpp + +BUILT_SOURCES = glsl_parser.h glsl_parser.cpp glsl_lexer.cpp +CLEANFILES = $(BUILT_SOURCES) + +builtin_function.cpp: builtins/*/* + ./builtins/tools/generate_builtins.pl > builtin_function.cpp +glsl_parser.h: glsl_parser.cpp + +.lpp.cpp: + $(LEXCOMPILE) --outfile="$@" $< --- mesa-7.9+repack.orig/src/glsl/TODO +++ mesa-7.9+repack/src/glsl/TODO @@ -0,0 +1,38 @@ +- Detect code paths in non-void functions that don't reach a return statement + +- Improve handling of constants and their initializers. Constant initializers + should never generate any code. This is trival for scalar constants. It is + also trivial for arrays, matrices, and vectors that are accessed with + constant index values. For others it is more complicated. Perhaps these + cases should be silently converted to uniforms? + +- Implement support for ir_binop_dot in ir_algebraic.cpp. Perform + transformations such as "dot(v, vec3(0.0, 1.0, 0.0))" -> v.y. + +1.30 features: + +- Implement AST-to-HIR conversion of bit-shift operators. + +- Implement AST-to-HIR conversion of bit-wise {&,|,^,!} operators. + +- Implement AST-to-HIR conversion of switch-statements + - switch + - case + - Update break to correcly handle mixed nexting of switch-statements + and loops. + +- Handle currently unsupported constant expression types + - ir_unop_bit_not + - ir_binop_mod + - ir_binop_lshift + - ir_binop_rshift + - ir_binop_bit_and + - ir_binop_bit_xor + - ir_binop_bit_or + +- Implement support for 1.30 style shadow compares which only return a float + instead of a vec4. + +- Implement support for gl_ClipDistance. This is non-trivial because + gl_ClipDistance is exposed as a float[8], but all hardware actually + implements it as vec4[2]. \ No newline at end of file --- mesa-7.9+repack.orig/src/glsl/configure.ac +++ mesa-7.9+repack/src/glsl/configure.ac @@ -0,0 +1,69 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.61) +AC_INIT(glsl, XXXXX, idr@freedesktop.org, glsl) +AC_CONFIG_SRCDIR([Makefile.am]) +AM_CONFIG_HEADER([config.h]) +AC_CONFIG_FILES([glcpp/Makefile]) + +AM_INIT_AUTOMAKE +LT_INIT + +AM_MAINTAINER_MODE + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_MAKE_SET +AC_PROG_YACC +AC_PROG_LEX + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +# Checks for libraries. + +# Checks for header files. + +# Checks for typedefs, structures, and compiler characteristics. + +# Checks for library functions. +AC_HEADER_STDC + +AH_TOP([#ifndef GLSL_CONFIG_H +#define GLSL_CONFIG_H]) +AH_BOTTOM([#endif /* GLSL_CONFIG_H */]) + +PKG_CHECK_MODULES([talloc], [talloc >= 2.0]) + +AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], + [use debug compiler flags and macros @<:@default=disabled@:>@])], + [enable_debug="$enableval"], + [enable_debug=no] +) +if test "x$enable_debug" = xyes; then + DEFINES="$DEFINES -DDEBUG" + if test "x$GCC" = xyes; then + # Remove any -g or -O flags from the command line + CFLAGS=[`echo $CFLAGS | sed 's/-g[^ \t]*[ \t]*//g;s/-O[^ \t]*[ \t]*//g'`] + CFLAGS="$CFLAGS -O0 -ggdb3 -fstack-protector -D_FORTIFY_SOURCE=2" + fi + if test "x$GXX" = xyes; then + # Remove any -g flags from the command line + CXXFLAGS=[`echo $CXXFLAGS | sed 's/-g[^ \t]*[ \t]*//g;s/-O[^ \t]*[ \t]*//g'`] + CXXFLAGS="$CXXFLAGS -O0 -ggdb3 -fstack-protector -D_FORTIFY_SOURCE=2" + fi +fi + +if test "x$GXX" = xyes ; then + WARN="-Wall -Wextra -Wunsafe-loop-optimizations -Wstack-protector" +else + WARN="" +fi + +CFLAGS="$CFLAGS $WARN" +CXXFLAGS="$CXXFLAGS $WARN" +YFLAGS="-d -v" + +AC_OUTPUT([Makefile]) --- mesa-7.9+repack.orig/src/glsl/glcpp/Makefile.am +++ mesa-7.9+repack/src/glsl/glcpp/Makefile.am @@ -0,0 +1,44 @@ +# Copyright © 2010 Intel Corporation +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# AUTHORS, COPYRIGHT HOLDERS, AND/OR THEIR SUPPLIERS 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. + +noinst_LTLIBRARIES = libglcpp.la +libglcpp_la_SOURCES = \ + glcpp-lex.l \ + glcpp-parse.y \ + glcpp.h \ + pp.c + +BUILT_SOURCES = glcpp-parse.h glcpp-parse.c glcpp-lex.c +CLEANFILES = $(BUILT_SOURCES) + +glcpp-parse.h: glcpp-parse.c + +bin_PROGRAMS = glcpp +glcpp_LDADD = libglcpp.la +glcpp_LDFLAGS = @LDFLAGS@ $(talloc_LIBS) +glcpp_SOURCES = glcpp.c + +.l.c: + $(LEXCOMPILE) --outfile="$@" $< + +test: glcpp + @(cd tests; ./glcpp-test) --- mesa-7.9+repack.orig/bin/installmesa +++ mesa-7.9+repack/bin/installmesa @@ -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 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 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 to continue, or -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." --- mesa-7.9+repack.orig/bin/confdiff.sh +++ mesa-7.9+repack/bin/confdiff.sh @@ -0,0 +1,48 @@ +#!/bin/bash -e + +usage() +{ + echo "Usage: $0 " + echo "Highlight differences between Mesa configs" + echo "Example:" + echo " $0 linux linux-x86" +} + +die() +{ + echo "$@" >&2 + return 1 +} + +case "$1" in +-h|--help) usage; exit 0;; +esac + +[ $# -lt 2 ] && die 2 targets needed. See $0 --help +target1=$1 +target2=$2 + +topdir=$(cd "`dirname $0`"/..; pwd) +cd "$topdir" + +[ -f "./configs/$target1" ] || die Missing configs/$target1 +[ -f "./configs/$target2" ] || die Missing configs/$target2 + +trap 'rm -f "$t1" "$t2"' 0 + +t1=$(mktemp) +t2=$(mktemp) + +make -f- -n -p < $t1 +TOP = . +include \$(TOP)/configs/$target1 +default: +EOF + +make -f- -n -p < $t2 +TOP = . +include \$(TOP)/configs/$target2 +default: +EOF + +diff -pu -I'^#' $t1 $t2 --- mesa-7.9+repack.orig/docs/libGL.txt +++ mesa-7.9+repack/docs/libGL.txt @@ -0,0 +1,197 @@ + + + +Introduction +------------ + +This document describes the implementation of the XFree86 4.0 libGL.so +library defined by the Linux/OpenGL Base specification found at +http://reality.sgi.com/opengl/linux/linuxbase.html. + +The documentation is divided into two sections: + User's Guide + Driver Developer's Guide + +Author: Brian Paul (brian@precisioninsight.com) +Date: February 2000 + + + +User's Guide +------------ + +Using libGL.so + +The libGL.so library defines the gl- and glX-prefixed functions needed to +run OpenGL programs. OpenGL client applications should link with the +-lGL option to use it. + +libGL.so serves two primary functions: GLX protocol generation for indirect +rendering and loading/management of hardware drivers for direct rendering. + +When libGL.so initializes itself it uses the DRI to determine the +appropriate hardware driver for each screen on the local X display. +The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/ +directory. Drivers are named with the convention _dri.so where + is a driver such as "tdfx", "i810", "gamma", etc. + +The LIBGL_DRIVERS_DIR environment variable may be used to specify a +different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/. +This environment variable is ignored in setuid programs for security +reasons. + +When libGL.so is unable to locate appropriate hardware drivers it will +fall back to using indirect GLX rendering. + +To aid in solving problems, libGL.so will print diagnostic messages to +stderr if the LIBGL_DEBUG environment variable is defined. + +libGL.so is thread safe. The overhead of thread safety for common, +single-thread clients is negligible. However, the overhead of thread +safety for multi-threaded clients is significant. Each GL API call +requires two calls to pthread_get_specific() which can noticably +impact performance. Warning: libGL.so is thread safe but individual +DRI drivers may not be. Please consult the documentation for a driver +to learn if it is thread safe. + + + +Indirect Rendering + +You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT +environment variable. Hardware acceleration will not be used. + + + +libGL.so Extensibility + +libGL.so is designed to be extended without upgrading. That is, +drivers may install new OpenGL extension functions into libGL.so +without requiring libGL.so to be replaced. Clients of libGL.so should +use the glXGetProcAddressEXT() function to obtain the address of +functions by name. For more details of GLX_ARB_get_proc_address see +http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec + +libGL.so is also designed with flexibility such that it may be used +with many generations of hardware drivers to come. + + + + +Driver Developer's Guide +------------------------ + +This section describes the requirements to make an XFree86 4.0 +libGL.so-compatible hardware driver. It is not intended for end +users of libGL.so. + + +XFree86 source files + +libGL.so is built inside XFree86 with sources found in xc/lib/GL/. +Specifically, libGL.so is built from: + + xc/lib/GL/glx/*.c + xc/lib/dri/XF86dri.c + xc/lib/dri/dri_glx.c + xc/lib/GL/mesa/src/glapi.c + xc/lib/GL/mesa/src/glapitemp.h + xc/lib/GL/mesa/src/glapitable.h + xc/lib/GL/mesa/src/glapioffsets.h + xc/lib/GL/mesa/src/glapinoop.c + xc/lib/GL/mesa/src/glheader.h + xc/lib/GL/mesa/src/glthread.c + xc/lib/GL/mesa/src/glthread.h + xc/lib/GL/mesa/src/X86/glapi_x86.S + xc/lib/GL/mesa/src/X86/assyntax.h + +Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They +have no dependencies on the rest of Mesa and are designed to be reusable +in a number of projects. + +The glapi_x86.X and assyntax.h files implement x86-optimized dispatch +of GL functions. They are not required; C-based dispatch can be used +instead, with a slight performance penalty. + + + +Driver loading and binding + +When libGL.so initializes itself (via the __glXInitialize function) a +call is made to driCreateDisplay(). This function uses DRI facilities +to determine the driver file appropriate for each screen on the local +display. Each screen's driver is then opened with dlopen() and asked +for its __driCreateScreen() function. The pointers to the __driCreateScreen() +functions are kept in an array, indexed by screen number, in the +__DRIdisplayRec struct. + +When a driver's __driCreateScreen() function is called, it must initialize +a __DRIscreenRec struct. This struct acts as the root of a tree of +function pointers which are called to create and destroy contexts and +drawables and perform all the operations needed by the GLX interface. +See the xc/lib/GL/glx/glxclient.h file for details. + + + +Dynamic Extension Function Registration + +In order to provide forward compatibility with future drivers, libGL.so +allows drivers to register new OpenGL extension functions which weren't +known when libGL.so was built. + +The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called +as soon as libGL.so is loaded. This is done with gcc's constructor +attribute. This mechanism will likely have to be changed for other compilers. + +register_extensions() loops over all local displays and screens, determines +the DRI driver for each, and calls the driver's __driRegisterExtensions() +function, if present. + +The __driRegisterExtensions() function can add new entrypoints to libGL +by calling: + + GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset) + +The parameters are the name of the function (such as "glFoobarEXT") and the +offset of the dispatch slot in the API dispatch table. The return value +indicates success (GL_TRUE) or failure (GL_FALSE). + +_glapi_add_entrypoint() will synthesize entrypoint code in assembly +language. Assembly languages is required since parameter passing +can't be handled correctly using a C-based solution. + +The address of the new entrypoint is obtained by calling the +glXGetProcAddressARB() function. + +The dispatch offset number MUST be a number allocated by SGI in the same +manner in which new GL_* constants are allocated. Using an arbitrary +offset number will result in many problems. + + + +Dispatch Management + +When a GL context is made current, the driver must install its dispatch +table as the current dispatch table. This is done by calling + + void _glapi_set_dispatch(struct _glapi_table *dispatch); + +This will install the named dispatch table for the calling thread. +The current dispatch table for a thread can be obtained by calling + + struct _glapi_table *_glapi_get_dispatch(void); + +For higher performance in the common single-thread case, the global +variable _glapi_Dispatch will point to the current dispatch table. +This variable will be NULL when in multi-thread mode. + + + +Context Management + +libGL.so uses the XFree86 xthreads package to manage a thread-specific +current context pointer. See __glXGet/SetCurrentContext() in glext.c + +Drivers may use the _glapi_set/get_context() functions to maintain +a private thread-specific context pointer. + --- mesa-7.9+repack.orig/docs/news.html +++ mesa-7.9+repack/docs/news.html @@ -11,10 +11,18 @@

    News

    +

    October 4, 2010

    + +

    +Mesa 7.9 (final) is released. This is a new +development release. +

    + +

    September 27, 2010

    -Mesa 7.9.0-rc1 is released. This is a +Mesa 7.9.0-rc1 is released. This is a release candidate for the 7.9 development release.

    --- mesa-7.9+repack.orig/docs/relnotes-7.9.html +++ mesa-7.9+repack/docs/relnotes-7.9.html @@ -28,12 +28,12 @@

    MD5 checksums

    -f1f01a7baec255f13e9468fb4b05922a  MesaLib-7.9-rc1.tar.gz
    -7ffbda3b7056c60b8f87e3082d853af1  MesaLib-7.9-rc1.tar.bz2
    -9d4650df4e5b530178d6fde840f76664  MesaLib-7.9-rc1.zip
    -a81c2e7a0c7832e67c768d6f209f2c8f  MesaGLUT-7.9-rc1.tar.gz
    -b4c1c2f0b47a07be10fa2dd42e6a63d7  MesaGLUT-7.9-rc1.tar.bz2
    -c9dd7419a19bcb24a1fe556ec2e78451  MesaGLUT-7.9-rc1.zip
    +ed65ab425b25895c7f473d0a5e6e64f8  MesaLib-7.9.tar.gz
    +82c740c49d572baa6da2b1a1eee90bca  MesaLib-7.9.tar.bz2
    +cd2b6ecec759b0457475e94bbb38fedb  MesaLib-7.9.zip
    +7b54af9fb9b1f6a1a65db2520f50848f  MesaGLUT-7.9.tar.gz
    +20d07419d1929f833fdb36bced290ad5  MesaGLUT-7.9.tar.bz2
    +62a7edecd7c92675cd6029b05217eb0a  MesaGLUT-7.9.zip
     
    --- mesa-7.9+repack.orig/docs/relnotes.html +++ mesa-7.9+repack/docs/relnotes.html @@ -14,6 +14,7 @@
    • 7.9 release notes +
    • 7.8.3 release notes
    • 7.8.2 release notes
    • 7.8.1 release notes
    • 7.8 release notes --- mesa-7.9+repack.orig/docs/relnotes-7.8.3.html +++ mesa-7.9+repack/docs/relnotes-7.8.3.html @@ -0,0 +1,89 @@ + + +Mesa Release Notes + + + + + + + +

      Mesa 7.8.3 Release Notes / (date tbd)

      + +

      +Mesa 7.8.3 is a bug fix release which fixes bugs found since the 7.8.2 release. +

      +

      +Mesa 7.8.3 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +

      +

      +See the Compiling/Installing page for prerequisites +for DRI hardware acceleration. +

      + + +

      MD5 checksums

      +
      +x  MesaLib-7.8.3.tar.gz
      +x  MesaLib-7.8.3.tar.bz2
      +x  MesaLib-7.8.3.zip
      +x  MesaDemos-7.8.3.tar.gz
      +x  MesaDemos-7.8.3.tar.bz2
      +x  MesaDemos-7.8.3.zip
      +x  MesaGLUT-7.8.3.tar.gz
      +x  MesaGLUT-7.8.3.tar.bz2
      +x  MesaGLUT-7.8.3.zip
      +
      + + +

      New features

      +

      None.

      + + +

      Changes

      +
        +
      • The radeon driver should use less memory when searching for a valid mip +image.
      • +
      + + +

      Bug fixes

      +
        +
      • Fix unsupported FB with D24S8 (bug + 29116)
      • +
      • Fix ReadPixels crash when reading depth/stencil from an FBO
      • +
      • Fixed a bug rendering to 16-bit buffers using swrast.
      • +
      • Fixed a state tracker/TGSI bug that caused crashes when using Windows' + memory debugging features.
      • +
      • Fixed an issue rendering to 32-bit channels with swrast (bug + 29487)
      • +
      • GLSL: fix indirect gl_TextureMatrix addressing (bug + 28967)
      • +
      • GLSL: fix for bug + 27216
      • +
      • GLSL: fix zw fragcoord entries in some cases (bug + 29183)
      • +
      • Fix texture env generation in some cases (bug + 28169)
      • +
      • osmesa: a fix for calling OSMesaMakeCurrent twice was applied (bug + 10966
      • +
      • A bug was fixed which could cause Mesa to ignore the + MESA_EXTENSION_OVERRIDE environment variable.
      • +
      • A bug related to specular highlights on backfaces was fixed.
      • +
      • A radeon-specific issue with glCopyTex(Sub)Image was + corrected.
      • +
      • radeon/wine: flush command stream in more cases, fixing wine d3d9 + tests.
      • +
      • r600: fix sin+cos normalization.
      • +
      • r600: (properly) ignore GL_COORD_REPLACE when point sprites are + disabled.
      • +
      • radeon: avoid flushing when the context is not current.
      • +
      • r300c: a bug affecting unaligned BOs was fixed.
      • +
      • r300c: a hardlock caused by ARB_half_float_vertex incorrectly advertised on some chipsets.
      • +
      + + + + --- mesa-7.9+repack.orig/docs/mesa.css +++ mesa-7.9+repack/docs/mesa.css @@ -0,0 +1,33 @@ +/* Mesa CSS */ +body { + background-color: #ffffff; + font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif; + color: black; + link: #111188; +} + +h1 { + font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif; + font-weight: bold; + color: black; +} + +h2 { + font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold; + font-weight: bold; + color: black; +} + +code { + font-family: monospace; + font-size: 10pt; + color: black; +} + + +pre { + /*font-family: monospace;*/ + font-size: 10pt; + /*color: black;*/ +} + --- mesa-7.9+repack.orig/docs/devinfo.html +++ mesa-7.9+repack/docs/devinfo.html @@ -145,7 +145,7 @@

      -Update the docs/news.html file and docs/download.html files. +Update docs/news.html.

      @@ -208,10 +208,11 @@

      Make an announcement on the mailing lists: -mesa3d-dev@lists.sf.net, -mesa3d-users@lists.sf.net + +mesa-dev@lists.freedesktop.org, +mesa-users@lists.freedesktop.org and -mesa3d-announce@lists.sf.net +mesa-announce@lists.freedesktop.org

      --- mesa-7.9+repack.orig/docs/enums.txt +++ mesa-7.9+repack/docs/enums.txt @@ -0,0 +1,57 @@ + +See the OpenGL ARB enum registry at http://www.opengl.org/registry/api/enum.spec + +Blocks allocated to Mesa: + 0x8750-0x875F + 0x8BB0-0x8BBF + + +GL_MESA_packed_depth_stencil + GL_DEPTH_STENCIL_MESA 0x8750 + GL_UNSIGNED_INT_24_8_MESA 0x8751 + GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 + GL_UNSIGNED_SHORT_15_1_MESA 0x8753 + GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 + +GL_MESA_trace.spec: + GL_TRACE_ALL_BITS_MESA 0xFFFF + GL_TRACE_OPERATIONS_BIT_MESA 0x0001 + GL_TRACE_PRIMITIVES_BIT_MESA 0x0002 + GL_TRACE_ARRAYS_BIT_MESA 0x0004 + GL_TRACE_TEXTURES_BIT_MESA 0x0008 + GL_TRACE_PIXELS_BIT_MESA 0x0010 + GL_TRACE_ERRORS_BIT_MESA 0x0020 + GL_TRACE_MASK_MESA 0x8755 + GL_TRACE_NAME_MESA 0x8756 + +MESA_ycbcr_texture.spec: + GL_YCBCR_MESA 0x8757 + GL_UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple's */ + GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple's */ + +GL_MESA_pack_invert.spec + GL_PACK_INVERT_MESA 0x8758 + +GL_MESA_shader_debug.spec: (obsolete) + GL_DEBUG_OBJECT_MESA 0x8759 + GL_DEBUG_PRINT_MESA 0x875A + GL_DEBUG_ASSERT_MESA 0x875B + +GL_MESA_program_debug.spec: (obsolete) + GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x???? + GL_VERTEX_PROGRAM_CALLBACK_MESA 0x???? + GL_FRAGMENT_PROGRAM_POSITION_MESA 0x???? + GL_VERTEX_PROGRAM_POSITION_MESA 0x???? + GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x???? + GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x???? + GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x???? + GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x???? + +GL_MESAX_texture_stack: + GL_TEXTURE_1D_STACK_MESAX 0x8759 + GL_TEXTURE_2D_STACK_MESAX 0x875A + GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B + GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C + GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D + GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E + --- mesa-7.9+repack.orig/docs/VERSIONS +++ mesa-7.9+repack/docs/VERSIONS @@ -0,0 +1,1514 @@ + + +Mesa Version History +==================== + +1.0 beta February 1995 + Initial release + +1.1 beta March 4, 1995 + Changes: + faster point and line drawing (2x faster) + more systems supported, better Makefiles + Renamed lib*.a files to avoid collisions + many small bug fixes + New: + pseudo-GLX functions added + new implementation of evaluators (eval2.c) + GLUT support + +1.1.1 beta March 7, 1995 + Changes: + Reverted from eval2.c to eval.c due to FPE on Linux + more speed improvements + more Makefile changes + +1.1.2 beta March 14, 1995 + New: + implementation of SGI's blending extensions + glXUseXFont implemented + added MESA_DEBUG environment variable support + Changes: + Using eval2.c again + more FPE-prevention checks (0-length normals are OK) + a few small bug fixes + much faster pixel logic ops! + faster transformation arithmetic + +1.1.3 beta March 31, 1995 + New: + gluScaleImage() and gluBuild2DMipMaps() implemented + Mesa widgets for Xt/Motif + blendEXT demos + added environment variables for selecting visuals + Changes: + almost all GLUT demos work correctly now + faster X device driver functions + more bug fixes + +1.1.4 beta April 20, 1995 + Bug fixes: + - missing #define SEEK_SET in src-tk/image.c + - compile glShadeModel into display lists + - fixed pow() domain error in src/light.c + - fixed "flickering bitmaps" in double buffer mode + - fixed tk.h and aux.h for C++ + - state of LIGHT_MODEL_LOCAL_VIEWER was inverted + New features: + - MUCH, MUCH nicer dithering in 8-bit RGB mode + - updated widgets and widget demos + - Implemented GLXPixmap functions + - Added GLU 1.1 and GLX 1.1 functions + - Changed the X/Mesa interface API, more versatile + - Implemented gluPartialDisk() + +1.2 May 22, 1995 + Bug fixes: + - IRIX 4.x makefile problem + - modified tk to share root colormap as needed + - gluLookAt normalization problem + - suppress Expose, NoExpose events in swapbuffers + - glBitmap() and glDrawPixels() clipping + New features: + - GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture + modes implemented + - texture maps stored more efficiently + - texture maps can be compiled into display lists + - Bogdan Sikorski's GLU polygon tesselation code + - Linas Vepstas's sweep and extrusion library + - glXCreateContext()'s shareList parameter works as it's supposed to. + XMesaCreateContext() updated to accept a shareList parameter too. + - Mesa can be compiled with real OpenGL .h files + - MESA_BACK_BUFFER environment variable + - better GLX error checking + +1.2.1 June 22, 1995 + Bug fixes: + - X/Mesa double buffer window resize crash + - widgets now pass PointerMotion events + - X/Mesa incorrect default clear color and drawing color + - more robust X MIT-SHM support in X/Mesa + - glTexImage( format=GL_LUMINANCE ) didn't work + - GL_LINE mode polygons with line width > 1.0 could cause a crash + - numerous feedback bugs + - glReadPixels() from depth buffer was wrong + - error prone depth and stencil buffer allocation + New features: + - Preliminary Microsoft Windows driver + - Implemented a number of missing functions: glEvalCoord[12][df]v(), + glGet...(), etc. + - Added a few missing symbols to gl.h and glu.h + - Faster rendering of smooth-shaded, RGBA, depth-buffered polygons. + - Faster rendering of lines when width=2.0 + - Stencil-related functions now work in display lists + Changes: + - renamed aux.h as glaux.h (MS-DOS names can't start with aux) + - most filenames are in 8.3 format to accomodate MS-DOS + - use GLubytes to store arrays of colors instead of GLints + +1.2.2 August 2, 1995 + New features: + - texture mapped points and lines + - NURBS! (but not 100% complete) + - viewports may safely extend beyond window boundaries + - MESA_PRIVATE_CMAP environment variable + - Grayscale X display support + - two new demos: demos/gears.c and demos/shadow.c + - MachTen for Macintosh configuration + Bug fixes: + - glGet*(GL_DEPTH_BITS) returned bytes, not bits + - point, line, and bitmap rasterization suffered from roundoff errors + - fixed a division by zero error in line clippping + - occasional wrong default background color really fixed! + - glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work + - gluBuild2DMipmaps malloc problem fixed + - view volume clipping of smooth shaded lines resulted in bad colors + Changes: + - new visual selection method in glXChooseVisual() + - improved GLU quadric functions + - call XSync for glFinish and XFlush for glFlush + - glVertex() calls now use a function pointer to avoid conditionals + - removed contrib directory from Mesa tar file (available on ftp site) + - AIX shared library support + - Removed GLUenum type as it's not in OpenGL + +1.2.3 September 26, 1995 + New features: + - Mesa header files now equivalent to SGI OpenGL headers + - Support for HP's Color Recovery dithering displays + - Faster vertex transformation + - Faster raster operations into X windows under certain conditions + - New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General + - 4-bit visuals now supported + Bug fixes: + - glScissor bug fixed + - round-off errors in clipping lines against clip planes fixed + - byte swapping between hosts and display servers implemented + - glGetError() can be called without a current rendering context + - problem with accidentally culled polygons is fixed + - fixed some widget compilation problems + +1.2.4 November 17, 1995 + New features: + - More speed improvements (lighting, fogging, polygon drawing) + - Window system and OS-independent off-screen rendering + - Preliminary Fortran bindings + - glPolygonOffsetEXT implemented + - glColorMask and glIndexMask now fully implemented + - glPixelZoom implemented + - display lists fully implemented + - gamma correction + - dithering in 8-bit TrueColor/DirectColor visuals + Changes: + - Improved device driver interface + - tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk + - Dithering support moved from core into device driver + Bug fixes: + - glEnable/Disable( GL_LIGHTING ) didn't always take effect + - glReadPixels byte swapping was broken + - glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken + - duplicate glColor4b() prototype in GL/gl.h removed + - stripes in wave -ci demo fixed + - GL_LINEAR_MIPMAP_NEAREST had wrong value + - bugs in HP Color Recovery support fixed + - fixed bug when blending lines, points, bitmaps outside of window + +1.2.5 November 30, 1995 + New Features: + - updated MS Windows driver + - new implementation of StaticGray/GrayScale visual support + Bug fixes: + - pixelzooming with gamma correction or blending didn't work + - HP color recovery visual wasn't being picked by glXChooseVisual + - glClear didn't always observe glColorMask changes + - olympic and offset demos didn't compile on some Suns + - texcoord clamping wasn't correct + - a polygon optimization introduced an occasional sampling problem + +1.2.6 January 26, 1996 + New Features: + - faster line and polygon rendering under certain conditions. See + Performance Tips 9 and 10 in README + - profiling + - lighting is a bit faster + - better perspective corrected texture mapping + - Amiga AmiWin (X11) support + - preliminary Linux SVGA driver + Changes: + - now using a 16-bit depth buffer, faster, smaller + - GL_NORMALIZE is disabled by default + Bug fixes: + - projective texture mapping + - fixed a memory leak in the context destroy function + - GL_POLYGON with less than 3 vertices caused a crash + - glGet*() returned wrong result for GL_INDEX_MODE + - reading pixels from an unmapped X window caused a BadMatch error + +1.2.7 March 5, 1996 + New: + - faster lighting + - faster 16-bit TrueColor rendering on Linux + - faster 32-bit TrueColor rendering on Linux, HP, IBM + - non-depth-buffered XImage polygons are faster + - vertex array extension + - software alpha planes + - updated Macintosh driver + - new NeXT driver + - GLU quadric functions generate texture coordinates + - reflect.c demo - reflective, textured surface demo + Changes: + - gamma correction code moved into the X driver for better performance + Bug fixes: + - multiple glClipPlane()'s didn't work reliably + - glPolygonMode() didn't always work + - glCullFace( GL_FRONT_AND_BACK ) didn't work + - texture mapping with gamma correction was buggy + - floating point exceptions in texture coordinate interpolation + - XImage byte swapping didn't always work + - polygon edge flags weren't always used correctly + +1.2.8 May 22, 1996 + New: + - overlay planes on X servers with the SERVER_OVERLAY_VISUALS property + - better monochrome output + - more IRIX 6.x configurations + - more robust RGB mode color allocation + - added MESA_XSYNC environment variable + - GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions + - GL_MESA_window_pos extension + - faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT + and GL_UNSIGNED_INT + - driver for prototype Cirrus Mondello 3-D board + - updated AmigaDOS driver + - a few small speed optimizations in polygon rendering + Changes: + - internal device driver interface modified to simplify device + driver implementations and to support hardware Z buffers + - several changes to the X/Mesa interface (xmesa.h) + Bug fixes: + - fixed pow(0,0) domain error triggered on some systems + - glStencilClear() in a display list caused an infinite loop + - glRasterPos*() was sometimes off by +/-0.5 in X and Y + - color masking and blending were performed in wrong order + - auxSolidCylinder() sometimes drew a wire-frame cylinder + - fixed file writing bug in osdemo.c + - pixel mapping didn't always work + - the GL_GEQUAL stencil func didn't work + - the GL_INVERT stencil op didn't work + - the stencil write mask didn't work + - glPush/PopAttrib() didn't do enough error checking + - glIsList() didn't always work correctly + +2.0 October 10, 1996 + New: + - Implements OpenGL 1.1 API functions + - all texture filtering modes supported (mipmapping) + - faster texture mapping, see Performance Tip 11 in README + - antialiased RGB points + - X support for line and polygon stippling + - glDrawBuffer( GL_FRONT_AND_BACK ) works + - util/ directory of useful stuff + - demos/texobj demo of texture objects + Changes: + - major internal changes for thread-safeness + - new device driver interface + - MESA_ALPHA env variable removed + - triangle rasterizer replaces polygon rasterizer + Bug fixes: + - glPopAttrib() bug + - glDrawBuffer(GL_NONE) works now + +2.1 December 14, 1996 + New: + - VMS support + - MS-DOS driver + - OpenStep support + - updated, combined Windows 95/NT driver + - implemented glGetLighti() and glGetTexGen*() + - GLX does garbage collection of ancillary buffers + Bug fixes: + - removed unused _EXT constants from gl.h + - fixed polygon offset bugs + - Z coordinates of clipped lines were incorrect + - glEdgeFlag() in display lists didn't always work + - glLight*() in display lists didn't work + - fixed X line stipple bugs (Michael Pichler) + - glXUseXfonts XFreeFont/XFreeFontInfo bug fixed + - fixed a feedback bug + - glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix + - polygons were sometimes culled instead of clipped + - triangle rasterizer suffered from float/int overflow exceptions + - fixed FP underflow exception in lighting (specular exponent) + - glEnable/glDisable of GL_EXT_vertex_array enums didn't work + - fixed free(NULL) in GLU tesselator code + - using 24-bit color on some X servers resulted in garbage rendering + - 32-bit per pixel mode for XFree86 now works + - glRotate(a,0,0,0) gave unpredictable results + - GL_LINE_STRIP with > 480 vertices had occasional clipping problems + - 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap + - glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled + - glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right + - accumulation buffer was limited to positive values + - projective textures didn't work + - selection buffer overflows weren't handled correctly + Changes: + - restored the GL_EXT_polygon_offset extension + - slightly faster RGB dithering + - the SVGA driver works again + - Amiga driver now distributed separately + - NeXT driver updated for Mesa 2.x + +2.2 March 14, 1997 + New: + - better color selection when dithering + - added GL_EXT_texture_object extension + - updated MS-DOS driver for DJGPP + - added openbsd make configuration + - faster dithered flat-shaded triangles + - various compilation problems with Motif widgets fixed + - gl.h, glx.h and glu.h name mangling option + - BeOS driver + - 3D texture mapping extension + - GL_MESA_resize_buffers extension + - morph3d, stex3d and spectex demos + - 3Dfx support + Bug fixes: + - glColorMaterial should finally work right in all respects + - linear interpolation of mipmap levels was incorrectly weighted + - readpix.c didn't compile on Macintosh + - GL_INVERT and related logic ops didn't work right + - glTexImage[12]D() didn't check its parameters consistantly + - fixed a memory leak in glTexImage[12]D() + - kludged around a SunOS 5.x/GCC compiler bug in the feedback code + - glReadPixels aborted instead of normally catching some errors + - a few 1.1 constants were missing or misnamed in gl.h + - glBegin(p); glBegin(q); didn't generate an error + - fixed a memory leak in GLX code + - clipping of concave polygons could cause a core dump + - 1-component alpha texture maps didn't work + - fixed a GLU polygon tesselator bug + - polygons with colinear vertices were sometimes culled + - feedback triangle colors were wrong when using smooth shading + - textures with borders didn't work correctly + - colors returned in feedback mode were wrong when using lighting + - spotlights didn't effect ambient lighting correctly + - gluPartialDisk() had a few bugs + Changes: + - device driver interface expanded to support texture mapping + - faster matrix inversion subroutine + - commented out #include "wmesa_extend.h" from src/wmesa.c + - fixed many compiler warnings in the demo programs + +2.3 June 30, 1997 + New: + - Mesa distribution divided into two pieces: library code and demos + - faster vertex transformation, clip testing, lighting + - faster line drawing + - TrueColor visuals how have dithering (for depths < 24 bits) + - added MESA_NO_DITHER environment variable + - new device driver function: NearFar(), RenderVB(), RasterSetup() + - added LynxOS configuration + - added cygnus Win32 configuration + - added texcyl.c GLUT demo + - added XMesaDitherColor() to X/Mesa interface + - new NURBS code from Bogdan Sikorski + - added demos/shape.c (non-rectangular X window!) + Bug fixes: + - glEnable/DisableClientState() were missing from GL/gl.h + - GL_SPHERE_MAP texcoord generation didn't work correctly + - glXGetConfig() returned wrong number of depth, stencil, accum bits + - glDrawPixels feedback/selection didn't examine RasterPos valid bit + - black and white were reversed on some monochrome displays + - fixed potential image memory leak (wasn't setting reference counter) + - glDrawPixels sometimes didn't recognize some GL state changes + - gluProject/UnProject() didn't check for divide by zero + - stex3d demo called random() and srandom(), not portable + - fixed memory leaks in context.c and drawpix.c + - fixed NULL dereferencing problem in gl_update_texture_state() + - glReadPixels between glBegin/glEnd didn't generate an error. + - fixed memory leak in polygon tesselator (Randy Frank) + - fixed seg fault bug drawing flat-shaded, depth-tested lines + - clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded + - glBindTexture sometimes didn't work + - fixed a bug deep in glXReleaseBuffersMESA() + - fog was mistakenly applied to alpha + - glPopMatrix didn't set "dirty matrix" flag + - glPolygonStipple pattern was sometimes wrong + - glClear wasn't disabled during feedback and selection + - fixed memory leak in glTexSubImage[123]D + Changes: + - many library source files reorganized + - faster X color allocation, colors also freed when finished with them + - new texture sampling function pointer in texture objects + - incorporated 3Dfx VooDoo driver v0.16 into main source tree + - many 3Dfx driver updates + - cygnus Makefiles now included + - updated DOS driver + - made a few changes to dosmesa.c and wmesa.c (VB->Unclipped) + - internally, colors now stored in GLubytes, not GLfixed + - optimized changing of GL_SHININESS parameter + +2.4 September 18, 1997 + New: + - updated 3Dfx Glide driver + - hacks for 3Dfx rendering into an X window or fullscreen + - added depth buffer access functions to X/Mesa and OS/Mesa interfaces + Bug fixes: + - pixel buffer could overflow with long, wide lines + - fixed FP underflow problems in lighting + - glTexSubImage1D() had an unitialized variable + - incomplete texture objects could cause a segfault + - glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop + - flat-shaded quads in a strip were miscolored if clipped + - mipmapped triangle lod computation now works correctly + - fixed a few under/overflow bugs in triangle rasterizer + - glArrayElement() assigned bad normal if normal array disabled + - changed argument to glXReleaseBuffersMESA() + - fixed small triangle underflow bugs in tritemp.h (hopefully) + - glBindTexture(target, 0) caused a crash + - glTexImage[123]D() with NULL image pointer caused crash + - glPixelStore parameters are now ignored during display list execution + - fixed a two-sided lighting w/ clipping bug (black vertices) + - textures with width!=height were sometimes mis-rendered + - "weird" projection matrices could cause div by 0, other fp errors + Changes: + - changed precompiled header symbol from PCH to PC_HEADER + - split api.c into api1.c and api2.c + - added hash.c source file (but not used yet) + - a few Sun and HP configuration file changes + - MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN + - fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c) + +2.5 November 20, 1997 + New: + - updated 3Dfx driver (v20) for GLQuake + - added GL_EXT_paletted_texture extension + - added GL_EXT_shared_texture_palette extension + - added GL_EXT_point_parameters extension + - now including Mark Kilgard's GLUT library v3.6 + - new GLUT-based demos in gdemos/ + - added a few more Unix config targets + - added Intel X86 assembly language vertex transformation code + - 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var + - Windows 95 S3 Virge driver + Bug fixes: + - glCopyTexImage?D would crash due to uninitialized variable + - glColor w/ glColorMaterial in a display list caused a bug + - fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver + - glVertex4*() vertices weren't always projected correctly + - trying to use mipmapped textured points or lines caused crash + - glColor[34][fd]() values now clamped to [0,1] before int conversion + Changes: + - new device driver functions for texture mapping + - hash tables used for display list and texture object lookup + - fixed GLX visual handling code to avoid saving redundant visuals + - 3Dfx Glide libraries automatically linked to libMesaGL.so + - dropped the Cirrus Logic Mondello code since it's obsolete + - updated Cygnus Makefiles (Stephane Rehel) + - updated Windows MSVC++ Makefiles (Oleg Letsinsky) + - procedure for making library files has changed: scripts now take + a major and minor version arguments. Make-config changed a lot. + - new implementation of glTexSubImage2D() + - updated widgets-mesa directory to create libMesaGLwM.a (Motif widget) + - separate linux-glide and linux-386-glide configurations + +2.6 February 12, 1998 + New: + - Windows WGL functions + - updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support + - v0.22 of 3Dfx Glide driver + - more X86 assembly language optimizations + - faster blending for some modes + - XMesaSetFXmode() to switch between 3Dfx window and full-screen mode + - added preliminary thread support + - added GLX_MESA_copy_sub_buffer extension + - some clipping optimizations + Bug fixes: + - fixed shading/material bug when drawing long primitive strips + - fixed clipping problem in long primitive strips + - fixed clipping bug when using 3Dfx driver + - fixed a problem when trying to use X fonts w/ 3Dfx driver + - fixed a texture filter bug in 3Dfx/Glide driver + - fixed bug in 3Dfx/Glide driver involving depth mask & clearing + - glLoadMatrix to set projection matrix confused the 3Dfx driver + - non-identity texture matrices didn't work with linux-386 configs + - glGenTextures() didn't reserve the returned texture IDs + - NULL proxy image sent to glTexImageXD() caused crash + - added texture state validation optimization (Henk Kok) + - fixed colormap reuse problem when using both RGB and CI windows + - 32bpp True/DirectColor X visuals weren't recognized + - fixed potential problem in evaluators memory allocation + - fixed assorted demo compilation bugs + Changes: + - replaced old Mesa/windows/ directory with Mesa/WIN32/ directory + - converted a few old glaux/gltk demos to GLUT + - renamed directories: demos -> xdemos, gdemos -> demos + + +3.0 September 17, 1998 + New: + - OpenGL 1.2 API + - GL_EXT_abgr pixel format extension + - GL_SGIS_texture_edge_clamp extension + - GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex) + - GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex) + - GL_EXT_rescale_normal extension and renormal.c demo + - GLX_SGI_video_sync extension (a no-op) + - antialiased lines + - glGetTexImage() now implemented + - glDraw/Copy/ReadPixels() optimizations + - optimized textured triangle code (Marten Stromberg) + - more optimization of dithered TrueColor triangles in X driver + - Linux GGI driver + - updated MGL driver + Bug fixes: + - lots of assorted compilation fixes + - glInitNames didn't write initial hit record + - glBitmap didn't always check for invalid raster position + - switching between GLX and OSMesa contexts caused a crash + - fixed uninitialized variable in Mesa widget code + - fixed typo in texture code which caused book/texgen to crash + - fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP + - gluDisk() in POINT or LINE mode sometimes failed + - fixed texture + fog bug + - GL_COMPILE_AND_EXECUTE mode didn't work reliably + - glMultMatrix in projection matrix mode w/ 3Dfx driver could fail + - glDrawPixels(color index pixels) weren't converted to RGBA + - fixed possible getenv() buffer overflow security bug + - glBitmap in feedback mode was offset by xOrig, yOrig params + - device driver's DrawPixels hook was never used + - glDrawPixels with zoomY!=1 and top/bottom clipping didn't work + - glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte + - fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c + - glCopyTexSubImage2D() didn't work with 3Dfx driver + - lines with width = 2 could cause crash + - glClear with scissor rect sometimes cleared whole buffer + - glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work + - glTexImageXD( .. GL_ABGR_EXT .. ) didn't work + - computation of inverse modelview matrix sometimes failed + - fixed GL_CLAMP mode texture sampling bug + - textured line interpolation was somewhat broken + - textured triangle interpolation was also somewhat broken + - glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one + - evaluator state wasn't fully initialized + - texture coordinate clipping was buggy + - evaluator surfaces could be mis-colored + - glAccum(GL_RETURN, s) didn't obey glColorMask() settings + - zero area polygons shouldn't be culled if polygon mode is point/line + - clipped width and height of glReadPixels was sometimes off by one + - blending with alpha = 0 or 1.0 wasn't always exact + - reading of pixels from clipped region was buggy + - minor tweaking of X visual management in GLX emulator + - glPolygonStipple now obeys pixel unpacking parameters + - glGetPolygonStipple now obeys pixel packing parameters + - interleaved vertex array texture coordinates were broken + - query of proxy texture internal format was broken + - alpha channel wasn't reliably cleared + - fixed divide by zero error in gluScaleImage if dest size = 1 x 1 + Conformance bug fixes: + - GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing + - GL_TEXTURE_INTERNAL_FORMAT was missing + - glGet*(GL_POLYGON_STIPPLE) was broken + - glPush/PopAttrib() didn't save/restore all texture state + - glBitmap in feedback mode didn't work + - feedback of texture coords didn't always work + - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke + - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke + - glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke + Changes: + - upgraded GLUT to version 3.7 + - only GL and GLU library code included in MesaLib.tar.gz + - GLUT and all demos now in MesaDemos.tar.gz + - glaux and gltk libraries removed + - IRIX -n32 and -64 libs go in lib32/ and lib64/ directories + + +3.1 beta 1 November 19, 1998 + New: + - GL_EXT_stencil_wrap extension + - GL_INGR_blend_func_separate extension + - GL_ARB_multitexture extension + - GL_NV_texgen_reflection extension + - newly optimized vertex transformation code + - updated GLUT 3.7 code + - better precision when using 32-bit Z buffer + - Allegro DJGPP driver + Bug fixes: + - glCopyPixels between front/back buffers didn't copy alpha correctly + - fixed out-of-bounds memory access in optimized 2-D texture code + - glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter + - glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter + - clipping of texture coordinates sometimes had bad R,Q values + - GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels + - glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean * + - texture was sometimes applied twice with 3Dfx driver + - glPush/PopAttrib() fouled up texture object reference counts + - glDeleteLists(0, n) caused assertion failure + - bilinear texture sampling wasn't accurate enough + - glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx + - color components were reversed on big endian 32 bpp X visuals + Changes: + - removed GL_EXT_multitexture extension + + +3.1 beta 2 May 24, 1999 + New: + - multi-textured points and lines (mjk@nvidia.com) + - optimized 24bpp X rendering (bernd.paysan@gmx.de) + - added allegro support (bernie-t@geocities.com) + - cleaned-up Windows-related stuff (Ted Jump) + - minor stereo changes (KendallB@scitechsoft.com) + - new BeOS driver which implements BGLView class + - new Direct3D driver (see src/D3D) + - more efficient filled gluCylinder() function + - utilities: util/showbuffer.[ch] and util/glstate.[ch] + - fixed some IRIX compiler warnings + - added support for building Mesa in XFree86 with + SGI's GLX (kevin@precisioninsight.com) + Bug fixes: + - a variety of Windows/Mesa bug fixes (mjk@nvidia.com) + - packed pixel images weren't unpacked correctly + - patches some win32 files in GLUT (mjk@nvidia.com) + - glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX + - fixed lighting bug in Keith's new shading code + - fixed texture segfault seen in Lament screensaver + - fixed miscellaneous low-memory bugs + - glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken + - GL_LINEAR sampling of 3D textures was broken + - fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org) + - added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk) + - fixed wide point and wide line conformance bugs (brianp) + Changes: + - some device driver changes (see src/dd.h) + - new copyright on core Mesa code + + +3.1 beta 3 September 17, 1999 + New: + - optimized glAccum function + - optimized 24bpp rendering in XMesa driver + - GLU 1.2 polygon tessellator + Bug Fixes: + - glGetTexLevelParameter wasn't fully implemented + - glXUseXFont now handles multi-byte fonts + - glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result + - alpha channel of blending points, lines was sometimes incorrect + Changes: + - New library names: "libGL" instead of "libMesaGL" + - New library numbering: libGL.so.1.2.310 + - New subdirectories: docs/ and bin/ + - New Makefile-system (autoconf,automake,libtool) + + +3.1 final December 14, 1999 + New: + - added demos/gloss.c + - added xdemos/glxdpyinfo.c + - added GLX_ARB_get_proc_address extension + - rewritten glTexImage code paths (faster, less memory, bug fixes) + Bug Fixes: + - several vertex array bug fixes + - overlapping glCopyPixels with pixel zooming now works + - glXUseXFont() bitmaps were vertically shifted by one pixel + - glCopyPixels with pixel zooming now works + + +3.2 final April 24, 2000 + Bug fixes: + - fixed memcpy bugs in span.c + - fixed missing glEnd problem in demos/tessdemo.c + - fixed bug when clearing 24bpp Ximages + - fixed clipping problem found in Unreal Tournament + - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2 + - fixed Loki's 3dfx RGB vs BGR bug + - fixed Loki's 3dfx smooth/flat shading bug in SoF + Changes: + - updated docs/README file + - use bcopy() optimizations on FreeBSD + - re-enabled the optimized persp_textured_triangle() function + + +3.2.1 July 19, 2000 + Bug fixes: + - gluBuild2DMipmaps() didn't accept GL_BGRA + - Fixed compile/makefile problems on IRIX + - fixed segfault in 3dfx driver when using GL selection/feedback + - no longer cull very, very tiny triangles + - blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering) + - fixed Motif detection code in widgets-mesa/configure.in + - glColorMaterial and glMaterial updates to emissive and ambient + didn't always work right + - Specular highlights weren't always in the right place + - clipped GL_LINE mode polygons had interior lines appear + - blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken + - GL_NICEST fog didn't always work with flat shading + - glRect commands in display lists were sometimes miscolored + - Line Z offset didn't always work + - fixed texgen normal vector problem (gloss's teapot) + - numerous GL conformance bugs fixed + Changes: + - glColorMask(false, false, false, false) handled better/faster + - reverted to old GLU polygon tessellator, GLU 1.1 + - updated Win32 build files + + +3.3 July 21, 2000 + New: + - antialiased triangles now implemented + - GL_EXT_texture_env_add texture mode extension + - GLX 1.3 API + - support for separate draw/read buffers (ie GL_SGI_make_current_read) + - thread-safe API dispath + - improved glxinfo program + - demos/texdown program to measure texture download performance + - glext.h header file + - demos/geartrain program + - GL_EXT_texture_lod_bias extension + - demos/lodbias program + - further optimized glRead/DrawPixels for 16-bit TrueColor X visuals + - GLX_EXT_visual_rating extension (a no-op, however) + - GL_HP_occlusion_test extension (for X and OS/Mesa drivers) + - demos/occlude program + - GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions + - demos/pixeltex program + - GL_SGI_color_matrix extension + - GL_SGI_color_table extension + - GL_EXT_histogram extension + - GL_ARB_texture_cube_map extension + - added xdemos/glxheads and xdemos/manywin + - demos/texenv.c demo + - GL_EXT_texture_env_combine extension (by Holger Waechtler) + - Xlib driver is now thread-safe (see xdemos/glthreads) + Bug Fixes: + - various GL conformance failures fixed since 3.2.1 + Changes: + - gl.h now uses #defines instead of C enums for all tokens + - glu.h now uses #defines instead of C enums for all tokens + - moved programs from 3Dfx/demos/ into demos/ directory + + +3.4 November 3, 2000 + New: + - optimized glDrawPixels for glPixelZoom(1,-1) + Bug Fixes: + - widgets-mesa/src/*.c files were missing from 3.3 distro + - include/GL/mesa_wgl.h file was missing from 3.3 distro + - fixed some Win32 compile problems + - texture object priorities weren't getting initialized to 1.0 + - glAreTexturesResident return value was wrong when using hardware + - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX) + - glReadPixels with GLushort packed types was broken + - fixed a few bugs in the GL_EXT_texture_env_combine texture code + - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables + - fixed some typos/bugs in the VB code + - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work + - optimized glDrawPixels paths weren't being used + - per-fragment fog calculation didn't work without a Z buffer + - improved blending accuracy, fixes Glean blendFunc test failures + - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly + - glXGetProcAddressARB() didn't always return the right address + - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format + - texture matrix changes weren't always detected (GLUT projtex demo) + - fixed random color problem in vertex fog code + - fixed Glide-related bug that let Quake get a 24-bit Z buffer + Changes: + - finished internal support for compressed textures for DRI + + +3.4.1 February 14, 2001 + New: + - fixed some Linux build problems + - fixed some Windows build problems + - GL_EXT_texture_env_dot3 extension (Gareth Hughes) + Bug fixes: + - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI + - various state-update code changes needed for DRI bugs + - disabled pixel transfer ops in glColorTable commands, not needed + - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter + - updated sources and fixed compile problems in widgets-mesa/ + - GLX_PBUFFER enum value was wrong in glx.h + - fixed a glColorMaterial lighting bug + - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function + - glXCopySubBufferMESA() Y position was off by one + - Error checking of glTexSubImage3D() was broken (bug 128775) + - glPopAttrib() didn't restore all derived Mesa state correctly + - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL + conformance problems at 16bpp. + - clearing depth buffer with scissoring was broken, would segfault + - OSMesaGetDepthBuffer() returned bad bytesPerValue value + - fixed a line clipping bug (reported by Craig McDaniel) + - fixed RGB color over/underflow bug for very tiny triangles + Known problems: + - NURBS or evaluator surfaces inside display lists don't always work + + +3.4.2 May 17, 2001 + Bug fixes: + - deleting the currently bound texture could cause bad problems + - using fog could result in random vertex alpha values + - AA triangle rendering could touch pixels outside right window bound + - fixed byteswapping problem in clear_32bit_ximage() function + - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam + - fixed memory leak in glXUseXFont() + - fragment sampling in AA triangle function was off by 1/2 pixel + - Windows: reading pixels from framebuffer didn't always work + - glConvolutionFilter2D could segfault or cause FP exception + - fixed segfaults in FX and X drivers when using tex unit 1 but not 0 + - GL_NAND logicop didn't work right in RGBA mode + - fixed a memory corruption bug in vertex buffer reset code + - clearing the softwara alpha buffer with scissoring was broken + - fixed a few color index mode fog bugs + - fixed some bad assertions in color index mode + - fixed FX line 'stipple' bug #420091 + - fixed stencil buffer clear width/height typo + - fixed GL error glitches in gl[Client]ActiveTextureARB() + - fixed Windows compilation problem in texutil.c + - fixed 1/8-pixel AA triangle sampling error + Changes: + - optimized writing mono-colored pixel spans to X pixmaps + - increased max viewport size to 2048 x 2048 + + +3.5 June 21, 2001 + New: + - internals of Mesa divided into modular pieces (Keith Whitwell) + - 100% OpenGL 1.2 conformance (passes all conformance tests) + - new AA line algorithm + - GL_EXT_convolution extension + - GL_ARB_imaging subset + - OSMesaCreateContextExt() function + - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add) + - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight + - GL_EXT_fog_coord extension (Keith Whitwell) + - GL_EXT_secondary_color extension (Keith Whitwell) + - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add) + - GL_SGIX_depth_texture extension + - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions + - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow + - GL_ARB_texture_env_combine extension + - GL_ARB_texture_env_dot3 extension + - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp) + - OSMesaCreateContextExt() function + - libOSMesa.so library, contains the OSMesa driver interface + - GL/glxext.h header file for GLX extensions + - somewhat faster software texturing, fogging, depth testing + - all color-index conformance tests now pass (only 8bpp tested) + - SPARC assembly language TCL optimizations (David Miller) + - GL_SGIS_generate_mipmap extension + Bug Fixes: + - fbiRev and tmuRev were unitialized when using Glide3 + - fixed a few color index mode conformance failures; all pass now + - now appling antialiasing coverage to alpha after texturing + - colors weren't getting clamped to [0,1] before color table lookup + - fixed RISC alignment errors caused by COPY_4UBV macro + - drawing wide, flat-shaded lines could cause a segfault + - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles + Changes: + - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU + - new libOSMesa.so library, contains the OSMesa driver interface + + +4.0 October 22, 2001 + New: + - Mesa 4.0 implements the OpenGL 1.3 specification + - GL_IBM_rasterpos_clip extension + - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp) + - GL_ARB_texture_mirrored_repeat extension + - WindML UGL driver (Stephane Raimbault) + - added OSMESA_MAX_WIDTH/HEIGHT queries + - attempted compiliation fixes for Solaris 5, 7 and 8 + - updated glext.h and glxext.h files + - updated Windows driver (Karl Schultz) + Bug fixes: + - added some missing GLX 1.3 tokens to include/GL/glx.h + - GL_COLOR_MATRIX changes weren't recognized by teximage functions + - glCopyPixels with scale and bias was broken + - glRasterPos with lighting could segfault + - glDeleteTextures could leave a dangling pointer + - Proxy textures for cube maps didn't work + - fixed a number of 16-bit color channel bugs + - fixed a few minor memory leaks + - GLX context sharing was broken in 3.5 + - fixed state-update bugs in glPopClientAttrib() + - fixed glDrawRangeElements() bug + - fixed a glPush/PopAttrib() bug related to texture binding + - flat-shaded, textured lines were broken + - fixed a dangling pointer problem in the XMesa code (Chris Burghart) + - lighting didn't always produce the correct alpha value + - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky) + + +4.0.1 December 17, 2001 + New: + - better sub-pixel sample positions for AA triangles (Ray Tice) + - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO) + Bug fixes: + - added missing break statements in glGet*() for multisample cases + - fixed uninitialized hash table mutex bug (display lists / texobjs) + - fixed bad teximage error check conditional (bug 476846) + - fixed demos readtex.c compilation problem on Windows (Karl Schultz) + - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT + - silence some compiler warnings (gcc 2.96) + - enable the #define GL_VERSION_1_3 in GL/gl.h + - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h + - fixed glu.h typedef problem found with MSDev 6.0 + - build libGL.so with -Bsymbolic (fixes bug found with Chromium) + - added missing 'const' to glXGetContextIDEXT() in glxext.h + - fixed a few glXGetProcAddress() errors (texture compression, etc) + - fixed start index bug in compiled vertex arrays (Keith) + - fixed compilation problems in src/SPARC/glapi_sparc.S + - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith) + - use glXGetProcAddressARB in GLUT to avoid extension linking problems + - provoking vertex of flat-shaded, color-index triangles was wrong + - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith) + - glTexParameter didn't flush the vertex buffer (Ray Tice) + - feedback attributes for glDraw/CopyPixels and glBitmap were wrong + - fixed bug in normal length caching (ParaView lighting bug) + - fixed separate_specular color bug found in Chimera (18 Dec 2001) + + +4.0.2 April 2, 2002 + New: + - New DOS (DJGPP) driver written by Daniel Borca + - New driver interface functions for TCL drivers (such as Radeon DRI) + - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32" + if using deep color channels + - latest GL/glext.h and GL/glxext.h headers from SGI + Bug fixes: + - GL_BLEND with non-black texture env color wasn't always correct + - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha) + - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken + - glReadPixels was sometimes mistakenly clipped by the scissor box + - glDraw/ReadPixels didn't catch all the errors that they should have + - Fixed 24bpp rendering problem in Windows driver (Karl Schultz) + - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c) + - Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP) + - glColorMask as sometimes effecting glXSwapBuffers() + - fixed a potential bug in XMesaGarbageCollect() + - N threads rendering into one window didn't work reliably + - glCopyPixels didn't work for deep color channels + - improved 8 -> 16bit/channel texture image conversion (Gerk Huisma) + - glPopAttrib() didn't correctly restore user clip planes + - user clip planes failed for some perspective projections (Chromium) + Known bugs: + - mipmap LOD computation + + +4.0.3 June 25, 2002 + New: + - updated GL/glext.h file (version 15) + - corrected MMX blend code (Jose Fonseca) + - support for software-based alpha planes in Windows driver + - updated GGI driver (Filip Spacek) + Bug fixes: + - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens + - OSMesaMakeCurrent() didn't recognize buffer size changes + - assorted conformance fixes for 16-bit/channel rendering + - texcombine alpha subtraction mode was broken + - fixed lighting bug with non-uniform scaling and display lists + - fixed bug when deleting shared display lists + - disabled SPARC cliptest assembly code (Mesa bug 544665) + - fixed a couple Solaris compilation/link problems + - blending clipped glDrawPixels didn't always work + - glGetTexImage() didn't accept packed pixel types + - glPixelMapu[is]v() could explode given too large of pixelmap + - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT + - glXCopyContext() could lead to segfaults + - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665) + Changes: + - lots of C++ (g++) code clean-ups + - lots of T&L updates for the Radeon DRI driver + Known bugs: + - mipmap LOD computation (fixed for Mesa 4.1) + + +4.0.4 October 3, 2002 + New: + - GL_NV_texture_rectangle extension + - updated glext.h header (version 17) + - updated DOS driver (Daniel Borca) + - updated BeOS R5 driver (Philippe Houdoin) + - added GL_IBM_texture_mirror_repeat + - glxinfo now takes -l option to print interesting OpenGL limits info + - GL_MESA_ycbcr_texture extension + - GL_APPLE_client_storage extension (for some DRI drivers only) + - GL_MESA_pack_invert extension + Bug fixes: + - fixed GL_LINEAR fog bug by adding clamping + - fixed FP exceptions found using Alpha CPU + - 3dfx MESA_GLX_FX=window (render to window) didn't work + - fixed memory leak in wglCreateContest (Karl Schultz) + - define GLAPIENTRY and GLAPI if undefined in glu.h + - wglGetProcAddress didn't handle all API functions + - when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map + - removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc() + - error checking in compressed tex image functions had some glitches + - fixed AIX compile problem in src/config.c + - glGetTexImage was using pixel unpacking instead of packing params + - auto-mipmap generation for cube maps was incorrect + Changes: + - max texture units reduced to six to accomodate texture rectangles + - removed unfinished GL_MESA_sprite_point extension code + + +4.1 October 29, 2002 + New: + - GL_NV_vertex_program extension + - GL_NV_vertex_program1_1 extension + - GL_ARB_window_pos extension + - GL_ARB_depth_texture extension + - GL_ARB_shadow extension + - GL_ARB_shadow_ambient extension + - GL_EXT_shadow_funcs extension + - GL_ARB_point_parameters extension + - GL_ARB_texture_env_crossbar + - GL_NV_point_sprite extension + - GL_NV_texture_rectangle extension + - GL_EXT_multi_draw_arrays extension + - GL_EXT_stencil_two_side extension + - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions + - GL_ATI_texture_mirror_once extension (Ian Romanick) + - massive overhaul/simplification of software rasterizer module, + many contributions from Klaus Niederkrueger + - faster software texturing in some cases (i.e. trilinear filtering) + - new OSMesaGetProcAddress() function + - more blend modes implemented with MMX code (Jose Fonseca) + - added glutGetProcAddress() to GLUT + - added GLUT_FPS env var to compute frames/second in glutSwapBuffers() + - pbinfo and pbdemo PBuffer programs + - glxinfo -v prints transprent pixel info (Gerd Sussner) + Bug fixes: + - better mipmap LOD computation (prevents excessive blurriness) + - OSMesaMakeCurrent() didn't recognize buffer size changes + - assorted conformance fixes for 16-bit/channel rendering + - texcombine alpha subtraction mode was broken + - fixed some blend problems when GLchan==GLfloat (Gerk Huisma) + - clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma) + - fixed divide by zero error in NURBS tessellator (Jon Perry) + - fixed GL_LINEAR fog bug by adding clamping + - fixed FP exceptions found using Alpha CPU + - 3dfx/glide driver render-to-window feature was broken + - added missing GLX_TRANSPARENT_RGB token to glx.h + - fixed error checking related to paletted textures + - fixed reference count error in glDeleteTextures (Randy Fayan) + Changes: + - New spec file and Python code to generate some GL dispatch files + - Glide driver defaults to "no" with autoconf/automake + - updated demos/stex3d with new options + + +5.0 November 13, 2002 + New: + - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4") + - removed some overlooked debugging code + - glxinfo updated to support GLX_ARB_multisample + - GLUT now support GLX_ARB_multisample + - updated DOS driver (Daniel Borca) + Bug fixes: + - GL_POINT and GL_LINE-mode polygons didn't obey cull state + - fixed potential bug in _mesa_align_malloc/calloc() + - fixed missing triangle bug when running vertex programs + - fixed a few HPUX compilation problems + - FX (Glide) driver didn't compile + - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work + - a few EXT functions, like glGenTexturesEXT, were no-ops + - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate, + glMultiDrawArrays and glMultiDrawElements were missing + - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken + - Pentium 4 Mobile was mistakenly identified as having 3DNow! + - fixed one-bit error in point/line fragment Z calculation + - fixed potential segfault in fakeglx code + - fixed color overflow problem in DOT3 texture env mode + + +5.0.1 March 30, 2003 + New: + - DOS driver updates from Daniel Borca + - updated GL/gl_mangle.h file (Bill Hoffman) + Bug fixes: + - auto mipmap generation for cube maps was broken (bug 641363) + - writing/clearing software alpha channels was unreliable + - minor compilation fixes for OS/2 (Evgeny Kotsuba) + - fixed some bad assertions found with shadowtex demo + - fixed error checking bug in glCopyTexSubImage2D (bug 659020) + - glRotate(angle, -x, 0, 0) was incorrect (bug 659677) + - fixed potential segfault in texture object validation (bug 659012) + - fixed some bogus code in _mesa_test_os_sse_exception_support (Linus) + - fix fog stride bug in tnl code for h/w drivers (Michel Danzer) + - fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080) + - glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3 + - fixed compilation problem on Solaris7/x86 (bug 536406) + - fixed prefetch bug in 3DNow! code (Felix Kuhling) + - fixed NeXT build problem (FABSF macro) + - glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811) + - zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964) + - AA line and triangle Z values are now rounded, not truncated + - fixed color interpolation bug when GLchan==GLfloat (bug 694461) + - glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca) + - fixed a minor GL_COLOR_MATERIAL bug + - NV vertex program EXP instruction was broken + - glColorMask misbehaved with X window / pixmap rendering + - fix autoconf/libtool GLU C++ linker problem on Linux (a total hack) + - attempt to fix GGI compilation problem when MesaDemos not present + - NV vertex program ARL-relative fetches didn't work + Changes: + - use glPolygonOffset in gloss demo to avoid z-fighting artifacts + - updated winpos and pointblast demos to use ARB extensions + - disable SPARC normal transformation code (bug 673938) + - GLU fixes for OS/2 (Evgeny Kotsuba) + + +5.0.2 September 5, 2003 + Bug fixes: + - fixed texgen problem causing texcoord's Q to be zero (stex3d) + - default GL_TEXTURE_COMPARE_MODE_ARB was wrong + - GL_CURRENT_MATRIX_NV query was wrong + - GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one + - GL_LIST_MODE query wasn't correct + - GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported + - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value + - blended, wide lines didn't always work correctly (bug 711595) + - glVertexAttrib4svNV w component was always 1 + - fixed bug in GL_IBM_rasterpos_clip (missing return) + - GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly + - a few Solaris compilation fixes + - fixed glClear() problem for DRI drivers (non-existant stencil, etc) + - fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux) + - fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz) + - glFog() didn't clamp fog colors + - fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the + gl[Get]TexParameteri[v] functions + - fixed invalid memory references in glTexGen functions (bug 781602) + - integer-valued color arrays weren't handled correctly + - glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work + - GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1 + Changes: + - build GLUT with -fexceptions so C++ apps propogate exceptions + + +5.1 December 17, 2003 + New: + - reorganized directory tree + - GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche) + - GL_ATI_texture_env_combine3 extension (Ian Romanick) + - GL_SGI_texture_color_table extension (Eric Plante) + - GL_NV_fragment_program extension + - GL_NV_light_max_exponent extension + - GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle) + - GL_ARB_occlusion_query extension + - GL_ARB_point_sprite extension + - GL_ARB_texture_non_power_of_two extension + - GL_IBM_multimode_draw_arrays extension + - GL_EXT_texture_mirror_clamp extension (Ian Romanick) + - GL_ARB_vertex_buffer_object extension + - new X86 feature detection code (Petr Sebor) + - less memory used for display lists and vertex buffers + - demo of per-pixel lighting with a fragment program (demos/fplight.c) + - new version (18) of glext.h header + - new spriteblast.c demo of GL_ARB_point_sprite + - faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1) + - faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1) + Bug fixes: + - really enable OpenGL 1.4 features in DOS driver. + - fixed issues in glDrawPixels and glCopyPixels for very wide images + - glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint + - fixed some texgen bugs reported by Daniel Borca + - fixed wglMakeCurrent(NULL, NULL) bug (#835861) + - fixed glTexSubImage3D z-offset bug (Cedric Gautier) + - fixed RGBA blend enable bug (Ville Syrjala) + - glAccum is supposed to be a no-op in selection/feedback mode + - fixed texgen bug #597589 (John Popplewell) + Changes: + - dropped API trace feature (src/Trace/) + - documentation overhaul. merged with website content. more html. + - glxgears.c demo updated to use GLX swap rate extensions + - glTexImage1/2/3D now allows width/height/depth = 0 + - disable SPARC asm code on Linux (bug 852204) + + +6.0 January 16, 2004 + New: + - full OpenGL 1.5 support + - updated GL/glext.h file to version 21 + Changes: + - changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h) + Bug fixes: + - fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color + clamping issue + - updated suno5-gcc configs + - glColor3 functions sometimes resulted in undefined alpha values + - fixed FP divide by zero error seen on VMS with xlockmore, others + - fixed vertex/fragment program debug problem (bug 873011) + - building on AIX with gcc works now + - glDeleteProgramsARB failed for ARB fragment programs (bug 876160) + - glDrawRangeElements tried to modify potentially read-only storage + - updated files for building on Windows + + +6.0.1 April 2, 2004 + New: + - upgraded glext.h to version 22 + - new build targets (Dan Schikore) + - new linux-x86-opteron build target (Heath Feather) + Bug fixes: + - glBindProgramARB didn't update all necessary state + - fixed build problems on OpenBSD + - omit CVS directories from tarballs + - glGetTexImage(GL_COLOR_INDEX) was broken + - fixed an infinite loop in t&l module + - silenced some valgrind warnings about using unitialized memory + - fixed some compilation/link glitches on IRIX (Mike Stephens) + - glBindProgram wasn't getting compiled into display lists + - GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079) + - two-sided lighting and vertex program didn't work (bug 887330) + - stores to program parameter registers in vertex state programs + didn't work. + - fixed glOrtho bug found with gcc 3.2.2 (RH9) + - glXCreateWindow() wasn't fully implemented (bug 890894) + - generic vertex attribute arrays didn't work in display lists + - vertex buffer objects' default usage and access fields were wrong + - glDrawArrays with start!=0 was broken + - fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken + - linux-osmesa16-static config didn't work + - fixed a few color index rendering problems (bug 910687) + - glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE + - OSMesa RGB and BGR modes were broken + - glProgramStringARB mistakenly required a null-terminated string + - fragment program XPD instruction was incorrect + - glGetMaterial() didn't work reliably + - ARB_fragment_program KIL instruction was incorrect + + +6.1 August 18, 2004 + New: + - Revamped Makefile system + - glXUseRotatedXFont() utility (see xdemos/xuserotfont.c) + - internal driver interface changes related to texture object + allocation, vertex/fragment programs, BlendEquationSeparate, etc. + - option to walk triangle edges with double-precision floats + (Justin Novosad of Discreet) (see config.h file) + - support for AUX buffers in software GLX driver + - updated glext.h to version 24 and glxext.h to version 6 + - new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars + - updated BeOS support (Philippe Houdoin) + Changes: + - fragment fog interpolation is perspective corrected now + - new glTexImage code, much cleaner, may be a bit faster + Bug fixes: + - glArrayElement in display lists didn't handle generic vertex attribs + - glFogCoord didn't always work properly + - ARB_fragment_program fog options didn't work + - frag prog TEX instruction no longer incorrectly divides s,t,r by q + - ARB frag prog TEX and TEXP instructions now use LOD=0 + - glTexEnviv in display lists didn't work + - glRasterPos didn't do texgen or apply texture matrix + - GL_DOUBLE-valued vertex arrays were broken in some cases + - fixed texture rectangle edge/border sampling bugs + - sampling an incomplete texture in a fragment program would segfault + - glTexImage was missing a few error checks + - fixed some minor glGetTexParameter glitches + - GL_INTENSITY was mistakenly accepted as a to glTexImage + - fragment program writes to RC/HC register were broken + - fixed a few glitches in GL_HP_occlusion_test extension + - glBeginQueryARB and glEndQueryARB didn't work inside display lists + - vertex program state references were broken + - fixed triangle color interpolation bug on AIX (Shane Blackett) + - fixed a number of minor memory leaks (bug #1002030) + + +6.2 October 2, 2004 + New: + - enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle) + - updated Doxygen support (Jose Fonseca) + Changes: + - some GGI driver updates (Christoph Egger, bug 1025977) + Bug fixes: + - Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features + - fixed a few compilation issues on IRIX + - fixed a matrix classification bug (reported by Wes Bethel) + - we weren't reseting the vertex/fragment program error state + before parsing (Dave Reveman) + - adjust texcoords for sampling texture rectangles (Dave Reveman) + - glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented + - repeated calls to glDeleteTexture(t) could lead to a crash + - fixed potential ref count bugs in VBOs and vertex/fragment programs + - spriteblast demo didn't handle window size changes correctly + - glTexSubImage didn't handle pixels=NULL correctly for PBOs + - fixed color index mode glDrawPixels bug (Karl Schultz) + + +6.2.1 December 9, 2004 + Bug fixes: + - don't apply regular fog or color sum when using a fragment program + - glProgramEnvParameter4fARB always generated an error on + GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645) + - glVertexAttrib3svNV and glVertexAttrib3svARB were broken + - fixed width/height mix-up in glSeparableFilter2D() + - fixed regression in glCopyPixels + convolution + - glReadPixels from a clipped front color buffer didn't always work + - glTexImage didn't accept GL_RED/GREEN/BLUE as the format + - Attempting queries/accesses of VBO 0 weren't detected as errors + - paletted textures failed if the palette had fewer than 256 entries + Changes: + - fixed a bunch of compiler warnings found with gcc 3.4 + - bug reports should to go bugzilla.freedesktop.org + + +6.3 July 20, 2005 + New: + - GL_EXT_framebuffer_object extension + - GL_ARB_draw_buffers extension + - GL_ARB_pixel_buffer_object extension + - GL_OES_read_format extension (Ian Romanick) + - DirectFB driver (Claudio Ciccani) + - x86_64 vertex transformation code (Mikko T.) + - Updated GL/glext.h to version 29 + Changes: + - added -stereo option for glxgears demo (Jacek Rosik) + - updated the PBuffer demo code in xdemos/ directory + - glDeleteTextures/Programs/Buffers() now makes the object ID + available for immediate re-use + - assorted 64-bit clean-ups fixes (x86_64 and Win64) + - lots of internal changes for GL_EXT_framebuffer_object + Bug fixes: + - some functions didn't support PBO functionality + - glGetTexImage didn't convert color index images to RGBA as required + - fragment program texcoords were sometimes wrong for points and lines + - fixed problem with negative dot product in arbfplight, fplight demos + - fixed bug in perspective correction of antialiased, textured lines + - querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value + - fixed a couple per-pixel fog bugs (Soju Matsumoto) + - glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken + - fixed float parsing bug in ARB frag/vert programs (bug 2520) + - XMesaGetDepthBuffer() returned incorrect value for bytesPerValue + - GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha + - glXChooseFBConfig() crashed if attribList pointer was NULL + - program state.light[n].spot.direction.w was wrong value (bug 3083) + - fragment program fog option required glEnable(GL_FOG) - wrong. + - glColorTable() could produce a Mesa implementation error (bug 3135) + - RasterPos could get corrupted by color index rendering path + - Removed bad XTranslateCoordinates call when rendering to Pixmaps + - glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state + - fixed a few Darwin compilation problems + + +6.3.1 + This was an intermediate release for X.org which wasn't otherwise released. + + +6.3.2 August 19, 2005 + New: + - The distribution now includes the DRI drivers and GLX code + Changes: + - Made the DRI "new" driver interface standard, remove old code + Bug fixes: + - GL_ARB_vertex/fragment_shader were mistakenly listed in the + extensions string + - negative relative addressing in vertex programs was broken + - update/fix SPARC assembly code for vertex transformation + - fixed memory leak when freeing GLX drawables/renderbuffers + - fixed display list memory leak + - the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer + - wglGetProcAddress() didn't handle wgl-functions + - fixed glxext.h cross-compile issue (Colin Harrison) + - assorted DRI driver fixes + + +6.4 October 24, 2005 + New: + - Added a fast XOR line drawing function in Xlib driver + - Added support for GL_ARB_texture_mirrored_repeat to savage + driver (supported only on Savage4 hardware). + Changes: + - Mesa now packaged in three parts: Library, Demos and GLUT + Bug fixes: + - GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig + - Some files were present multiple times in the 6.3.2 tarballs + - r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207) + - glxgears_fbconfig demo didn't work (bug 4237) + - fixed bug when bilinear sampling 2d textures with borders + - glXCreatePbuffer() could segfault instead of returning 0 (bug 4235) + - fixed undefined frexp and rand in X.org libGLcore.a (bug 4242) + - fixed a few problems with proxy color tables (bug 4270) + - fixed precision problem in Z clearing (bug 4395) + - glBitmap, glDraw/CopyPixels mistakenly generated selection hits + - fixed potential segfault caused by reading pixels outside + of renderbuffer bounds + - glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB + - fixed memory corruption bug involving software alpha buffers + - glReadPixels clipped by window bounds was sometimes broken + - glDraw/CopyPixels of stencil data ignored the stencil write mask + - glReadPixels from a texture bound to a framebuffer object didn't work + - glIsRender/FramebufferEXT weren't totally correct + - fixed a number of point size attenuation/fade bugs + - fixed glFogCoord bug 4729 + - GLX encoding for transpose matrix functions was broken + - fixed broken fragment program KIL and SWZ instructions + - fragment programs that wrote result.depth.z didn't work + + +6.4.1 November 30, 2005 + Bug fixes: + - redefining a vertex program string didn't take effect in TNL module + - fixed occasional segfault upon vertex/fragment parsing error + - vertex program LIT instruction didn't handle 0^0=1 correctly + - fragment program fog option didn't work with glDrawPixels, glBitmap + - USE_MGL_NAMESPACE didn't work for x86-64 + - OSMesa demos were missing from previous release tarballs + - fixed problem with float->ushort conversion in glClear (bug 4992) + - popping of GL_EYE_PLANE texgen state was broken (bug 4996) + - popping of GL_SPOT_DIRECTION light state was broken (bug 5005) + - fixed occasional triangle color interpolation problem on VMS + - work around invalid free() call (bug 5131) + - fixed BSD X server compilation problem by including stdint.h + + +6.4.2 February 2, 2006 + New: + - added OSMesaColorClamp() function/feature + - added wglGetExtensionStringARB() function + Bug fixes: + - fixed some problems when building on Windows + - GLw header files weren't installed by installmesa script (bug 5396) + - GL/glfbdev.h file was missing from tarballs + - fixed TNL initialization bug which could lead to crash (bug 5791) + + +6.5 March 31, 2006 + New: + - OpenGL Shading Language support through GL_ARB_shader_objects, + GL_ARB_shading_language_100, GL_ARB_vertex_shader and + GL_ARB_fragment_shader (done by Michal Krol) + - GL_EXT_packed_depth_stencil extension + - GL_EXT_timer_query extension + - GL_EXT_framebuffer_blit extension + - GL_ARB_half_float_pixel + - reflect demo improved to support multiple windows + - singlebuffer demo (shows no/little-flicker single-buffered rendering) + - r200: enable GL_ARB_texture_env_crossbar, separate the texture + sampling unit bits from the texture env combine enable bits + - r200: add support for GL_ATI_fragment_shader + - added fast XOR-mode line drawing optimization + - radeon: add support for all 3 tmus, GL_ARB_texture_cube_map + and GL_EXT_fog_coord + - MESA_GLX_ALPHA_BITS env var for xlib driver + - many DRI driver updates (including screen rotation support + for the Intel DRI driver) + Changes: + - removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead) + - removed GL_SGIX/SGIS_pixel_texture extensions + Bug fixes: + - fixed glxcontextmodes.c datatype problem (bug 5835) + - fixed aix-gcc build/install bugs (bug 5874) + - fixed some bugs in texture env program generation + - glXCopyContext() didn't handle texture object bindings properly + - glXCopyContext() didn't copy all lighting state + - fixed FreeBSD config (Pedro Giffuni) + - fixed some minor framebuffer object bugs + - replaced dprintf() with _glu_printf() in GLU (bug 6244) + - fixed a number of thread safety bugs/regressions + - fixed a number of GLU tesselator bugs (John Shell, bug 6339) + - paletted texturing was broken w/ floating point palettes (K. Schultz) + - lots of assorted framebuffer object bug fixes + +6.5.1 August 31, 2006 + New: + - Intel i965 DRI driver + - GL_APPLE_vertex_array_object extension (Ian Romanick) + - GL_EXT_texture_sRGB extension + - GL_EXT_gpu_program_parameters (Ian Romanick) + - "engine" demo + - updated fbdev driver and GLUT for fbdev (Sean D'Epagnier) + - many updates to the DRI drivers + Changes: + - The glVertexAttribARB functions no longer alias the conventional + vertex attributes. + - glxinfo program prints more info with -l option + - GL_FRAGMENT_PROGRAM_NV and GL_FRAGMENT_PROGRAM_ARB are now + compatible, in terms of glBindProgramARB() + Bug fixes: + - fixed broken texture border handling for depth textures (bug 6498) + - removed the test for duplicated framebuffer attachments, per + version 117 of the GL_EXT_framebuffer_object specification + - fixed a few render-to-texture bugs, including render to depth texture + - clipping of lines against user-defined clip planes was broken (6512) + - assembly language dispatch for SPARC was broken (bug 6484) + - assorted compilation fixes on various Unix platforms (Dan Schikore) + - glPopAttrib could restore an invalid value for GL_DRAW_BUFFER + - assorted minor fixes for 16 and 32 bit/channel modes + - fixed assorted bugs in texture compression paths + - fixed indirect rendering vertex array crashes (bug 6863) + - glDrawPixels GL_INDEX_OFFSET didn't always work + - fixed convolution memory leak (bug 7077) + - rectangular depth textures didn't work + - invalid mode to glBegin didn't generate an error (bug 7142) + - 'normalized' parameter to glVertexAttribPointerARB didn't work + - disable bogus GLX_SGI_video_sync extension in xlib driver + - fixed R128 driver locking bug (Martijn van Oosterhout) + - using evaluators with vertex programs caused crashes (bug 7564) + - fragment.position wasn't set correctly for point/line primitives + - fixed parser bug for scalar sources for GL_NV_fragment_program + - max fragment program length was incorrectly 128, now 1024 + - writes to result.depth in fragment programs weren't clamped to [0,1] + - fixed potential dangling pointer bug in glBindProgram() + - fixed some memory leaks (and potential crashes) in Xlib driver --- mesa-7.9+repack.orig/docs/relnotes-7.8.2.html +++ mesa-7.9+repack/docs/relnotes-7.8.2.html @@ -26,7 +26,15 @@

      MD5 checksums

      -tbd
      +c89b63d253605ed40e8ac370d25a833c  MesaLib-7.8.2.tar.gz
      +6be2d343a0089bfd395ce02aaf8adb57  MesaLib-7.8.2.tar.bz2
      +a04ad3b06ac5ff3969a003fa7bbf7d5b  MesaLib-7.8.2.zip
      +7c213f92efeb471f0331670d5079d4c0  MesaDemos-7.8.2.tar.gz
      +757d9e2e06f48b1a52848be9b0307ced  MesaDemos-7.8.2.tar.bz2
      +8d0e5cfe68b8ebf90265d350ae2c48b1  MesaDemos-7.8.2.zip
      +b74482e3f44f35ed395c4aada4fd8240  MesaGLUT-7.8.2.tar.gz
      +a471807b65e49c325808ba4551be93ed  MesaGLUT-7.8.2.tar.bz2
      +9f190268c42be582ef66e47365ee61e3  MesaGLUT-7.8.2.zip
       
      @@ -44,10 +52,95 @@
      • Fixed Gallium glDrawPixels(GL_DEPTH_COMPONENT).
      • Fixed Gallium Cell driver to buildable, runable state +
      • Fixed bad error checking for glFramebufferRenderbuffer(attachment=GL_DEPTH_STENCIL_ATTACHMENT). +
      • Fixed incorrect Z coordinate handling in "meta" glDraw/CopyPixels. + Bug + #23670.
      • + +
      • Assorted i965 driver fixes. + Including but not limited to: +
          +
        • Fix scissoring when width or height is + 0. Bug + #27643. +
        • Fix bit allocation for number of color regions for + ARB_draw_buffers.
        • +
        • Set the correct provoking vertex for clipped first-mode + trifans. Bug + #24470.
        • +
        • Use R16G16B16A16_FLOAT for 3-component half-float.
        • +
        • Fix assertion for surface tile offset usage on Ironlake.
        • +
        • Fix cube map layouts on Ironlake.
        • +
        • When an RB gets a new region, clear the old from the state + cache. Bug + #24119.
        • +
        • Reject shaders with uninlined function calls instead of hanging.
        • +
        +
      • + +
      • Assorted i915 driver fixes. Including but not limited to: +
          +
        • Fixed texture LOD clamping in i915 driver. + Bug + #24846.
        • +
        • Fix off-by-one for drawing rectangle. + Bug + #27408.
        • +
        +
      • + +
      • Fixed hangs in etracer on 830 and 845 + chipsets. Bug + #26557.
      • +
      • Fixed tiling of small textures on all Intel drivers.
      • +
      • Fixed crash in Savage driver when using _mesa_CopyTexImage2D. + Bug + #27652.
      • + +
      • Assorted GLX fixes. Including but not limited to: +
          +
        • Fixed __glXInitializeVisualConfigFromTags's handling of + unrecognized fbconfig tags.
        • +
        • Fixed regression with GLX_USE_GL. +
        • Fixed config chooser logic for 'mask' matching.
        • +
        • Report swap events correctly in direct rendered case (DRI2)
        • +
        • Fixed build with dri2proto which doesn't define + X_DRI2SwapInterval.
        • +
        • Get GLX_SCREEN first in __glXQueryContextInfo. + Bug + #14245.
        • +
        +
      • + +
      • Assorted GLSL fixes. Including but not limited to: +
          +
        • Change variable declared assertion into conditional in GLSL + compiler. Bug + #27921.
        • +
        • Fix instruction indexing + bugs. Bug + #27566.
        • +
        • Updated uniform location / offset encoding to be more like + other implementations.
        • +
        • Don't overwrite a driver's shader infolog with generic failure + message.
        • +
        +
      • + +
      • Fixed OSMesa build for 16 and 32-bit color channel depth. +
      • Fixed OSMesa build with hidden symbol visibility. libOSMesa no longer links to libGL. + Bug + #28305. +
      • Fixed handling of multiple render targets in fixed-function + texture envrionmnent programs.
      • +
      • Fixed conversion errors in signed_rgba8888[rev] texel + fetch.
      • +
      • Don't set srcLevel on GL_TEXTURE_RECTANGLE_ARB targets.
      • +
      • Various build fixes for OpenBSD.
      • +
      • Various build fixes for OS X.
      • +
      • Various build fixes for GCC 3.3.
      -

      Changes

      -

      None.

      --- mesa-7.9+repack.orig/docs/GL3.txt +++ mesa-7.9+repack/docs/GL3.txt @@ -0,0 +1,101 @@ + +Status of OpenGL 3.x features in Mesa + + +Note: when an item is marked as "DONE" it means all the core Mesa +infrastructure is complete but it may be the case that few (if any) drivers +implement the features. + + +Feature Status +----------------------------------------------------- ------------------------ + +GL 3.0: + +GLSL changes (GL_EXT_gpu_shader4, etc) not started +Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe) +Map buffer subranges (GL_ARB_map_buffer_range) DONE +Float textures, renderbuffers some infrastructure done + (incl. GL_EXT_packed_float, GL_EXT_shared_exponent) +Framebuffer objects (GL_EXT_framebuffer_object) DONE +Half-float some infrastructure done +Multisample blit DONE +Non-normalized Integer texture/framebuffer formats not started +1D/2D Texture arrays core Mesa, swrast done +Packed depth/stencil formats DONE +Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE +GL_EXT_texture_compression_rgtc not started +Red and red/green texture formats Ian? +Transform feedback (GL_EXT_transform_feedback) ~50% done + glBindFragDataLocation, glGetFragDataLocation, + glBindBufferRange, glBindBufferBase commands +Vertex array objects (GL_APPLE_vertex_array_object) DONE +sRGB framebuffer format (GL_EXT_framebuffer_sRGB) not started +glClearBuffer commands DONE, except for dispatch +glGetStringi command DONE, except for dispatch +glTexParameterI, glGetTexParameterI commands DONE, except for dispatch +glVertexAttribI commands not started + + +GL 3.1: + +GLSL 1.30 and 1.40 not started +Instanced drawing (GL_ARB_draw_instanced) ~50% done +Buffer copying (GL_ARB_copy_buffer) DONE +Primitive restart (GL_NV_primitive_restart) not started +16 vertex texture image units not started +Texture buffer objs (GL_ARB_textur_buffer_object) not started +Rectangular textures (GL_ARB_texture_rectangle) DONE +Uniform buffer objs (GL_ARB_uniform_buffer_object) not started +Signed normalized texture formats ~50% done + + +GL 3.2: + +Core/compatibility profiles not started +GLSL 1.50 not started +Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) +BGRA vertex order (GL_ARB_vertex_array_bgra) DONE +Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE +Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (swrast, gallium) +Provoking vertex (GL_ARB_provoking_vertex) DONE +Seamless cubemaps (GL_ARB_seamless_cube_map) DONE, mostly? +Multisample textures (GL_ARB_texture_multisample) not started +Frag depth clamp (GL_ARB_depth_clamp) DONE +Fence objects (GL_ARB_sync) DONE + + +GL 3.3: + +GLSL 3.30 not started +GL_ARB_blend_func_extended not started +GL_ARB_explicit_attrib_location not started +GL_ARB_occlusion_query2 not started +GL_ARB_sampler_objects not started +GL_ARB_texture_rgb10_a2ui not started +GL_ARB_texture_swizzle DONE (same as EXT version) +GL_ARB_timer_query DONE (only Xlib sw driver) +GL_ARB_instanced_arrays not started +GL_ARB_vertex_type_2_10_10_10_rev not started + + +GL 4.0: + +GLSL 4.0 not started +GL_ARB_texture_query_lod not started +GL_ARB_draw_buffers_blend not started +GL_ARB_draw_indirect not started +GL_ARB_gpu_shader_fp64 not started +GL_ARB_sample_shading not started +GL_ARB_shader_subroutine not started +GL_ARB_tessellation_shader not started +GL_ARB_texture_buffer_object_rgb32 not started +GL_ARB_texture_cube_map_array not started +GL_ARB_texture_gather not started +GL_ARB_transform_feedback2 not started + + + + +More info about these features and the work involved can be found at +http://dri.freedesktop.org/wiki/MissingFunctionality