[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'upstream-experimental'



 Makefile                                                  |    2 
 bin/mklib                                                 |   19 
 configure.ac                                              |    5 
 docs/devinfo.html                                         |   40 
 docs/install.html                                         |   52 
 docs/news.html                                            |   15 
 docs/relnotes-7.4.3.html                                  |   79 
 docs/relnotes-7.4.4.html                                  |   68 
 docs/relnotes-7.5.html                                    |    4 
 docs/relnotes.html                                        |    9 
 include/GL/glew.h                                         |    6 
 progs/demos/Makefile                                      |    7 
 progs/demos/fbotexture.c                                  |  108 -
 progs/demos/fslight.c                                     |    8 
 progs/fp/SConscript                                       |   19 
 progs/fp/fp-tri.c                                         |    2 
 progs/fp/point-position.c                                 |    7 
 progs/fp/tri-depth.c                                      |    9 
 progs/fp/tri-depth2.c                                     |    7 
 progs/fp/tri-depthwrite.c                                 |    6 
 progs/fp/tri-depthwrite2.c                                |    6 
 progs/fp/tri-inv.c                                        |    6 
 progs/fp/tri-param.c                                      |    8 
 progs/fp/tri-tex.c                                        |    6 
 progs/tests/.gitignore                                    |    2 
 progs/tests/Makefile                                      |    2 
 progs/tests/SConscript                                    |    2 
 progs/tests/scissor-viewport.c                            |  138 +
 progs/tests/scissor.c                                     |  168 +
 progs/tests/zreaddraw.c                                   |    4 
 progs/util/extfuncs.h                                     |  101 +
 progs/wgl/sharedtex_mt/sharedtex_mt.c                     |   30 
 progs/wgl/wglthreads/wglthreads.c                         |   64 
 progs/xdemos/glxcontexts.c                                |  160 -
 scons/crossmingw.py                                       |    2 
 scons/dxsdk.py                                            |   66 
 scons/gallium.py                                          |   62 
 scons/generic.py                                          |    8 
 src/gallium/auxiliary/draw/draw_pt_elts.c                 |    3 
 src/gallium/auxiliary/indices/u_indices.c                 |    2 
 src/gallium/auxiliary/pipebuffer/pb_buffer.h              |   14 
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c       |    6 
 src/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c       |    6 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr.h              |   20 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c          |    2 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c        |    8 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c        |   30 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_fenced.c       |    2 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c           |   26 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c     |    6 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c         |   20 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c         |   36 
 src/gallium/auxiliary/rtasm/rtasm_ppc.c                   |    6 
 src/gallium/auxiliary/tgsi/tgsi_dump.c                    |   18 
 src/gallium/auxiliary/util/u_gen_mipmap.c                 |    2 
 src/gallium/auxiliary/util/u_snprintf.c                   |    2 
 src/gallium/drivers/cell/ppu/cell_screen.c                |    2 
 src/gallium/drivers/softpipe/sp_context.c                 |   16 
 src/gallium/drivers/softpipe/sp_context.h                 |    2 
 src/gallium/drivers/softpipe/sp_draw_arrays.c             |    2 
 src/gallium/drivers/softpipe/sp_flush.c                   |    2 
 src/gallium/drivers/softpipe/sp_screen.c                  |    2 
 src/gallium/drivers/softpipe/sp_setup.c                   |    9 
 src/gallium/drivers/softpipe/sp_tex_sample.c              |    2 
 src/gallium/drivers/trace/tr_dump.c                       |    4 
 src/gallium/drivers/trace/tr_dump.h                       |    6 
 src/gallium/include/pipe/p_defines.h                      |    1 
 src/gallium/include/pipe/p_format.h                       |   28 
 src/gallium/include/pipe/p_refcnt.h                       |   28 
 src/gallium/include/pipe/p_thread.h                       |    1 
 src/gallium/state_trackers/dri/dri_drawable.c             |    2 
 src/gallium/state_trackers/glx/xlib/fakeglx.c             |    2 
 src/gallium/state_trackers/python/retrace/interpreter.py  |   46 
 src/gallium/state_trackers/python/tests/base.py           |    8 
 src/gallium/state_trackers/python/tests/texture_sample.py |  243 ++
 src/gallium/state_trackers/wgl/shared/stw_context.c       |   82 
 src/gallium/state_trackers/wgl/shared/stw_device.c        |   42 
 src/gallium/state_trackers/wgl/shared/stw_framebuffer.c   |  144 -
 src/gallium/state_trackers/wgl/shared/stw_framebuffer.h   |   13 
 src/gallium/state_trackers/wgl/shared/stw_tls.c           |   33 
 src/gallium/state_trackers/wgl/shared/stw_tls.h           |    6 
 src/glew/glew.c                                           |    4 
 src/glew/glewinfo.c                                       |    2 
 src/glx/x11/dri_common.c                                  |    4 
 src/glx/x11/glxcmds.c                                     |   14 
 src/glx/x11/glxcurrent.c                                  |    2 
 src/mesa/drivers/common/driverfuncs.c                     |    1 
 src/mesa/drivers/dri/common/dri_util.c                    |    6 
 src/mesa/drivers/dri/i915/i830_state.c                    |   21 
 src/mesa/drivers/dri/i915/i915_tex_layout.c               |    5 
 src/mesa/drivers/dri/i965/brw_context.h                   |    5 
 src/mesa/drivers/dri/i965/brw_sf_state.c                  |    7 
 src/mesa/drivers/dri/i965/brw_vs_constval.c               |   44 
 src/mesa/drivers/dri/i965/brw_wm.c                        |   14 
 src/mesa/drivers/dri/i965/brw_wm.h                        |    3 
 src/mesa/drivers/dri/i965/brw_wm_fp.c                     |   21 
 src/mesa/drivers/dri/i965/brw_wm_glsl.c                   |   32 
 src/mesa/drivers/dri/i965/brw_wm_pass2.c                  |   21 
 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c          |   10 
 src/mesa/drivers/dri/intel/intel_buffer_objects.c         |   55 
 src/mesa/drivers/dri/intel/intel_buffer_objects.h         |    3 
 src/mesa/drivers/dri/intel/intel_buffers.c                |    2 
 src/mesa/drivers/dri/intel/intel_clear.c                  |    8 
 src/mesa/drivers/dri/intel/intel_context.c                |   13 
 src/mesa/drivers/dri/intel/intel_context.h                |    6 
 src/mesa/drivers/dri/intel/intel_pixel_bitmap.c           |   10 
 src/mesa/drivers/dri/intel/intel_pixel_draw.c             |   22 
 src/mesa/drivers/dri/intel/intel_screen.c                 |   26 
 src/mesa/drivers/dri/intel/intel_tex_image.c              |   12 
 src/mesa/drivers/dri/r200/r200_context.c                  |    2 
 src/mesa/drivers/dri/r300/r300_context.c                  |    2 
 src/mesa/drivers/dri/radeon/radeon_context.c              |    2 
 src/mesa/drivers/x11/fakeglx.c                            |    2 
 src/mesa/main/api_noop.c                                  |   16 
 src/mesa/main/api_validate.c                              |    4 
 src/mesa/main/attrib.c                                    |   90 
 src/mesa/main/compiler.h                                  |    4 
 src/mesa/main/config.h                                    |    8 
 src/mesa/main/context.c                                   |   41 
 src/mesa/main/context.h                                   |    3 
 src/mesa/main/debug.c                                     |    2 
 src/mesa/main/dlist.c                                     |   40 
 src/mesa/main/enums.c                                     |   10 
 src/mesa/main/fbobject.c                                  |    5 
 src/mesa/main/image.c                                     |    2 
 src/mesa/main/macros.h                                    |   14 
 src/mesa/main/matrix.c                                    |   10 
 src/mesa/main/mipmap.c                                    |    3 
 src/mesa/main/mtypes.h                                    |    6 
 src/mesa/main/queryobj.c                                  |   16 
 src/mesa/main/queryobj.h                                  |    3 
 src/mesa/main/texenv.c                                    |    4 
 src/mesa/main/texenvprogram.c                             |    1 
 src/mesa/main/texformat_tmp.h                             |   28 
 src/mesa/main/texgetimage.c                               |    6 
 src/mesa/main/teximage.c                                  |    2 
 src/mesa/main/texobj.c                                    |   65 
 src/mesa/main/texobj.h                                    |    3 
 src/mesa/main/texstate.c                                  |    9 
 src/mesa/main/texstore.c                                  |   39 
 src/mesa/main/varray.c                                    |   29 
 src/mesa/main/version.h                                   |    2 
 src/mesa/main/viewport.c                                  |    4 
 src/mesa/shader/arbprogparse.c                            |    5 
 src/mesa/shader/shader_api.c                              |    1 
 src/mesa/shader/slang/slang_codegen.c                     | 1279 +++++++++++---
 src/mesa/shader/slang/slang_codegen.h                     |   17 
 src/mesa/shader/slang/slang_compile.c                     |    3 
 src/mesa/shader/slang/slang_compile_operation.c           |   68 
 src/mesa/shader/slang/slang_compile_operation.h           |   62 
 src/mesa/shader/slang/slang_compile_variable.h            |    1 
 src/mesa/shader/slang/slang_link.c                        |   21 
 src/mesa/shader/slang/slang_preprocess.c                  |   94 -
 src/mesa/shader/slang/slang_print.c                       |   10 
 src/mesa/state_tracker/st_atom_shader.c                   |   57 
 src/mesa/state_tracker/st_cb_accum.c                      |  244 +-
 src/mesa/state_tracker/st_cb_bufferobjects.c              |    5 
 src/mesa/state_tracker/st_cb_clear.c                      |   18 
 src/mesa/state_tracker/st_cb_drawpixels.c                 |   30 
 src/mesa/state_tracker/st_cb_fbo.c                        |  147 -
 src/mesa/state_tracker/st_cb_fbo.h                        |   13 
 src/mesa/state_tracker/st_cb_readpixels.c                 |   13 
 src/mesa/state_tracker/st_context.c                       |   15 
 src/mesa/state_tracker/st_extensions.c                    |    5 
 src/mesa/state_tracker/st_format.c                        |   14 
 src/mesa/state_tracker/st_format.h                        |    4 
 src/mesa/state_tracker/st_framebuffer.c                   |   28 
 src/mesa/state_tracker/st_gen_mipmap.c                    |    3 
 src/mesa/state_tracker/st_program.c                       |   43 
 src/mesa/swrast/s_context.c                               |    1 
 src/mesa/swrast/s_texfilter.c                             |    2 
 src/mesa/vbo/vbo_attrib_tmp.h                             |   16 
 src/mesa/vbo/vbo_context.h                                |    2 
 src/mesa/vbo/vbo_exec_api.c                               |   36 
 src/mesa/vbo/vbo_exec_array.c                             |    4 
 175 files changed, 3935 insertions(+), 1418 deletions(-)

New commits:
commit 418987ff05f892d3c33ed4ddbe856c496b05ea14
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:54:44 2009 -0600

    docs: detect when too many varying vars are used

diff --git a/docs/relnotes-7.5.html b/docs/relnotes-7.5.html
index d0dba30..0456921 100644
--- a/docs/relnotes-7.5.html
+++ b/docs/relnotes-7.5.html
@@ -69,6 +69,7 @@ including GL_ATI_separate_stencil, GL_EXT_stencil_two_side and OpenGL 2.0
 <li>Updated SPARC assembly optimizations (David S. Miller)
 <li>Initial support for separate compilation units in GLSL compiler.
 <li>Increased max number of generic GLSL varying variables to 16 (formerly 8).
+<li>GLSL linker now detects when too many varying variables are used.
 </ul>
 
 

commit 21320b24c5350943da9ed4cb0f1e8b05a09d4ef2
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:53:46 2009 -0600

    glsl: check number of varying variables against the limit
    
    Link fails if too many varying vars.
    
    (cherry picked from master, commit cc58fbcf2c5c88f406818db60910f537e03610d6)

diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c
index 8c9fe1e..387659f 100644
--- a/src/mesa/shader/slang/slang_link.c
+++ b/src/mesa/shader/slang/slang_link.c
@@ -97,7 +97,8 @@ bits_agree(GLbitfield flags1, GLbitfield flags2, GLbitfield bit)
  * which inputs are centroid-sampled, invariant, etc.
  */
 static GLboolean
-link_varying_vars(struct gl_shader_program *shProg, struct gl_program *prog)
+link_varying_vars(GLcontext *ctx,
+                  struct gl_shader_program *shProg, struct gl_program *prog)
 {
    GLuint *map, i, firstVarying, newFile;
    GLbitfield *inOutFlags;
@@ -156,8 +157,12 @@ link_varying_vars(struct gl_shader_program *shProg, struct gl_program *prog)
                                var->Flags);
       }
 
