aboutsummaryrefslogtreecommitdiff
path: root/mesalib
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-09-24 08:28:39 +0200
committermarha <marha@users.sourceforge.net>2012-09-24 08:28:39 +0200
commit0ebcd32e91486caccc041c8ca23e39e160b24702 (patch)
tree50cd0bc17e8a587fdbecdf52be48fe8c59e222b9 /mesalib
parent06d4ea68085558b94d8e9c937091e7b7fcc5d95a (diff)
downloadvcxsrv-0ebcd32e91486caccc041c8ca23e39e160b24702.tar.gz
vcxsrv-0ebcd32e91486caccc041c8ca23e39e160b24702.tar.bz2
vcxsrv-0ebcd32e91486caccc041c8ca23e39e160b24702.zip
mesa pixman xserver git update 24 sep 2012
xserver: 7722bcbab2507d263c7685b15cccbfdd52fc3a24 pixman: c4b69e706e63e01fbc70e0026c2079007c89de14 mesa: c432c86e6aeebeb46c028af940224c59faa16e88
Diffstat (limited to 'mesalib')
-rw-r--r--mesalib/docs/GL3.txt5
-rw-r--r--mesalib/docs/autoconf.html127
-rw-r--r--mesalib/docs/contents.html9
-rw-r--r--mesalib/docs/egl.html88
-rw-r--r--mesalib/docs/faq.html32
-rw-r--r--mesalib/docs/games.html72
-rw-r--r--mesalib/docs/gears.pngbin1608 -> 3467 bytes
-rw-r--r--mesalib/docs/libraries.html65
-rw-r--r--mesalib/docs/lists.html7
-rw-r--r--mesalib/docs/modelers.html72
-rw-r--r--mesalib/docs/osmesa.html3
-rw-r--r--mesalib/docs/science.html78
-rw-r--r--mesalib/docs/utility.html43
-rw-r--r--mesalib/docs/xlibdriver.html8
-rw-r--r--mesalib/src/mesa/drivers/common/meta.c141
-rw-r--r--mesalib/src/mesa/main/fbobject.c3
-rw-r--r--mesalib/src/mesa/main/ff_fragment_shader.cpp8
-rw-r--r--mesalib/src/mesa/main/teximage.c2
-rw-r--r--mesalib/src/mesa/main/texparam.c12
19 files changed, 254 insertions, 521 deletions
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index 24b70a1a2..876165fe9 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -138,10 +138,7 @@ ARB_ES3_compatibility not started
ARB_clear_buffer_object not started
ARB_compute_shader started (gallium)
ARB_copy_image not started
-ARB_debug_group not started
-ARB_debug_label not started
-ARB_debug_output DONE
-ARB_debug_output2 not started
+KHR_debug some work done (ARB_debug_output)
ARB_explicit_uniform_location not started
ARB_fragment_layer_viewport not started
ARB_framebuffer_no_attachments not started
diff --git a/mesalib/docs/autoconf.html b/mesalib/docs/autoconf.html
index 0210bd1b2..a07a3ee14 100644
--- a/mesalib/docs/autoconf.html
+++ b/mesalib/docs/autoconf.html
@@ -24,7 +24,6 @@
<li><a href="#dri">DRI Driver Options</a></li>
<li><a href="#osmesa">OSMesa Driver Options</a></li>
</ul>
-<li><p><a href="#demos">Demo Program Options</a>
</ol>
@@ -63,83 +62,107 @@ configuration run <code>make realclean</code> before rebuilding.
<p>
Some of the generic autoconf options are used with Mesa:
-
-<ul>
-<li><code>--prefix=PREFIX</code> - This is the root directory where
+</p>
+<dl>
+<dt><code>--prefix=PREFIX</code></dt>
+<dd><p>This is the root directory where
files will be installed by <code>make install</code>. The default is
-<code>/usr/local</code>.
-</li>
-<li><code>--exec-prefix=EPREFIX</code> - This is the root directory
+<code>/usr/local</code>.</p>
+</dd>
+
+<dt><code>--exec-prefix=EPREFIX</code></dt>
+<dd><p>This is the root directory
where architecture-dependent files will be installed. In Mesa, this is
only used to derive the directory for the libraries. The default is
-<code>${prefix}</code>.
-</li>
-<li><code>--libdir=LIBDIR</code> - This option specifies the directory
+<code>${prefix}</code>.</p>
+</dd>
+
+<dt><code>--libdir=LIBDIR</code></dt>
+<dd><p>This option specifies the directory
where the GL libraries will be installed. The default is
<code>${exec_prefix}/lib</code>. It also serves as the name of the
library staging area in the source tree. For instance, if the option
<code>--libdir=/usr/local/lib64</code> is used, the libraries will be
created in a <code>lib64</code> directory at the top of the Mesa source
-tree.
-</li>
-<li><code>--enable-static, --disable-shared</code> - By default, Mesa
+tree.</p>
+</dd>
+
+<dt><code>--enable-static, --disable-shared</code></dt>
+<dd><p>By default, Mesa
will build shared libraries. Either of these options will force static
libraries to be built. It is not currently possible to build static and
-shared libraries in a single pass.
-</li>
-<li><code>CC, CFLAGS, CXX, CXXFLAGS</code> - These environment variables
+shared libraries in a single pass.</p>
+</dd>
+
+<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
+<dd><p>These environment variables
control the C and C++ compilers used during the build. By default,
<code>gcc</code> and <code>g++</code> are used with the options
-<code>"-g -O2"</code>.
-</li>
-<li><code>LDFLAGS</code> - An environment variable specifying flags to
+<code>"-g -O2"</code>.</p>
+</dd>
+
+<dt><code>LDFLAGS</code></dt>
+<dd><p>An environment variable specifying flags to
pass when linking programs. These are normally empty, but can be used
to direct the linker to use libraries in nonstandard directories. For
-example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.
-</li>
-<li><code>PKG_CONFIG_PATH</code> - When available, the
+example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
+</dd>
+
+<dt><code>PKG_CONFIG_PATH</code></dt>
+<dd><p>When available, the
<code>pkg-config</code> utility is used to search for external libraries
on the system. This environment variable is used to control the search
path for <code>pkg-config</code>. For instance, setting
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
package metadata in <code>/usr/X11R6</code> before the standard
-directories.
-</li>
-</ul>
+directories.</p>
+</dd>
+</dl>
<p>
There are also a few general options for altering the Mesa build:
-<ul>
-<li><code>--with-x</code> - When the X11 development libraries are
+</p>
+<dl>
+<dt><code>--with-x</code></dt>
+<dd><p>When the X11 development libraries are
needed, the <code>pkg-config</code> utility <a href="#pkg-config">will
be used</a> for locating them. If they cannot be found through
<code>pkg-config</code> a fallback routing using <code>imake</code> will
be used. In this case, the <code>--with-x</code>,
<code>--x-includes</code> and <code>--x-libraries</code> options can
-control the use of X for Mesa.
-</li>
-<li><code>--enable-gl-osmesa</code> - The <a href="osmesa.html">OSMesa
+control the use of X for Mesa.</p>
+</dd>
+
+<dt><code>--enable-gl-osmesa</code></dt>
+<dd><p>The <a href="osmesa.html">OSMesa
library</a> can be built on top of libGL for drivers that provide it.
This option controls whether to build libOSMesa. By default, this is
enabled for the Xlib driver and disabled otherwise. Note that this
-option is different than using OSMesa as the driver.
-</li>
-<li><code>--enable-debug</code> - This option will enable compiler
-options and macros to aid in debugging the Mesa libraries.
-</li>
-<li><code>--disable-asm</code> - There are assembly routines
+option is different than using OSMesa as the driver.</p>
+</dd>
+
+<dt><code>--enable-debug</code></dt>
+<dd><p>This option will enable compiler
+options and macros to aid in debugging the Mesa libraries.</p>
+</dd>
+
+<dt><code>--disable-asm</code></dt>
+<dd><p>There are assembly routines
available for a few architectures. These will be used by default if
one of these architectures is detected. This option ensures that
-assembly will not be used.
-</li>
-<li><code>--enable-32-bit, --enable-64-bit</code> - By default, the
+assembly will not be used.</p>
+</dd>
+
+<dt><code>--enable-32-bit</code></dt>
+<dt><code>--enable-64-bit</code></dt>
+<dd><p>By default, the
build will compile code as directed by the environment variables
<code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is
<code>gcc</code>, these options offer a helper to add the compiler flags
to force 32- or 64-bit code generation as used on the x86 and x86_64
-architectures.
-</li>
-</ul>
+architectures.</p>
+</dd>
+</dl>
<h2 id="driver">2. Driver Options</h2>
@@ -222,26 +245,6 @@ libraries that will be built. More details on the specific GL libraries
can be found in the <a href="install.html">basic installation
instructions</a>.
-
-<h2 id="demos">4. Demo Program Options</h2>
-
-<p>
-There are many demonstration programs in the MesaDemos tarball. If the
-programs are available when <code>./configure</code> is run, a subset of
-the programs will be built depending on the driver and library options
-chosen. See the directory <code>progs</code> for the full set of demos.
-
-<dl>
-<dt><code>--with-demos=DEMOS,DEMOS,...</code>
-<dd><p> This option allows a
-specific set of demo programs to be built. For example,
-<code>--with-demos="xdemos,slang"</code>. Beware that if this option is
-used, it will not be ensured that the necessary GL libraries will be
-available.
-<dt><code>--without-demos</code> <dd><p> This completely disables building the
-demo programs. It is equivalent to <code>--with-demos=no</code>.
-</dl>
-
</div>
</body>
</html>
diff --git a/mesalib/docs/contents.html b/mesalib/docs/contents.html
index 94b538da1..b9a892201 100644
--- a/mesalib/docs/contents.html
+++ b/mesalib/docs/contents.html
@@ -41,6 +41,10 @@
<ul>
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
<li><a href="install.html" target="_parent">Compiling / Installing</a>
+ <ul>
+ <li><a href="autoconf.html" target="_parent">Autoconf</a></li>
+ </ul>
+</li>
<li><a href="precompiled.html" target="_parent">Precompiled Libraries</a>
</ul>
@@ -85,11 +89,6 @@
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
-<li><a href="games.html" target="_parent">Games and Entertainment</a>
-<li><a href="libraries.html" target="_parent">Libraries and Toolkits</a>
-<li><a href="modelers.html" target="_parent">Modeling and Rendering</a>
-<li><a href="science.html" target="_parent">Science and Technical</a>
-<li><a href="utility.html" target="_parent">Utilities</a>
</ul>
<b>Hosted by:</b>
diff --git a/mesalib/docs/egl.html b/mesalib/docs/egl.html
index a77c12fe2..240cec53a 100644
--- a/mesalib/docs/egl.html
+++ b/mesalib/docs/egl.html
@@ -60,28 +60,32 @@ or more EGL drivers.</p>
<p>There are several options that control the build of EGL at configuration
time</p>
-<ul>
-<li><code>--enable-egl</code>
+<dl>
+<dt><code>--enable-egl</code></dt>
+<dd>
<p>By default, EGL is enabled. When disabled, the main library and the drivers
will not be built.</p>
-</li>
+</dd>
-<li><code>--with-egl-driver-dir</code>
+<dt><code>--with-egl-driver-dir</code></dt>
+<dd>
<p>The directory EGL drivers should be installed to. If not specified, EGL
drivers will be installed to <code>${libdir}/egl</code>.</p>
-</li>
+</dd>
-<li><code>--enable-gallium-egl</code>
+<dt><code>--enable-gallium-egl</code></dt>
+<dd>
<p>Enable the optional <code>egl_gallium</code> driver.</p>
-</li>
+</dd>
-<li><code>--with-egl-platforms</code>
+<dt><code>--with-egl-platforms</code></dt>
+<dd>
<p>List the platforms (window systems) to support. Its argument is a comma
seprated string such as <code>--with-egl-platforms=x11,drm</code>. It decides
@@ -95,30 +99,34 @@ types such as <code>EGLNativeDisplayType</code> or
only be built with SCons. Unless for special needs, the build system should
select the right platforms automatically.</p>
-</li>
+</dd>
-<li><code>--enable-gles1</code> and <code>--enable-gles2</code>
+<dt><code>--enable-gles1</code></dt>
+<dt><code>--enable-gles2</code></dt>
+<dd>
<p>These options enable OpenGL ES support in OpenGL. The result is one big
internal library that supports multiple APIs.</p>
-</li>
+</dd>
-<li><code>--enable-shared-glapi</code>
+<dt><code>--enable-shared-glapi</code></dt>
+<dd>
<p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>.
This options makes <code>libGL</code> use the shared <code>libglapi</code>. This
is required if applications mix OpenGL and OpenGL ES.</p>
-</li>
+</dd>
-<li><code>--enable-openvg</code>
+<dt><code>--enable-openvg</code></dt>
+<dd>
<p>OpenVG must be explicitly enabled by this option.</p>
-</li>
+</dd>
-</ul>
+</dl>
<h2>Use EGL</h2>
@@ -132,8 +140,9 @@ mesa/demos repository.</p>
<p>There are several environment variables that control the behavior of EGL at
runtime</p>
-<ul>
-<li><code>EGL_DRIVERS_PATH</code>
+<dl>
+<dt><code>EGL_DRIVERS_PATH</code></dt>
+<dd>
<p>By default, the main library will look for drivers in the directory where
the drivers are installed to. This variable specifies a list of
@@ -151,18 +160,20 @@ may set</p>
<p>to test a build without installation</p>
-</li>
+</dd>
-<li><code>EGL_DRIVER</code>
+<dt><code>EGL_DRIVER</code></dt>
+<dd>
<p>This variable specifies a full path to or the name of an EGL driver. It
forces the specified EGL driver to be loaded. It comes in handy when one wants
to test a specific driver. This variable is ignored for setuid/setgid
binaries.</p>
-</li>
+</dd>
-<li><code>EGL_PLATFORM</code>
+<dt><code>EGL_PLATFORM</code></dt>
+<dd>
<p>This variable specifies the native platform. The valid values are the same
as those for <code>--with-egl-platforms</code>. When the variable is not set,
@@ -174,28 +185,31 @@ create displays for non-native platforms. These extensions are usually used by
applications that support non-native platforms. Setting this variable is
probably required only for some of the demos found in mesa/demo repository.</p>
-</li>
+</dd>
-<li><code>EGL_LOG_LEVEL</code>
+<dt><code>EGL_LOG_LEVEL</code></dt>
+<dd>
<p>This changes the log level of the main library and the drivers. The valid
values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
<code>fatal</code>.</p>
-</li>
+</dd>
-<li><code>EGL_SOFTWARE</code>
+<dt><code>EGL_SOFTWARE</code></dt>
+<dd>
<p>For drivers that support both hardware and software rendering, setting this
variable to true forces the use of software rendering.</p>
-</li>
-</ul>
+</dd>
+</dl>
<h2>EGL Drivers</h2>
-<ul>
-<li><code>egl_dri2</code>
+<dl>
+<dt><code>egl_dri2</code></dt>
+<dd>
<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
It functions as a DRI driver loader. For <code>x11</code> support, it talks to
@@ -203,9 +217,10 @@ the X server directly using (XCB-)DRI2 protocol.</p>
<p>This driver can share DRI drivers with <code>libGL</code>.</p>
-</li>
+</dd>
-<li><code>egl_gallium</code>
+<dt><code>egl_gallium</code></dt>
+<dd>
<p>This driver is based on Gallium3D. It supports all rendering APIs and
hardwares supported by Gallium3D. It is the only driver that supports OpenVG.
@@ -215,16 +230,17 @@ The supported platforms are X11, DRM, FBDEV, and GDI.</p>
(<code>pipe_&lt;hw&gt;</code>) and client API modules
(<code>st_&lt;api&gt;</code>).</p>
-</li>
+</dd>
-<li><code>egl_glx</code>
+<dt><code>egl_glx</code></dt>
+<dd>
<p>This driver provides a wrapper to GLX. It uses exclusively GLX to implement
the EGL API. It supports both direct and indirect rendering when the GLX does.
It is accelerated when the GLX is. As such, it cannot provide functions that
is not available in GLX or GLX extensions.</p>
-</li>
-</ul>
+</dd>
+</dl>
<h2>Packaging</h2>
diff --git a/mesalib/docs/faq.html b/mesalib/docs/faq.html
index 97b6491a7..dd4e7de0d 100644
--- a/mesalib/docs/faq.html
+++ b/mesalib/docs/faq.html
@@ -16,7 +16,7 @@
<center>
<h1>Mesa Frequently Asked Questions</h1>
-Last updated: 19 September 2012
+Last updated: 20 September 2012
</center>
<br>
@@ -52,14 +52,18 @@ Mesa 9.x supports the OpenGL 3.1 specification.
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
<p>
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
-drivers for XFree86/X.org. See the <a href="http://dri.freedesktop.org/">DRI
-website</a> for more information.
-</p>
-<p>
-There have been other hardware drivers for Mesa over the years (such as
-the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers
-are the modern ones.
+drivers for X.org.
</p>
+<ul>
+ <li>See the <a href="http://dri.freedesktop.org/">DRI website</a>
+ for more information.</li>
+ <li>See <a href="http://intellinuxgraphics.org">intellinuxgraphics.org</a>
+ for more information about Intel drivers.</li>
+ <li>See <a href="http://nouveau.freedesktop.org">nouveau.freedesktop.org</a>
+ for more information about Nouveau drivers.</li>
+ <li>See <a href="http://www.x.org/wiki/RadeonFeature">www.x.org/wiki/RadeonFeature</a>
+ for more information about Radeon drivers.</li>
+</ul>
<h2>1.3 What purpose does Mesa serve today?</h2>
<p>
@@ -68,7 +72,7 @@ operating systems today.
Still, Mesa serves at least these purposes:
</p>
<ul>
-<li>Mesa is used as the core of the open-source XFree86/X.org DRI
+<li>Mesa is used as the core of the open-source X.org DRI
hardware drivers.
</li>
<li>Mesa is quite portable and allows OpenGL to be used on systems
@@ -140,7 +144,7 @@ Mesa is much more up to date with modern features and extensions.
</p>
<p>
-<a href="http://ogl-es.sourceforge.net">Vincent</a> is
+<a href="http://sourceforge.net/projects/ogl-es/">Vincent</a> is
an open-source implementation of OpenGL ES for mobile devices.
<p>
@@ -148,12 +152,12 @@ an open-source implementation of OpenGL ES for mobile devices.
is a subset of OpenGL for PalmOS devices.
<p>
-<a href="http://fabrice.bellard.free.fr/TinyGL/">TinyGL</a>
+<a href="http://bellard.org/TinyGL/">TinyGL</a>
is a subset of OpenGL.
</p>
<p>
-<a href="http://softgl.studierstube.org/">SoftGL</a>
+<a href="http://sourceforge.net/projects/softgl/">SoftGL</a>
is an OpenGL subset for mobile devices.
</p>
@@ -232,7 +236,7 @@ Basically you'll want the following:
Mesa version number.
</li></ul>
<p>
-After installing XFree86/X.org and the DRI drivers, some of these files
+After installing X.org and the DRI drivers, some of these files
may be symlinks into the /usr/X11R6/ tree.
</p>
<p>
@@ -267,7 +271,7 @@ hardware it has detected.
</p>
<p>
If your DRI-based driver isn't working, go to the
-<a href="http://dri.sf.net/">DRI website</a> for trouble-shooting information.
+<a href="http://dri.freedesktop.org/">DRI website</a> for trouble-shooting information.
</p>
diff --git a/mesalib/docs/games.html b/mesalib/docs/games.html
deleted file mode 100644
index 0cdbec1df..000000000
--- a/mesalib/docs/games.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Games</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Games</h1>
-
-<ul>
- <li><a href="http://www.psc.edu/%7Esmp/a3d/">Asteroids3D</a> - 3D asteroids game
- </li><li><a href="http://evlweb.eecs.uic.edu/aej/AndyBattalion.html">Battalion</a>
- - battle game
- </li><li><a href="http://bzflag.sourceforge.net/">BZFLAG</a> - 3-D tank
- battle game
- </li><li><a href="http://www.speakeasy.org/%7Emorse/copter-commander">Copter Commander</a> - 2d multiplayer side scroller
- </li><li><a href="http://www.crystalspace.org/">CrystalSpace</a> - Free
- 3d game engine
- </li><li><a href="http://www.afn.org/%7Ecthugha/">Cthugha</a> - music-sync'ed
- graphical effects
- </li><li><a href="http://www.sics.se/dive/">DIVE</a> - Distributed Interactive
- Virtual Environment
- </li><li><a href="http://www.newdoom.com/doomlegacy/">Doom Legacy</a>
- - an OpenGL port of id software's popular game, Doom
- </li><li><a href="http://www.asimov.de/intern_dropit.html">DropIt</a> - 3-D tetris game
- </li><li><a href="http://www.flightgear.org/">Flight Gear</a> - Flight
- simulator
- </li><li><a href="http://freetrek.linuxgames.com/">Free Trek</a> - Star
- Trek battle simulator
- </li><li><a href="http://glchess.sourceforge.net/">GLChess</a> - chess game
- </li><li><a href="http://heretic.linuxgames.com/">GLHeretic</a> - Heretic
- for Linux
- </li><li><a href="http://glider3d.free.fr/">Glider3D</a> - flight simulator
- </li><li><a href="http://www.gltron.org/">glTron</a> - Tron lightcycles
- game
- </li><li><a href="http://gracer.sourceforge.net/">GRacer</a> - 3D Motor
- Sports Simulator
- </li><li><a href="http://jongl.home.pages.de/">JONGL</a> - Juggling simulator
- </li><li><a href="http://samba.anu.edu.au/KnightCap/">KnightCap</a> -
- chess game
- </li><li><a href="http://www.hackcraft.de/games/linwarrior_3d/">LinWarrior 3D</a> - A Battle Mech Simulator
- </li><li><a href="http://www.nada.kth.se/%7Ef96-lfo/lunar/">Lunar Lander
- 2000</a> - 3D version of the classis lunar lander game
- </li><li><a href="http://www.majik3d.org/">Majik 3D</a> - an online role-playing
- world
- </li><li><a href="http://www.pobox.com/%7Eshankel/opentrek.html">OpenTrek</a>
- - Super Star Trek
- </li><li><a href="http://www.idsoftware.com/">Quake(2,3)</a> - the popular
- games from id software
- </li><li><a href="http://torcs.free.fr/indexm.html">TORCS</a> - car racing
- simulator
- </li><li><a href="http://www.woodsoup.org/projs/tux_aqfh">TUX-AQFH</a>
- - Tux the Penguin - a Quest for Herring
- </li><li><a href="http://mordred.8m.com/voidrunner/">Void Runner</a>
- - freeware arcade style game
- </li><li><a href="http://xracer.annexia.org/">XRacer</a> - Free spaceship
- racing game, similar to Wipeout
- </li>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/mesalib/docs/gears.png b/mesalib/docs/gears.png
index 4052b30ed..34393892c 100644
--- a/mesalib/docs/gears.png
+++ b/mesalib/docs/gears.png
Binary files differ
diff --git a/mesalib/docs/libraries.html b/mesalib/docs/libraries.html
deleted file mode 100644
index 779cf69fc..000000000
--- a/mesalib/docs/libraries.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Libraries and Toolkits</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Libraries and Toolkits</h1>
-
-<ul>
-<li><a href="http://mrpowers.com/Apprentice/">Apprentice</a> - free OpenInventor work-alike
-<li><a href="http://www.coin3d.org/coin.html">Coin</a> - OSS Open Inventor clone
-<li><a href="http://www.softintegration.com/products/toolkit/opengl/">Ch</a> - OpenGL bindings for the Ch C/C++ interpreter
-<li><a href="http://www.cfdrc.com/FOX/fox.html">FOX</a> - GUI Library
-<li><a href="http://www.jausoft.com/gl4java.html">GL4Java</a> - a Java wrapper for OpenGL
-<li><a href="http://www.student.oulu.fi/%7Ejlof/gtkglarea/">GtkGLArea</a> - OpenGL Gtk widget
-<li><a href="http://www.ece.ucdavis.edu/%7Ekenelson/gtk-glarea/">GtkGLArea--</a> - OpenGL Gtk-- widget for C++
-<li><a href="http://gtkpas.sourceforge.net/">GTKpas</a> - OpenGL Gtk widget for <a href="http://www.freepascal.org/">FreePascal</a>
-<li><a href="http://freeglut.sourceforge.net/">FreeGLUT</a> - a GLUT work-alike
-<li><a href="http://math.nist.gov/f90gl">Fortran77/90 bindings for OpenGL and Mesa</a> - by William Mitchell
-<li><a href="http://glow.sourceforge.net/">GLOW</a> - a GUI toolkit for GLUT and OpenGL
-<li><a href="http://www.nigels.com/glt/">Glt</a> - an OpenGL C++ toolkit
-<li><a href="http://www.opengl.org/resources/libraries/glut.html">GLUT (GL Utility Toolkit)</a> - by Mark Kilgard
-<li><a href="http://atrey.karlin.mff.cuni.cz/%7E0rfelyus/guileGL/">GuileGL</a> - OpenGL and GtkGLArea language bindings for Guile
-<li><a href="http://www.rsinc.com/">IDL</a> - Interactive Data Language
-<li><a href="http://www.newplanetsoftware.com/jx/">JX</a> - C++ application framework and GUI library
-<li><a href="http://www.vrs3d.org/">MAM/VRS</a> - object-oriented toolkit for 3D graphics
-<li><a href="http://www.jwdt.com/%7Epaysan/bigforth.html">MINOS</a> - GUI library
-<li><a href="http://sourceforge.net/project/?group_id=2795">OglCLib</a> - C++ wrapper for OpenGL
-<li><a href="http://oss.sgi.com/projects/inventor"> Open Inventor</a> - the Open Inventor toolkit from SGI
-<li><a href="http://www.tgs.com/">Open Inventor</a> - the Open Inventor toolkit from Template Graphics Software, Inc.
-<li><a href="http://openrm.sourceforge.net/">OpenRM</a>
-- Open Source, multithreaded, parallel scene graph API
-<li><a href="http://www.opensg.org/OpenSGPLUS/index.EN.html">
-Open SG PLUS</a> - a scene-graph library
-<li><a href="http://www.openscenegraph.org/">Open Scene Graph
-</a> - a scene-graph library
-<li><a href="http://www.openvrml.org/">OpenVRML</a>
-- a VRML parsing/display library with "lookat" - an example VRML browser
-<li><a href="http://plib.sourceforge.net/">PLIB</a> - A collection of portable games libraries, including an OpenGL GUI and a simple Scene Graph API
-<li><a href="ftp://ftp.troll.no/contest/Pryan-1.2.tar.gz">Pryan</a> - an OpenInventor-like toolkit
-<li><a href="http://starship.python.net:9673/crew/da/Code/PyOpenGL">PyOpenGL</a> - OpenGL interface for Python
-<li><a href="http://www.quesa.org/">Quesa</a> - QuickDraw3D-compatible library based on OpenGL, Mesa or Direct3D
-<li><a href="http://www.mesa3d.org/brianp/repgl.txt">repGL</a> - IRIS GL emulated with OpenGL
-<li><a href="http://www.scitechsoft.com/dp_mgl.html">SciTech MGL</a> - A multiplatform (Windows, Linux, OS/2, DOS, QNX, SMX, RT-Target &amp; more) graphics library
-<li><a href="http://sgl.sourceforge.net/">SGL</a> - a 3D Scene Graph Library
-<li><a href="http://www.lal.in2p3.fr/SI/SoFree/">SoFree</a> - a free implementation of Open Inventor
-<li><a href="http://togl.sourceforge.net/">Togl</a> - Tcl/Tk widget for OpenGL
-<li><a href="http://www.int.com/">View3D Widget</a> - 3-D GUI widget
-<li><a href="http://www.vtk.org/">VTK</a> - Visualization Toolkit
-<li><a href="http://home.earthlink.net/%7Erzeh/YAJOGLB/doc/YAJOGLB.html">YAJOGL</a> - Yet Another Java GL Binding.
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/mesalib/docs/lists.html b/mesalib/docs/lists.html
index 1c35037e7..0ac07faf4 100644
--- a/mesalib/docs/lists.html
+++ b/mesalib/docs/lists.html
@@ -68,7 +68,12 @@ kernels, see the
</p>
-<br>
+<h1>IRC</h1>
+
+<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
+on <a href="http://webchat.freenode.net/">irc.freenode.net</a>
+</p>
+
<h1>OpenGL Forums</h1>
diff --git a/mesalib/docs/modelers.html b/mesalib/docs/modelers.html
deleted file mode 100644
index 924a7b570..000000000
--- a/mesalib/docs/modelers.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Modelers, Renderers and Viewers</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Modelers, Renderers and Viewers</h1>
-
-<ul>
- <li><a href="http://www.aqsis.org/">Aqsis</a> - a RenderMan compatible renderer</li>
- <li><a href="http://www.ac3d.org/">AC3D</a> - 3-D modeler
- </li><li><a href="http://www.mediascape.com/">Artstream</a> - provides
- functionality like Corel Draw and Illustrator
- </li><li><a href="http://www.blender.org/">Blender</a> - 3-D animation
- software
- </li><li><a href="http://www.arq.net/%7Ekasten/demtools/">Demtools</a>
- - Map viewer
- </li><li><a href="http://www.holometric.de/dimension/">DIMENSION</a>
- - freeform surface reconstruction
- </li><li><a href="http://www.vectaport.com/vhclmaps/demviewer.html">demviewer</a>
- - interactive terrain viewer
- </li><li><a href="http://www.crc.ca/FreeWRL">FreeWRL</a> - VRML browser
- </li><li><a href="http://www.geomview.org/">Geomview</a> - 3-D geometry
- exploration
- </li><li><a href="http://innovation3d.sourceforge.net/">Innovation3D</a>
- - 3D modeling program
- </li><li><a href="http://www.openvrml.org/">LibVRML97/Lookat</a>
- - VRML viewer
- </li><li><a href="http://aig.cs.man.ac.uk/systems/Maverik/">Maverik</a>
- - VR graphics and interaction system
- </li><li><a href="http://www.swissquake.ch/chumbalum-soft/md2v">MD2 Viewer</a>
- - View .MD2 files
- </li><li><a href="http://www.megacads.dlr.de/">MegaCads</a>
- - Multiblock-Elliptic-Grid-Generation-And-CAD-System
- </li><li><a href="http://www.swissquake.ch/chumbalum-soft/">MilkShape
- 3D</a> - 3D modeler/animator
- </li><li><a href="http://mindseye.sourceforge.net/">Mindseye</a> - Rendering/Modeling
- Package
- </li><li><a href="http://www.neuralvr.com/">Pansophica</a> - Virtual Reality web organizer
- </li><li><a href="http://www.sim.no/reducer.html">Rational Reducer</a>
- - polygon reduction tool
- </li><li><a href="http://www.cs.kuleuven.ac.be/cwis/research/graphics/RENDERPARK/">RenderPark</a>
- - photorealistic rendering
- </li><li><a href="http://www.hardgeus.com/revolution">Revolution 3D Engine</a>
- - .3ds rendering engine
- </li><li><a href="http://www.dgp.toronto.edu/%7Emjmcguff/eversion/">sphereEversion</a>
- - inside-out sphere visualization
- </li><li><a href="http://www.cs.kuleuven.ac.be/cwis/research/graphics/3DOM/">3Dom</a>
- - 3-D modeler
- </li><li><a href="http://www.microform.se/">VARKON</a> - product engineering,
- design, modeling
- </li><li><a href="http://www.sim.no/vrmlview.html">VRMLview</a> - VRML
- model viewer
- </li><li><a href="http://www.iicm.edu/vrwave/">VRWave</a> - a VRML 2.0
- browser
- </li><li><a href="http://www.csv.ica.uni-stuttgart.de/vrml/dune/">white_dune</a>
- - graphical VRML97 Editor and animation tool
-</li></ul>
-
-</div>
-</body>
-</html>
diff --git a/mesalib/docs/osmesa.html b/mesalib/docs/osmesa.html
index 0ec67c44b..b0609cf88 100644
--- a/mesalib/docs/osmesa.html
+++ b/mesalib/docs/osmesa.html
@@ -34,8 +34,7 @@ more information about the API functions.
</p>
<p>
-There are several examples of OSMesa in the <code>progs/osdemos/</code>
-directory.
+There are several examples of OSMesa in the mesa/demos repository.
</p>
diff --git a/mesalib/docs/science.html b/mesalib/docs/science.html
deleted file mode 100644
index 74a24457e..000000000
--- a/mesalib/docs/science.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Science and Technical</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Science and Technical</h1>
-
-<ul>
- <li><a href="http://www.softintegration.com/products/toolkit/opengl/">Ch</a> - OpenGL bindings for the Ch C/C++ interpreter
- </li><li><a href="http://www.bioz.unibas.ch/%7Exray/dino/">DINO</a> - Visualizing
- Structural Biology
- </li><li><a href="http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html">General
- Mesh Viewer (GMV)</a> - scientific vis.
- </li><li><a href="http://gid.cimne.upc.es/">GiD</a> - finite element
- analysis
- </li><li><a href="http://sig.co.za/download.htm">glpoisson</a> - A finite
- element analysis program that simulates wave in an arbitrary region.
- </li><li><a href="http://glwaves.sourceforge.net/">GLWaves</a> -
- Electromagnetic wave visualization
- </li><li><a href="http://www.geuz.org/gmsh/">Gmsh</a> -
- finite element mesh generator / viewer
- </li><li><a href="http://laaksonen.csc.fi/gopenmol/gopenmol.htmls">gOpenMol</a>
- - computational chemistry
- </li><li><a href="http://www.mgix.com/gps3d/">GPS 3D</a> - GPS-based map visualization
- </li><li><a href="http://hirame.hiram.edu/%7Eworleyam/">Hitchhiker</a>
- - virtual solar system
- </li><li><a href="http://www-xdiv.lanl.gov/XCM/Hydra/">Hydra</a> - physics
- and engineering pkg
- </li><li><a href="http://fox.mit.edu/skunk/soft/lightspeed/">Light Speed</a>
- - a real-time, interactive relativistic simulator
- </li><li><a href="http://linkwinds.jpl.nasa.gov/">LinkWinds</a> - scientific
- vis
- </li><li><a href="http://phong.informatik.uni-leipzig.de/~kuska/mathgl3dv3/index.htm">MathGL3d</a> - Mathematica viewer
- </li><li><a href="http://www.mathworks.com/products/matlab">Mathworks</a>
- - mathematics and visualization
- </li><li><a href="http://www-rocq.inria.fr/gamma/medit/medit.html">Medit</a> - 3D surface mesh viewer
- </li><li><a href="http://www.mol.biol.ethz.ch/wuthrich/software/molmol/">MOLMOL</a>
- - molecular modeling and analysis
- </li><li><a href="http://www.avatar.se/molscript/">Molscript</a> - molecular
- modeling
- </li>
- <li><a href="http://www.opendx.org/">OpenDX</a> - Data visualization
- system
- </li>
- <li><a href="http://orsa.sourceforge.net/">ORSA</a> - An interactive tool for Celestial Mechanics
- </li>
- <li><a href="http://www.paraview.org/">ParaView</a> - Scientific visualization package
- </li><li><a href="http://root.cern.ch/">ROOT</a> - Object Oriented Data
- Analysis Framework
- </li><li><a href="http://www.slffea.com/">SLFFEA</a> - GNU finite element
- package
- </li><li><a href="http://quorum.tamu.edu/jon/spock">Spock</a> - molecular
- modeling
- </li><li><a href="http://www1.las.es/%7Eamil/ssystem">Ssystem</a> - solar
- system simulation
- </li><li><a href="http://www.ssec.wisc.edu/%7Ebillh/vis5d.html">Vis5D</a>
- - atmospheric visualization
- </li><li><a href="http://www.ks.uiuc.edu/Research/vmd/">VMD</a> - molecular
- modeling
- </li><li><a href="http://www.cyberbotics.com/">Webots</a> - 3-D mobile
- robot simulator
- </li>
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/mesalib/docs/utility.html b/mesalib/docs/utility.html
deleted file mode 100644
index 14216d4d6..000000000
--- a/mesalib/docs/utility.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>Utilities</title>
- <link rel="stylesheet" type="text/css" href="mesa.css">
-</head>
-<body>
-
-<div class="header">
- <h1>The Mesa 3D Graphics Library</h1>
-</div>
-
-<iframe src="contents.html"></iframe>
-<div class="content">
-
-<h1>Utilities</h1>
-
-<ul>
-<li><a href="http://fsv.sourceforge.net/">fsv</a> - 3D file system visualizer
-
-<li><a href="http://www.dgp.utoronto.ca/%7Emac/projects/glbiff.html">glbiff</a>
-- GL version of xbiff
-
-<li><a href="http://glload.netpedia.net/">glload</a>
-- CPU load meter
-
-<li><a href="http://www.scitechsoft.com/gldirect.html">SciTech GLDirect</a>
-- Driver to run OpenGL apps using Direct3D under Windows
-
-<li><a href="http://threedsia.sourceforge.net/">3Dsia</a> - 3D user interface
-
-<li><a href="http://www.vros.com/">VR/OS</a> - VR user interface
-
-<li><a href="http://wauug.erols.com/%7Ebagleyd/">xlockmore</a> - an X screen saver
-
-<li><a href="http://www.jwz.org/xscreensaver">xscreensaver</a> - X screen saver
-
-</ul>
-
-</div>
-</body>
-</html>
diff --git a/mesalib/docs/xlibdriver.html b/mesalib/docs/xlibdriver.html
index da72662c1..6b7b02903 100644
--- a/mesalib/docs/xlibdriver.html
+++ b/mesalib/docs/xlibdriver.html
@@ -150,10 +150,10 @@ Examples:
% export MESA_GAMMA="2.0" // same gamma for R,G,B
</pre>
<p>
-The progs/demos/gamma.c program may help you to determine reasonable gamma
-value for your display. With correct gamma values, the color intensities
-displayed in the top row (drawn by dithering) should nearly match those
-in the bottom row (drawn as grays).
+The <code>demos/gamma.c</code> program in mesa/demos repository may help
+you to determine reasonable gamma value for your display. With correct
+gamma values, the color intensities displayed in the top row (drawn by
+dithering) should nearly match those in the bottom row (drawn as grays).
</p>
<p>
diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c
index 3b13ad7f1..28a79b0a0 100644
--- a/mesalib/src/mesa/drivers/common/meta.c
+++ b/mesalib/src/mesa/drivers/common/meta.c
@@ -269,6 +269,16 @@ struct bitmap_state
struct temp_texture Tex; /**< separate texture from other meta ops */
};
+/**
+ * State for GLSL texture sampler which is used to generate fragment
+ * shader in _mesa_meta_generate_mipmap().
+ */
+struct glsl_sampler {
+ const char *type;
+ const char *func;
+ const char *texcoords;
+ GLuint shader_prog;
+};
/**
* State for _mesa_meta_generate_mipmap()
@@ -281,16 +291,12 @@ struct gen_mipmap_state
GLuint Sampler;
GLuint ShaderProg;
GLuint IntegerShaderProg;
-};
-
-/**
- * State for GLSL texture sampler which is used to generate fragment
- * shader in _mesa_meta_generate_mipmap().
- */
-struct glsl_sampler {
- const char *type;
- const char *func;
- const char *texcoords;
+ struct glsl_sampler sampler_1d;
+ struct glsl_sampler sampler_2d;
+ struct glsl_sampler sampler_3d;
+ struct glsl_sampler sampler_cubemap;
+ struct glsl_sampler sampler_1d_array;
+ struct glsl_sampler sampler_2d_array;
};
/**
@@ -2977,46 +2983,47 @@ setup_ff_generate_mipmap(struct gl_context *ctx,
}
-static void
-setup_texture_sampler(GLenum target, struct glsl_sampler *sampler)
+static struct glsl_sampler *
+setup_texture_sampler(GLenum target, struct gen_mipmap_state *mipmap)
{
switch(target) {
case GL_TEXTURE_1D:
- sampler->type = "sampler1D";
- sampler->func = "texture1D";
- sampler->texcoords = "texCoords.x";
- break;
+ mipmap->sampler_1d.type = "sampler1D";
+ mipmap->sampler_1d.func = "texture1D";
+ mipmap->sampler_1d.texcoords = "texCoords.x";
+ return &mipmap->sampler_1d;
case GL_TEXTURE_2D:
- sampler->type = "sampler2D";
- sampler->func = "texture2D";
- sampler->texcoords = "texCoords.xy";
- break;
+ mipmap->sampler_2d.type = "sampler2D";
+ mipmap->sampler_2d.func = "texture2D";
+ mipmap->sampler_2d.texcoords = "texCoords.xy";
+ return &mipmap->sampler_2d;
case GL_TEXTURE_3D:
/* Code for mipmap generation with 3D textures is not used yet.
* It's a sw fallback.
*/
- sampler->type = "sampler3D";
- sampler->func = "texture3D";
- sampler->texcoords = "texCoords";
- break;
+ mipmap->sampler_3d.type = "sampler3D";
+ mipmap->sampler_3d.func = "texture3D";
+ mipmap->sampler_3d.texcoords = "texCoords";
+ return &mipmap->sampler_3d;
case GL_TEXTURE_CUBE_MAP:
- sampler->type = "samplerCube";
- sampler->func = "textureCube";
- sampler->texcoords = "texCoords";
- break;
+ mipmap->sampler_cubemap.type = "samplerCube";
+ mipmap->sampler_cubemap.func = "textureCube";
+ mipmap->sampler_cubemap.texcoords = "texCoords";
+ return &mipmap->sampler_cubemap;
case GL_TEXTURE_1D_ARRAY:
- sampler->type = "sampler1DArray";
- sampler->func = "texture1DArray";
- sampler->texcoords = "texCoords.xy";
- break;
+ mipmap->sampler_1d_array.type = "sampler1DArray";
+ mipmap->sampler_1d_array.func = "texture1DArray";
+ mipmap->sampler_1d_array.texcoords = "texCoords.xy";
+ return &mipmap->sampler_1d_array;
case GL_TEXTURE_2D_ARRAY:
- sampler->type = "sampler2DArray";
- sampler->func = "texture2DArray";
- sampler->texcoords = "texCoords";
- break;
+ mipmap->sampler_2d_array.type = "sampler2DArray";
+ mipmap->sampler_2d_array.func = "texture2DArray";
+ mipmap->sampler_2d_array.texcoords = "texCoords";
+ return &mipmap->sampler_2d_array;
default:
_mesa_problem(NULL, "Unexpected texture target 0x%x in"
" setup_texture_sampler()\n", target);
+ return NULL;
}
}
@@ -3029,7 +3036,7 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
struct vertex {
GLfloat x, y, tex[3];
};
- struct glsl_sampler sampler;
+ struct glsl_sampler *sampler;
const char *vs_source;
const char *fs_template;
@@ -3099,24 +3106,31 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
}
/* Check if already initialized */
- if (mipmap->ArrayObj != 0)
- return;
- /* create vertex array object */
- _mesa_GenVertexArrays(1, &mipmap->ArrayObj);
- _mesa_BindVertexArray(mipmap->ArrayObj);
+ if (mipmap->ArrayObj == 0) {
- /* create vertex array buffer */
- _mesa_GenBuffersARB(1, &mipmap->VBO);
- _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, mipmap->VBO);
+ /* create vertex array object */
+ _mesa_GenVertexArrays(1, &mipmap->ArrayObj);
+ _mesa_BindVertexArray(mipmap->ArrayObj);
- /* setup vertex arrays */
- _mesa_VertexAttribPointerARB(0, 2, GL_FLOAT, GL_FALSE,
- sizeof(struct vertex), OFFSET(x));
- _mesa_VertexAttribPointerARB(1, 3, GL_FLOAT, GL_FALSE,
- sizeof(struct vertex), OFFSET(tex));
+ /* create vertex array buffer */
+ _mesa_GenBuffersARB(1, &mipmap->VBO);
+ _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, mipmap->VBO);
+
+ /* setup vertex arrays */
+ _mesa_VertexAttribPointerARB(0, 2, GL_FLOAT, GL_FALSE,
+ sizeof(struct vertex), OFFSET(x));
+ _mesa_VertexAttribPointerARB(1, 3, GL_FLOAT, GL_FALSE,
+ sizeof(struct vertex), OFFSET(tex));
+ }
/* Generate a fragment shader program appropriate for the texture target */
- setup_texture_sampler(target, &sampler);
+ sampler = setup_texture_sampler(target, mipmap);
+ assert(sampler != NULL);
+ if (sampler->shader_prog != 0) {
+ mipmap->ShaderProg = sampler->shader_prog;
+ return;
+ }
+
mem_ctx = ralloc_context(NULL);
if (ctx->Const.GLSLVersion < 130) {
@@ -3125,13 +3139,13 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
"require" : "disable";
fs_source = ralloc_asprintf(mem_ctx, fs_template,
- extension_mode, sampler.type,
- sampler.func, sampler.texcoords);
+ extension_mode, sampler->type,
+ sampler->func, sampler->texcoords);
}
else {
fs_source = ralloc_asprintf(mem_ctx, fs_template,
- sampler.type, "vec4",
- sampler.texcoords);
+ sampler->type, "vec4",
+ sampler->texcoords);
}
vs = compile_shader_with_debug(ctx, GL_VERTEX_SHADER, vs_source);
@@ -3147,6 +3161,7 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
_mesa_EnableVertexAttribArrayARB(0);
_mesa_EnableVertexAttribArrayARB(1);
link_program_with_debug(ctx, mipmap->ShaderProg);
+ sampler->shader_prog = mipmap->ShaderProg;
ralloc_free(mem_ctx);
if ((_mesa_is_desktop_gl(ctx) && ctx->Const.GLSLVersion >= 130) ||
@@ -3181,8 +3196,20 @@ meta_glsl_generate_mipmap_cleanup(struct gl_context *ctx,
mipmap->ArrayObj = 0;
_mesa_DeleteBuffersARB(1, &mipmap->VBO);
mipmap->VBO = 0;
- _mesa_DeleteObjectARB(mipmap->ShaderProg);
- mipmap->ShaderProg = 0;
+
+ _mesa_DeleteObjectARB(mipmap->sampler_1d.shader_prog);
+ _mesa_DeleteObjectARB(mipmap->sampler_2d.shader_prog);
+ _mesa_DeleteObjectARB(mipmap->sampler_3d.shader_prog);
+ _mesa_DeleteObjectARB(mipmap->sampler_cubemap.shader_prog);
+ _mesa_DeleteObjectARB(mipmap->sampler_1d_array.shader_prog);
+ _mesa_DeleteObjectARB(mipmap->sampler_2d_array.shader_prog);
+
+ mipmap->sampler_1d.shader_prog = 0;
+ mipmap->sampler_2d.shader_prog = 0;
+ mipmap->sampler_3d.shader_prog = 0;
+ mipmap->sampler_cubemap.shader_prog = 0;
+ mipmap->sampler_1d_array.shader_prog = 0;
+ mipmap->sampler_2d_array.shader_prog = 0;
if (mipmap->IntegerShaderProg) {
_mesa_DeleteObjectARB(mipmap->IntegerShaderProg);
diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c
index 1736899cb..9cde52ae6 100644
--- a/mesalib/src/mesa/main/fbobject.c
+++ b/mesalib/src/mesa/main/fbobject.c
@@ -2792,7 +2792,8 @@ compatible_resolve_formats(const struct gl_renderbuffer *colorReadRb,
{
/* The simple case where we know the backing formats are the same.
*/
- if (colorReadRb->Format == colorDrawRb->Format) {
+ if (_mesa_get_srgb_format_linear(colorReadRb->Format) ==
+ _mesa_get_srgb_format_linear(colorDrawRb->Format)) {
return GL_TRUE;
}
diff --git a/mesalib/src/mesa/main/ff_fragment_shader.cpp b/mesalib/src/mesa/main/ff_fragment_shader.cpp
index e850d47dd..f21cf80ae 100644
--- a/mesalib/src/mesa/main/ff_fragment_shader.cpp
+++ b/mesalib/src/mesa/main/ff_fragment_shader.cpp
@@ -890,10 +890,10 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
}
else {
float const_data[4] = {
- 1 << rgb_shift,
- 1 << rgb_shift,
- 1 << rgb_shift,
- 1 << alpha_shift
+ float(1 << rgb_shift),
+ float(1 << rgb_shift),
+ float(1 << rgb_shift),
+ float(1 << alpha_shift)
};
shift = new(p->mem_ctx) ir_constant(glsl_type::vec4_type,
(ir_constant_data *)const_data);
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index 83e79a5a3..08af66893 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -2746,7 +2746,7 @@ _mesa_choose_texture_format(struct gl_context *ctx,
/* If the application requested compression to an S3TC format but we don't
* have the DTXn library, force a generic compressed format instead.
*/
- if (internalFormat != format) {
+ if (internalFormat != format && format != GL_NONE) {
const GLenum before = internalFormat;
switch (internalFormat) {
diff --git a/mesalib/src/mesa/main/texparam.c b/mesalib/src/mesa/main/texparam.c
index 63a63b732..f73e2b5f0 100644
--- a/mesalib/src/mesa/main/texparam.c
+++ b/mesalib/src/mesa/main/texparam.c
@@ -1440,6 +1440,12 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
*params = (GLfloat) obj->Immutable;
break;
+ case GL_TEXTURE_SRGB_DECODE_EXT:
+ if (!ctx->Extensions.EXT_texture_sRGB_decode)
+ goto invalid_pname;
+ *params = (GLfloat) obj->Sampler.sRGBDecode;
+ break;
+
default:
goto invalid_pname;
}
@@ -1612,6 +1618,12 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
*params = obj->RequiredTextureImageUnits;
break;
+ case GL_TEXTURE_SRGB_DECODE_EXT:
+ if (!ctx->Extensions.EXT_texture_sRGB_decode)
+ goto invalid_pname;
+ *params = obj->Sampler.sRGBDecode;
+ break;
+
default:
goto invalid_pname;
}