+      if (shProg->Varying->NumParameters > ctx->Const.MaxVarying) {
+         link_error(shProg, "Too many varying variables");
+         return GL_FALSE;
+      }
+
       /* Map varying[i] to varying[j].
-       * Plus, set prog->Input/OutputFlags[] as described above.
        * Note: the loop here takes care of arrays or large (sz>4) vars.
        */
       {
@@ -725,11 +730,11 @@ _slang_link(GLcontext *ctx,
 
    /* link varying vars */
    if (shProg->VertexProgram) {
-      if (!link_varying_vars(shProg, &shProg->VertexProgram->Base))
+      if (!link_varying_vars(ctx, shProg, &shProg->VertexProgram->Base))
          return;
    }
    if (shProg->FragmentProgram) {
-      if (!link_varying_vars(shProg, &shProg->FragmentProgram->Base))
+      if (!link_varying_vars(ctx, shProg, &shProg->FragmentProgram->Base))
          return;
    }
 

commit 4181a107cba1dfcb362084fc98be0c5e7e2aedde
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:47:57 2009 -0600

    docs: fix typos, remove old text from relnotes file

diff --git a/docs/relnotes.html b/docs/relnotes.html
index a52c4a7..4764eb6 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -9,20 +9,13 @@
 <H1>Release Notes</H1>
 
 <p>
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.5) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-</p>
-
-
-<p>
 The release notes summarize what's new or changed in each Mesa release.
 </p>
 
 <UL>
 <LI><A HREF="relnotes-7.5.html">7.5 release notes</A>
-<LI><A HREF="relnotes-7.4.4.html">7.4.2 release notes</A>
-<LI><A HREF="relnotes-7.4.3.html">7.4.2 release notes</A>
+<LI><A HREF="relnotes-7.4.4.html">7.4.4 release notes</A>
+<LI><A HREF="relnotes-7.4.3.html">7.4.3 release notes</A>
 <LI><A HREF="relnotes-7.4.2.html">7.4.2 release notes</A>
 <LI><A HREF="relnotes-7.4.1.html">7.4.1 release notes</A>
 <LI><A HREF="relnotes-7.4.html">7.4 release notes</A>

commit 2a41df86a3580f4d3e8379955492b886056c8b36
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:46:21 2009 -0600

    docs: bring over news updates from 7.4 branch

diff --git a/docs/news.html b/docs/news.html
index 8cf2f91..ee4a86c 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -11,6 +11,21 @@
 <H1>News</H1>
 
 
+<h2>June 23, 2009</h2>
+<p>
+<a href="relnotes-7.4.4.html">Mesa 7.4.4</a> is released.
+This is a stable release that fixes a regression in the i915/i965 drivers
+that slipped into the 7.4.3 release.
+</p>
+
+
+<h2>June 19, 2009</h2>
+<p>
+<a href="relnotes-7.4.3.html">Mesa 7.4.3</a> is released.
+This is a stable release fixing bugs since the 7.4.2 release.
+</p>
+
+
 <h2>May 15, 2009</h2>
 <p>
 <a href="relnotes-7.4.2.html">Mesa 7.4.2</a> is released.

commit 318122b60a2af704086f719d1d9d36bede6f4e69
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:45:54 2009 -0600

    docs: bring in 7.4.3 and 7.4.4 release notes, news

diff --git a/docs/relnotes-7.4.3.html b/docs/relnotes-7.4.3.html
new file mode 100644
index 0000000..35b5dcc
--- /dev/null
+++ b/docs/relnotes-7.4.3.html
@@ -0,0 +1,79 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.4.3 Release Notes / 19 June 2009</H1>
+
+<p>
+Mesa 7.4.3 is a stable development release fixing bugs since the 7.4.2 release.
+</p>
+<p>
+Mesa 7.4.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.
+</p>
+<p>
+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
+for DRI hardware acceleration.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+34c5a6c47ed51f31c4fa36e269831352  MesaLib-7.4.3.tar.gz
+70a983ba3deaa8bd63b18bbab283f698  MesaLib-7.4.3.tar.bz2
+34f21b3205b271d575030aa98a2dda51  MesaLib-7.4.3.zip
+56752b7adede212e6097afb10d0c0d59  MesaDemos-7.4.3.tar.gz
+8ffa51c4833b1e298300a005e2d7ca2a  MesaDemos-7.4.3.tar.bz2
+0037d24d41400d6fb9800ae55b8c863f  MesaDemos-7.4.3.zip
+20e24f6692c0c90e7e3b220f79c4108d  MesaGLUT-7.4.3.tar.gz
+03a4beeef74fc5ef0b1d6d04710e5a8a  MesaGLUT-7.4.3.tar.bz2
+273788230adbdb9d57371309adedcf5f  MesaGLUT-7.4.3.zip
+</pre>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>Fixed texture object reference counting bug (bug 21756)
+<li>Allow depth/stencil textures to be attached to GL_STENCIL_ATTACHMENT point
+    (SF bug 2793846)
+<li>Added missing glGet case for GL_VERTEX_ARRAY_BINDING_APPLE
+<li>Fixed some OSMesa build issues
+<li>Fixed a vertex buffer object crash
+<li>Fixed broken glTexImage3D() when image type = GL_BITMAP
+<li>Fixed some GLSL preprocessor bugs
+<li>Fixed framebuffer mem leak in i945/i965 DRI drivers
+<li>Fixed texture coordinate repeat bug in swrast (bug 21872)
+<li>Fixed incorrect viewport clamping (lower bound is zero, not one)
+<li>GLX fix for glean's makeCurrent test case
+</ul>
+
+
+
+<h2>Driver Status</h2>
+
+<pre>
+Driver			Status
+----------------------	----------------------
+DRI drivers		varies with the driver
+XMesa/GLX (on Xlib)	implements OpenGL 2.1
+OSMesa (off-screen)	implements OpenGL 2.1
+Windows/Win32		implements OpenGL 2.1
+Glide (3dfx Voodoo1/2)	implements OpenGL 1.3
+SVGA			unsupported
+Wind River UGL		unsupported
+DJGPP			unsupported
+GGI			unsupported
+BeOS			unsupported
+Allegro			unsupported
+D3D			unsupported
+</pre>
+
+</body>
+</html>
diff --git a/docs/relnotes-7.4.4.html b/docs/relnotes-7.4.4.html
new file mode 100644
index 0000000..2a34568
--- /dev/null
+++ b/docs/relnotes-7.4.4.html
@@ -0,0 +1,68 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 7.4.4 Release Notes / 23 June 2009</H1>
+
+<p>
+Mesa 7.4.4 is a stable development release fixing bugs since the 7.4.3 release.
+</p>
+<p>
+Mesa 7.4.4 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.
+</p>
+<p>
+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
+for DRI hardware acceleration.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+0b56fe5a88ab0c3c5b2da5068f63f416  MesaLib-7.4.4.tar.gz
+b66528d314c574dccbe0ed963cac5e93  MesaLib-7.4.4.tar.bz2
+2818076f3ba23fa87fdfe4602a637a18  MesaLib-7.4.4.zip
+3e77b208386c47b18165bce5ae317e2c  MesaDemos-7.4.4.tar.gz
+628142ec9a54cd28cc027e6ce26cff47  MesaDemos-7.4.4.tar.bz2
+d08a30d30ab7174859aa709cba6c726d  MesaDemos-7.4.4.zip
+e6e91ba16e274d40cf3a97ad3218af01  MesaGLUT-7.4.4.tar.gz
+e14bbb52517e8121b31f1387515365ab  MesaGLUT-7.4.4.tar.bz2
+f10ed20469753c2b3d68c99854f80fd4  MesaGLUT-7.4.4.zip
+</pre>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>Fixed i965/i915 segfault in screen destruction (bug 22408)
+</ul>
+
+
+
+<h2>Driver Status</h2>
+
+<pre>
+Driver			Status
+----------------------	----------------------
+DRI drivers		varies with the driver
+XMesa/GLX (on Xlib)	implements OpenGL 2.1
+OSMesa (off-screen)	implements OpenGL 2.1
+Windows/Win32		implements OpenGL 2.1
+Glide (3dfx Voodoo1/2)	implements OpenGL 1.3
+SVGA			unsupported
+Wind River UGL		unsupported
+DJGPP			unsupported
+GGI			unsupported
+BeOS			unsupported
+Allegro			unsupported
+D3D			unsupported
+</pre>
+
+</body>
+</html>
diff --git a/docs/relnotes.html b/docs/relnotes.html
index 4574626..a52c4a7 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -21,6 +21,8 @@ The release notes summarize what's new or changed in each Mesa release.
 
 <UL>
 <LI><A HREF="relnotes-7.5.html">7.5 release notes</A>
+<LI><A HREF="relnotes-7.4.4.html">7.4.2 release notes</A>
+<LI><A HREF="relnotes-7.4.3.html">7.4.2 release notes</A>
 <LI><A HREF="relnotes-7.4.2.html">7.4.2 release notes</A>
 <LI><A HREF="relnotes-7.4.1.html">7.4.1 release notes</A>
 <LI><A HREF="relnotes-7.4.html">7.4 release notes</A>

commit dd585db687f700de465fe78f9937eb785805e756
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:41:54 2009 -0600

    docs: increase max varying vars to 16

diff --git a/docs/relnotes-7.5.html b/docs/relnotes-7.5.html
index 9aee030..d0dba30 100644
--- a/docs/relnotes-7.5.html
+++ b/docs/relnotes-7.5.html
@@ -68,6 +68,7 @@ including GL_ATI_separate_stencil, GL_EXT_stencil_two_side and OpenGL 2.0
 <li>GL_EXT_texture_swizzle extension (software drivers, i965 driver)
 <li>Updated SPARC assembly optimizations (David S. Miller)
 <li>Initial support for separate compilation units in GLSL compiler.
+<li>Increased max number of generic GLSL varying variables to 16 (formerly 8).
 </ul>
 
 

commit f08bebfe246d786c39731871d8c4aa00a10b29ab
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 16:33:46 2009 -0600

    mesa: raise MAX_VARYING (number of shader varying vars) to 16
    
    16 is the limit for now because of various 32-bit bitfields.
    
    (cherry picked from master, commit 4e762395ef7e8c332c16fd0c11025cfa52763a45)

diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index aecea68..f7acd2f 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -187,7 +187,7 @@
 #define MAX_PROGRAM_TEMPS 256
 #define MAX_PROGRAM_ADDRESS_REGS 2
 #define MAX_UNIFORMS 1024  /**< number of vec4 uniforms */
-#define MAX_VARYING 8      /**< number of float[4] vectors */
+#define MAX_VARYING 16     /**< number of float[4] vectors */
 #define MAX_SAMPLERS MAX_TEXTURE_IMAGE_UNITS
 #define MAX_PROGRAM_INPUTS 32
 #define MAX_PROGRAM_OUTPUTS 32

commit 2d86503471cb8691ce266342810237fc1b15a7b2
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 26 13:30:16 2009 -0700

    intel / DRI2: Additional flush of fake front-buffer to real front-buffer
    
    To maintain correctness, the server will copy the real front-buffer to
    a newly allocated fake front-buffer in DRI2GetBuffersWithFormat.
    However, if the DRI2GetBuffersWithFormat is triggered by glViewport,
    this will copy stale data into the new buffer.  Fix this by flushing
    the current fake front-buffer to the real front-buffer in
    intel_viewport.
    
    Fixes bug #22288.

diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index bff0b05..1222a9a 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -71,6 +71,8 @@ int INTEL_DEBUG = (0);
 #define DRIVER_DATE_GEM                 "GEM " DRIVER_DATE
 
 
+static void intel_flush(GLcontext *ctx, GLboolean needs_mi_flush);
+
 static const GLubyte *
 intelGetString(GLcontext * ctx, GLenum name)
 {
@@ -395,6 +397,15 @@ intel_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
 	return;
 
     if (!intel->internal_viewport_call && ctx->DrawBuffer->Name == 0) {
+       /* If we're rendering to the fake front buffer, make sure all the pending
+	* drawing has landed on the real front buffer.  Otherwise when we
+	* eventually get to DRI2GetBuffersWithFormat the stale real front
+	* buffer contents will get copied to the new fake front buffer.
+	*/
+       if (intel->is_front_buffer_rendering) {
+	  intel_flush(ctx, GL_FALSE);
+       }
+
        intel_update_renderbuffers(driContext, driContext->driDrawablePriv);
        if (driContext->driDrawablePriv != driContext->driReadablePriv)
 	  intel_update_renderbuffers(driContext, driContext->driReadablePriv);

commit 077a06c140001849dafbedc4175f9aa703bbba69
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 13:16:08 2009 -0600

    mesa: bump version to 7.5-rc4

diff --git a/Makefile b/Makefile
index 22334d6..f7361d6 100644
--- a/Makefile
+++ b/Makefile
@@ -182,7 +182,7 @@ ultrix-gcc:
 
 # Rules for making release tarballs
 
-VERSION=7.5-rc3
+VERSION=7.5-rc4
 DIRECTORY = Mesa-$(VERSION)
 LIB_NAME = MesaLib-$(VERSION)
 DEMO_NAME = MesaDemos-$(VERSION)
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index 015ac71..52ee324 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
@@ -31,7 +31,7 @@
 #define MESA_MAJOR 7
 #define MESA_MINOR 5
 #define MESA_PATCH 0
-#define MESA_VERSION_STRING "7.5-rc3"
+#define MESA_VERSION_STRING "7.5-rc4"
 
 /* To make version comparison easy */
 #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

commit 62ad606065312cecb1e2dcad0ad2cadf402f0b5c
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 13:15:17 2009 -0600

    docs: document for/continue bug fix

diff --git a/docs/relnotes-7.5.html b/docs/relnotes-7.5.html
index 663626c..9aee030 100644
--- a/docs/relnotes-7.5.html
+++ b/docs/relnotes-7.5.html
@@ -75,6 +75,7 @@ including GL_ATI_separate_stencil, GL_EXT_stencil_two_side and OpenGL 2.0
 <ul>
 <li>Lots of i965 driver bug fixes
 <li>Fixed some GLSL preprocessor bugs
+<li>GLSL: continue inside of a for-loop didn't work
 </ul>
 
 

commit 928e1ce47ffa54dd73b141eb2e4c272378cdda7f
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 12:51:05 2009 -0600

    cell: PIPE_CAP_TGSI_CONT_SUPPORTED query

diff --git a/src/gallium/drivers/cell/ppu/cell_screen.c b/src/gallium/drivers/cell/ppu/cell_screen.c
index 512d85d..bd48ce7 100644
--- a/src/gallium/drivers/cell/ppu/cell_screen.c
+++ b/src/gallium/drivers/cell/ppu/cell_screen.c
@@ -86,6 +86,8 @@ cell_get_param(struct pipe_screen *screen, int param)
       return 1; /* XXX not really true */
    case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
       return 0; /* XXX to do */
+   case PIPE_CAP_TGSI_CONT_SUPPORTED:
+      return 1;
    default:
       return 0;
    }

commit af7fb892d8f1eff1f0e787bf8c7d65165e3aa51e
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 12:50:58 2009 -0600

    softpipe: PIPE_CAP_TGSI_CONT_SUPPORTED query

diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
index a32fd3a..cc39d33 100644
--- a/src/gallium/drivers/softpipe/sp_screen.c
+++ b/src/gallium/drivers/softpipe/sp_screen.c
@@ -87,6 +87,8 @@ softpipe_get_param(struct pipe_screen *screen, int param)
       return 8;  /* max 128x128x128 */
    case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
       return 12; /* max 2Kx2K */
+   case PIPE_CAP_TGSI_CONT_SUPPORTED:
+      return 1;
    default:
       return 0;
    }

commit f5dc352e5fbf9cd84638922e8dfdc4b5fb49538c
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 12:50:45 2009 -0600

    gallium: added PIPE_CAP_TGSI_CONT_SUPPORTED

diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index 82e23c4..ab57ed7 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -310,6 +310,7 @@ enum pipe_transfer_usage {
 #define PIPE_CAP_TEXTURE_MIRROR_CLAMP    24
 #define PIPE_CAP_TEXTURE_MIRROR_REPEAT   25
 #define PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS 26
+#define PIPE_CAP_TGSI_CONT_SUPPORTED     27
 
 
 /**

commit e80ecdf6596eb1f570ab6ae3dbcbd30660cd5b3a
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 12:34:03 2009 -0600

    glsl: move/simplify error checking for 'return' statements

diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 28d04d3..24e9952 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -950,6 +950,11 @@ gen_return_with_expression(slang_assemble_ctx *A, slang_operation *oper)
 
    assert(oper->type == SLANG_OPER_RETURN);
 
+   if (A->CurFunction->header.type.specifier.type == SLANG_SPEC_VOID) {
+      slang_info_log_error(A->log, "illegal return expression");
+      return NULL;
+   }
+
    blockOper = slang_operation_new(1);
    blockOper->type = SLANG_OPER_BLOCK_NO_NEW_SCOPE;
    blockOper->locals->outer_scope = oper->locals->outer_scope;
@@ -1039,6 +1044,11 @@ gen_return_without_expression(slang_assemble_ctx *A, slang_operation *oper)
 
    assert(oper->type == SLANG_OPER_RETURN);
 
+   if (A->CurFunction->header.type.specifier.type != SLANG_SPEC_VOID) {
+      slang_info_log_error(A->log, "return statement requires an expression");
+      return NULL;
+   }
+
    if (A->UseReturnFlag) {
       /* Emit:
        *    __notRetFlag = 0;
@@ -1150,6 +1160,9 @@ slang_substitute(slang_assemble_ctx *A, slang_operation *oper,
          else
             newReturn = gen_return_with_expression(A, oper);
 
+         if (!newReturn)
+            return;
+
          /* do substitutions on the new 'return' code */
          slang_substitute(A, newReturn,
                           substCount, substOld, substNew, GL_FALSE);
@@ -4060,28 +4073,7 @@ _slang_gen_logical_or(slang_assemble_ctx *A, slang_operation *oper)
 static slang_ir_node *
 _slang_gen_return(slang_assemble_ctx * A, slang_operation *oper)
 {
-   const GLboolean haveReturnValue
-      = (oper->num_children == 1 && oper->children[0].type != SLANG_OPER_VOID);
-
-   assert(oper->type == SLANG_OPER_RETURN ||
-          oper->type == SLANG_OPER_RETURN_INLINED);
-
-   /* error checking */
-   if (oper->type == SLANG_OPER_RETURN) {
-      assert(A->CurFunction);
-
-      if (haveReturnValue &&
-          A->CurFunction->header.type.specifier.type == SLANG_SPEC_VOID) {
-         slang_info_log_error(A->log, "illegal return expression");
-         return NULL;
-      }
-      else if (!haveReturnValue &&
-               A->CurFunction->header.type.specifier.type != SLANG_SPEC_VOID) {
-         slang_info_log_error(A->log, "return statement requires an expression");
-         return NULL;
-      }
-   }
-
+   assert(oper->type == SLANG_OPER_RETURN);
    return new_return(A->curFuncEndLabel);
 }
 

commit 8e6dd8bf7991d8fc4938af692e5ce880ef139b4d
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jun 26 11:33:05 2009 -0600

    glsl: overhaul 'return' statement handling
    
    A new node type (SLANG_OPER_RETURN_INLINED) is used to denote 'return'
    statements inside inlined functions which need special handling.
    
    All glean glsl1 tests pass for EmitContReturn=FALSE and TRUE.

diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 6aa1886..28d04d3 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -818,6 +818,7 @@ _slang_is_noop(const slang_operation *oper)
 /**
  * Recursively search tree for a node of the given type.
  */
+#if 0
 static slang_operation *
 _slang_find_node_type(slang_operation *oper, slang_operation_type type)
 {
@@ -831,6 +832,7 @@ _slang_find_node_type(slang_operation *oper, slang_operation_type type)
    }
    return NULL;
 }
+#endif
 
 
 /**
@@ -932,41 +934,43 @@ slang_resolve_variable(slang_operation *oper)
 
 
 /**
- * Generate code for "return expr;"
+ * Rewrite AST code for "return expression;".
+ *
  * We return values from functions by assinging the returned value to
  * the hidden __retVal variable which is an extra 'out' parameter we add
  * to the function signature.
  * This code basically converts "return expr;" into "__retVal = expr; return;"
+ *
  * \return the new AST code.
  */
 static slang_operation *
-gen_return_expression(slang_assemble_ctx *A, slang_operation *oper)
+gen_return_with_expression(slang_assemble_ctx *A, slang_operation *oper)
 {
-   slang_operation *blockOper;
+   slang_operation *blockOper, *assignOper;
+
+   assert(oper->type == SLANG_OPER_RETURN);
 
    blockOper = slang_operation_new(1);
    blockOper->type = SLANG_OPER_BLOCK_NO_NEW_SCOPE;
    blockOper->locals->outer_scope = oper->locals->outer_scope;
    slang_operation_add_children(blockOper, 2);
 
-   /* if EmitContReturn:
-    *    if (!__returnFlag) {
-    *       build: __retVal = expr;
-    *    }
-    * otherwise:
-    *    build: __retVal = expr;
-    */
-   {
-      slang_operation *assignOper;
-
-      if (A->UseReturnFlag) {
+   if (A->UseReturnFlag) {
+      /* Emit:
+       *    {
+       *       if (__notRetFlag)
+       *          __retVal = expr;
+       *       __notRetFlag = 0;
+       *    }
+       */
+      {
          slang_operation *ifOper = slang_oper_child(blockOper, 0);
          ifOper->type = SLANG_OPER_IF;
          slang_operation_add_children(ifOper, 3);
          {
             slang_operation *cond = slang_oper_child(ifOper, 0);
             cond->type = SLANG_OPER_IDENTIFIER;
-            cond->a_id = slang_atom_pool_atom(A->atoms, "__returnFlag");
+            cond->a_id = slang_atom_pool_atom(A->atoms, "__notRetFlag");
          }
          {
             slang_operation *elseOper = slang_oper_child(ifOper, 2);
@@ -974,34 +978,103 @@ gen_return_expression(slang_assemble_ctx *A, slang_operation *oper)
          }
          assignOper = slang_oper_child(ifOper, 1);
       }
-      else {
-         assignOper = slang_oper_child(blockOper, 0);
-      }
-
-      assignOper->type = SLANG_OPER_ASSIGN;
-      slang_operation_add_children(assignOper, 2);
       {
-         slang_operation *lhs = slang_oper_child(assignOper, 0);
-         lhs->type = SLANG_OPER_IDENTIFIER;
-         lhs->a_id = slang_atom_pool_atom(A->atoms, "__retVal");
+         slang_operation *setOper = slang_oper_child(blockOper, 1);
+         setOper->type = SLANG_OPER_ASSIGN;
+         slang_operation_add_children(setOper, 2);
+         {
+            slang_operation *lhs = slang_oper_child(setOper, 0);
+            lhs->type = SLANG_OPER_IDENTIFIER;
+            lhs->a_id = slang_atom_pool_atom(A->atoms, "__notRetFlag");
+         }
+         {
+            slang_operation *rhs = slang_oper_child(setOper, 1);
+            slang_operation_literal_bool(rhs, GL_FALSE);
+         }
       }
+   }
+   else {
+      /* Emit:
+       *    {
+       *       __retVal = expr;
+       *       return_inlined;
+       *    }
+       */
+      assignOper = slang_oper_child(blockOper, 0);
       {
-         slang_operation *rhs = slang_oper_child(assignOper, 1);
-         slang_operation_copy(rhs, &oper->children[0]);
+         slang_operation *returnOper = slang_oper_child(blockOper, 1);
+         returnOper->type = SLANG_OPER_RETURN_INLINED;
+         assert(returnOper->num_children == 0);
       }
    }
 
-   /* build: return; (with no return value) */
+   /* __retVal = expression; */
+   assignOper->type = SLANG_OPER_ASSIGN;
+   slang_operation_add_children(assignOper, 2);
+   {
+      slang_operation *lhs = slang_oper_child(assignOper, 0);
+      lhs->type = SLANG_OPER_IDENTIFIER;
+      lhs->a_id = slang_atom_pool_atom(A->atoms, "__retVal");
+   }
    {
-      slang_operation *returnOper = slang_oper_child(blockOper, 1);
-      returnOper->type = SLANG_OPER_RETURN; /* return w/ no value */
-      assert(returnOper->num_children == 0);
+      slang_operation *rhs = slang_oper_child(assignOper, 1);
+      slang_operation_copy(rhs, &oper->children[0]);
    }
 
+   ///blockOper->locals->outer_scope = oper->locals->outer_scope;
+
+   /*slang_print_tree(blockOper, 0);*/
+
    return blockOper;
 }
 
 
+/**
+ * Rewrite AST code for "return;" (no expression).
+ */
+static slang_operation *
+gen_return_without_expression(slang_assemble_ctx *A, slang_operation *oper)
+{
+   slang_operation *newRet;
+
+   assert(oper->type == SLANG_OPER_RETURN);
+
+   if (A->UseReturnFlag) {
+      /* Emit:
+       *    __notRetFlag = 0;
+       */
+      {
+         newRet = slang_operation_new(1);
+         newRet->locals->outer_scope = oper->locals->outer_scope;
+         newRet->type = SLANG_OPER_ASSIGN;
+         slang_operation_add_children(newRet, 2);
+         {
+            slang_operation *lhs = slang_oper_child(newRet, 0);
+            lhs->type = SLANG_OPER_IDENTIFIER;
+            lhs->a_id = slang_atom_pool_atom(A->atoms, "__notRetFlag");
+         }
+         {
+            slang_operation *rhs = slang_oper_child(newRet, 1);
+            slang_operation_literal_bool(rhs, GL_FALSE);
+         }
+      }
+   }
+   else {
+      /* Emit:
+       *    return_inlined;
+       */
+      newRet = slang_operation_new(1);
+      newRet->locals->outer_scope = oper->locals->outer_scope;
+      newRet->type = SLANG_OPER_RETURN_INLINED;
+   }
+
+   /*slang_print_tree(newRet, 0);*/
+
+   return newRet;
+}
+
+
+
 
 /**
  * Replace particular variables (SLANG_OPER_IDENTIFIER) with new expressions.
@@ -1038,7 +1111,7 @@ slang_substitute(slang_assemble_ctx *A, slang_operation *oper,
 	 GLuint i;
          v = _slang_variable_locate(oper->locals, id, GL_TRUE);
 	 if (!v) {
-            if (_mesa_strcmp((char *) oper->a_id, "__returnFlag"))
+            if (_mesa_strcmp((char *) oper->a_id, "__notRetFlag"))
                _mesa_problem(NULL, "var %s not found!\n", (char *) oper->a_id);
             return;
 	 }
@@ -1069,37 +1142,22 @@ slang_substitute(slang_assemble_ctx *A, slang_operation *oper,
       break;
 
    case SLANG_OPER_RETURN:
-      /* do return replacement here too */
-      assert(oper->num_children == 0 || oper->num_children == 1);
-      if (oper->num_children == 1 && !_slang_is_noop(&oper->children[0])) {
+      {
          slang_operation *newReturn;
-
-         /* check if function actually has a return type */
-         assert(A->CurFunction);


Reply to: