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

mesa: Changes to 'upstream-experimental'



 Makefile                                                |    2 
 configs/darwin                                          |    2 
 configs/default                                         |    2 
 docs/news.html                                          |    6 
 docs/relnotes-7.6.1.html                                |    2 
 docs/relnotes-7.7.1.html                                |   50 +
 docs/relnotes-7.7.html                                  |    2 
 docs/relnotes.html                                      |    1 
 progs/demos/engine.c                                    |   18 
 progs/demos/fbotexture.c                                |    1 
 progs/demos/fire.c                                      |   10 
 progs/demos/geartrain.c                                 |   21 
 progs/demos/isosurf.c                                   |    8 
 progs/demos/terrain.c                                   |    5 
 progs/egl/eglgears.c                                    |    3 
 progs/egl/eglscreen.c                                   |    3 
 progs/fp/Makefile                                       |    1 
 progs/fp/SConscript                                     |    1 
 progs/fp/tri-inv.c                                      |  111 --
 progs/glsl/convolutions.c                               |    2 
 progs/glsl/shtest.c                                     |    9 
 progs/glsl/vert-tex.c                                   |    9 
 progs/rbug/simple_server.c                              |    4 
 progs/samples/olympic.c                                 |   20 
 progs/samples/overlay.c                                 |   18 
 progs/samples/rgbtoppm.c                                |   31 
 progs/samples/sphere.c                                  |   30 
 progs/samples/star.c                                    |   20 
 progs/samples/stretch.c                                 |   20 
 progs/samples/wave.c                                    |    2 
 progs/tests/getprocaddress.c                            |    2 
 progs/tests/interleave.c                                |    2 
 progs/tests/texwrap.c                                   |    2 
 progs/tests/vparray.c                                   |   13 
 progs/util/readtex.c                                    |   20 
 progs/vp/vp-tris.c                                      |    3 
 progs/xdemos/glsync.c                                   |    2 
 progs/xdemos/glxheads.c                                 |   32 
 progs/xdemos/manywin.c                                  |   34 
 progs/xdemos/sharedtex_mt.c                             |    4 
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c     |  281 ++++---
 src/gallium/auxiliary/rbug/rbug_context.h               |    2 
 src/gallium/auxiliary/rbug/rbug_proto.h                 |    2 
 src/gallium/auxiliary/rtasm/rtasm_execmem.c             |   32 
 src/gallium/auxiliary/tgsi/tgsi_exec.c                  |    8 
 src/gallium/auxiliary/tgsi/tgsi_sse2.c                  |   50 -
 src/gallium/auxiliary/tgsi/tgsi_ureg.c                  |    8 
 src/gallium/auxiliary/util/Makefile                     |    1 
 src/gallium/auxiliary/util/u_bitmask.c                  |   32 
 src/gallium/auxiliary/util/u_clear.h                    |    2 
 src/gallium/auxiliary/util/u_debug.c                    |    6 
 src/gallium/auxiliary/util/u_debug.h                    |    2 
 src/gallium/auxiliary/util/u_debug_memory.c             |    8 
 src/gallium/auxiliary/util/u_format.h                   |    2 
 src/gallium/auxiliary/util/u_network.c                  |    8 
 src/gallium/auxiliary/util/u_network.h                  |    2 
 src/gallium/auxiliary/util/u_stream_stdc.c              |    2 
 src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c        |   11 
 src/gallium/drivers/i915/i915_buffer.c                  |    1 
 src/gallium/drivers/i915/i915_state.c                   |    4 
 src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c         |    2 
 src/gallium/drivers/llvmpipe/lp_bld_depth.c             |    2 
 src/gallium/drivers/llvmpipe/lp_bld_flow.c              |    2 
 src/gallium/drivers/llvmpipe/lp_bld_format_aos.c        |    2 
 src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c          |    9 
 src/gallium/drivers/llvmpipe/lp_prim_vbuf.c             |    1 
 src/gallium/drivers/llvmpipe/lp_state_fs.c              |    1 
 src/gallium/drivers/llvmpipe/lp_test_conv.c             |    2 
 src/gallium/drivers/llvmpipe/lp_tex_cache.h             |    2 
 src/gallium/drivers/llvmpipe/lp_tex_sample_c.c          |    2 
 src/gallium/drivers/llvmpipe/lp_tile_soa.h              |    2 
 src/gallium/drivers/llvmpipe/lp_winsys.h                |    2 
 src/gallium/drivers/nv50/nv50_query.c                   |    2 
 src/gallium/drivers/r300/r300_cs.h                      |    2 
 src/gallium/drivers/r300/r300_emit.c                    |    4 
 src/gallium/drivers/r300/r300_flush.c                   |    1 
 src/gallium/drivers/r300/r300_reg.h                     |   16 
 src/gallium/drivers/r300/r300_state_derived.c           |    2 
 src/gallium/drivers/softpipe/sp_prim_vbuf.c             |    1 
 src/gallium/drivers/softpipe/sp_quad_blend.c            |    2 
 src/gallium/drivers/svga/svga_context.c                 |   44 -
 src/gallium/drivers/svga/svga_context.h                 |    9 
 src/gallium/drivers/svga/svga_draw.c                    |    3 
 src/gallium/drivers/svga/svga_pipe_fs.c                 |   10 
 src/gallium/drivers/svga/svga_pipe_vs.c                 |   10 
 src/gallium/drivers/svga/svga_state_fs.c                |   39 
 src/gallium/drivers/svga/svga_state_vs.c                |   20 
 src/gallium/drivers/svga/svga_tgsi.c                    |    2 
 src/gallium/drivers/trace/tr_context.c                  |    2 
 src/gallium/drivers/trace/tr_dump.c                     |    4 
 src/gallium/drivers/trace/tr_rbug.c                     |    6 
 src/gallium/drivers/trace/tr_state.h                    |    2 
 src/gallium/state_trackers/egl/egl_surface.c            |    4 
 src/gallium/state_trackers/egl/egl_tracker.c            |    3 
 src/gallium/state_trackers/glx/xlib/glx_api.c           |    1 
 src/gallium/state_trackers/vega/api_path.c              |    3 
 src/gallium/state_trackers/vega/arc.c                   |    2 
 src/gallium/state_trackers/vega/bezier.c                |    1 
 src/gallium/state_trackers/vega/stroker.c               |    4 
 src/gallium/state_trackers/vega/vg_tracker.c            |    1 
 src/gallium/state_trackers/xorg/xorg_crtc.c             |   10 
 src/gallium/state_trackers/xorg/xorg_driver.c           |   29 
 src/gallium/state_trackers/xorg/xorg_exa.c              |    4 
 src/gallium/state_trackers/xorg/xorg_exa_tgsi.c         |   33 
 src/gallium/state_trackers/xorg/xorg_renderer.c         |    1 
 src/gallium/winsys/drm/vmware/xorg/SConscript           |    1 
 src/gallium/winsys/gdi/SConscript                       |    2 
 src/gallium/winsys/xlib/xlib_brw_context.c              |  209 +++++
 src/glu/sgi/libnurbs/interface/bezierPatchMesh.h        |    1 
 src/glu/sgi/libnurbs/interface/glsurfeval.h             |    2 
 src/glu/sgi/libnurbs/internals/arcsorter.h              |    1 
 src/glu/sgi/libnurbs/internals/displaylist.h            |    1 
 src/glu/sgi/libnurbs/internals/gridvertex.h             |    2 
 src/glu/sgi/libnurbs/internals/knotvector.cc            |    3 
 src/glu/sgi/libnurbs/internals/mesher.cc                |    3 
 src/glu/sgi/libnurbs/internals/reader.cc                |    2 
 src/glu/sgi/libnurbs/internals/reader.h                 |   14 
 src/glu/sgi/libnurbs/internals/renderhints.cc           |    4 
 src/glu/sgi/libnurbs/internals/simplemath.h             |    2 
 src/glu/sgi/libnurbs/internals/slicer.cc                |    4 
 src/glu/sgi/libnurbs/internals/subdivider.cc            |    6 
 src/glu/sgi/libnurbs/internals/varray.cc                |    8 
 src/glu/sgi/libnurbs/nurbtess/directedLine.cc           |   32 
 src/glu/sgi/libnurbs/nurbtess/monoChain.cc              |    1 
 src/glu/sgi/libnurbs/nurbtess/partitionY.cc             |    4 
 src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc          |    4 
 src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc          |    4 
 src/glu/sgi/libnurbs/nurbtess/sampledLine.cc            |    3 
 src/glut/glx/win32_menu.c                               |    2 
 src/glx/x11/dri2.c                                      |    4 
 src/glx/x11/dri_glx.c                                   |   13 
 src/glx/x11/glxcmds.c                                   |    4 
 src/glx/x11/glxcurrent.c                                |    7 
 src/glx/x11/glxext.c                                    |    5 
 src/glx/x11/xf86dri.h                                   |    4 
 src/mesa/Makefile                                       |    2 
 src/mesa/drivers/common/meta.c                          |   47 -
 src/mesa/drivers/dri/ffb/ffb_tris.c                     |    2 
 src/mesa/drivers/dri/i810/i810tex.h                     |    1 
 src/mesa/drivers/dri/i915/i915_program.c                |    2 
 src/mesa/drivers/dri/i915/i915_texstate.c               |    7 
 src/mesa/drivers/dri/i915/intel_render.c                |    4 
 src/mesa/drivers/dri/i965/brw_disasm.c                  |    1 
 src/mesa/drivers/dri/i965/brw_draw_upload.c             |    6 
 src/mesa/drivers/dri/i965/brw_eu_emit.c                 |    4 
 src/mesa/drivers/dri/i965/brw_state.h                   |    2 
 src/mesa/drivers/dri/i965/brw_wm_emit.c                 |    4 
 src/mesa/drivers/dri/i965/brw_wm_glsl.c                 |    2 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c        |   50 -
 src/mesa/drivers/dri/intel/intel_context.h              |    8 
 src/mesa/drivers/dri/intel/intel_pixel_bitmap.c         |    3 
 src/mesa/drivers/dri/intel/intel_tex_copy.c             |    7 
 src/mesa/drivers/dri/r300/compiler/memory_pool.c        |    4 
 src/mesa/drivers/dri/r300/compiler/radeon_code.c        |    3 
 src/mesa/drivers/dri/r300/compiler/radeon_compiler.c    |   11 
 src/mesa/drivers/dri/r300/compiler/radeon_program.c     |    6 
 src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c |   30 
 src/mesa/drivers/dri/r600/r600_context.h                |    1 
 src/mesa/drivers/dri/r600/r600_texstate.c               |   46 -
 src/mesa/drivers/dri/r600/r700_assembler.c              |   20 
 src/mesa/drivers/dri/r600/r700_assembler.h              |    1 
 src/mesa/drivers/dri/r600/r700_chip.c                   |    5 
 src/mesa/drivers/dri/r600/r700_vertprog.c               |    8 
 src/mesa/drivers/dri/r600/r700_vertprog.h               |    1 
 src/mesa/drivers/dri/radeon/radeon_cs_legacy.c          |    2 
 src/mesa/drivers/dri/radeon/radeon_tcl.c                |    1 
 src/mesa/drivers/dri/sis/sis_context.c                  |    2 
 src/mesa/drivers/dri/tdfx/tdfx_dd.c                     |    2 
 src/mesa/drivers/dri/tdfx/tdfx_tex.c                    |    2 
 src/mesa/drivers/dri/tdfx/tdfx_texstate.c               |    2 
 src/mesa/glapi/ARB_sync.xml                             |    4 
 src/mesa/main/attrib.c                                  |   47 -
 src/mesa/main/dispatch.c                                |    4 
 src/mesa/main/enums.c                                   |  465 +++++------
 src/mesa/main/formats.c                                 |    1 
 src/mesa/main/image.c                                   |    2 
 src/mesa/main/texgetimage.c                             |    2 
 src/mesa/main/texparam.c                                |    1 
 src/mesa/main/version.h                                 |    8 
 src/mesa/shader/nvfragparse.c                           |    2 
 src/mesa/shader/prog_optimize.c                         |    2 
 src/mesa/shader/prog_parameter.c                        |    8 
 src/mesa/shader/prog_parameter_layout.c                 |   16 
 src/mesa/shader/program_parse.tab.c                     |  627 ++++++++--------
 src/mesa/shader/program_parse.tab.h                     |    2 
 src/mesa/shader/program_parse.y                         |   95 +-
 src/mesa/shader/program_parser.h                        |    6 
 src/mesa/shader/slang/slang_codegen.c                   |   15 
 src/mesa/shader/slang/slang_codegen.h                   |    1 
 src/mesa/shader/slang/slang_compile.c                   |    3 
 src/mesa/shader/slang/slang_compile_operation.c         |    1 
 src/mesa/state_tracker/st_cb_bufferobjects.c            |   49 +
 src/mesa/state_tracker/st_cb_texture.c                  |    2 
 src/mesa/state_tracker/st_format.c                      |    5 
 src/mesa/state_tracker/st_mesa_to_tgsi.c                |   21 
 src/mesa/swrast/s_span.c                                |   10 
 src/mesa/tnl/t_vb_program.c                             |    7 
 src/mesa/x86/gen_matypes.c                              |   14 
 198 files changed, 2072 insertions(+), 1297 deletions(-)

New commits:
commit 6d6c9c668894c393f7b6086fe0a4234939656865
Author: Vinson Lee <vlee@vmware.com>
Date:   Mon Jan 11 00:24:39 2010 -0800

    progs/demos: Remove unnecessary header from fbotexture.c.

diff --git a/progs/demos/fbotexture.c b/progs/demos/fbotexture.c
index 5648266..46bf1c5 100644
--- a/progs/demos/fbotexture.c
+++ b/progs/demos/fbotexture.c
@@ -14,7 +14,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <math.h>
 #include "extfuncs.h"
 
 /* For debug */

commit efaba97eaaf47ffecf1577777df1e8a700ada8de
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 13:21:47 2010 +1000

    radeon: fix prediction for r100 inline vert/elt emits.
    
    On r100 we emit the indices inline so we need to account
    for that in the emission size.

diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c
index b334ea0..cd02bfb 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tcl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c
@@ -412,6 +412,7 @@ static GLuint radeonEnsureEmitSize( GLcontext * ctx , GLuint inputs )
 	space_required += vbuf;
       else
 	space_required += index + elts;
+      space_required += VB->Primitive[i].count * 3;
       space_required += AOS_BUFSZ(nr_aos);
     }
     space_required += SCISSOR_BUFSZ;

commit 1294df9ca4ec39f00de3f9d923316f6641c1fb4a
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 13:21:02 2010 +1000

    radeon: fix bug in realloc code.
    
    This bug was fixed in libdrm ages ago, port to non-kms

diff --git a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
index 45b608a..bf46eb8 100644
--- a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
+++ b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
@@ -182,7 +182,7 @@ static int cs_begin(struct radeon_cs_int *cs,
         uint32_t tmp, *ptr;
 	int num = (ndw > 0x3FF) ? ndw : 0x3FF;
 
-        tmp = (cs->cdw + 1 + num) & (~num);
+        tmp = (cs->cdw + ndw + 0x3ff) & (~0x3ff);
         ptr = (uint32_t*)realloc(cs->packets, 4 * tmp);
         if (ptr == NULL) {
             return -ENOMEM;

commit 4fe51c7447fb260c32754df95a54b62f513cdd6b
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 16:09:41 2010 -0800

    glu/sgi: Initialize members of class Mesher.

diff --git a/src/glu/sgi/libnurbs/internals/mesher.cc b/src/glu/sgi/libnurbs/internals/mesher.cc
index 9cc436a..b2d83f4 100644
--- a/src/glu/sgi/libnurbs/internals/mesher.cc
+++ b/src/glu/sgi/libnurbs/internals/mesher.cc
@@ -58,6 +58,9 @@ Mesher::Mesher( Backend& b )
 {
     stacksize = 0;
     vdata = 0;
+    last[0] = 0;
+    last[1] = 0;
+    itop = 0;
     lastedge = 0; //needed to prevent purify UMR 
 }
 

commit 1111b38a1b903e9d99aace14a675a684a3f4732a
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 15:55:52 2010 -0800

    glu/sgi: Initialize members of class Slicer.

diff --git a/src/glu/sgi/libnurbs/internals/slicer.cc b/src/glu/sgi/libnurbs/internals/slicer.cc
index 27d2a65..1b18d73 100644
--- a/src/glu/sgi/libnurbs/internals/slicer.cc
+++ b/src/glu/sgi/libnurbs/internals/slicer.cc
@@ -1181,6 +1181,10 @@ void Slicer::slice(Arc_ptr loop)
 Slicer::Slicer( Backend &b ) 
 	: CoveAndTiler( b ), Mesher( b ), backend( b )
 {
+    oneOverDu = 0;
+    du = 0;
+    dv = 0;
+    isolines = 0;
     ulinear = 0;
     vlinear = 0;
 }

commit b9bd96608c88c0b3decddc80f0d49f670fc90466
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 03:03:14 2010 -0800

    glu/sgi: Include missing header file.

diff --git a/src/glu/sgi/libnurbs/internals/simplemath.h b/src/glu/sgi/libnurbs/internals/simplemath.h
index 0a060c5..d00062d 100644
--- a/src/glu/sgi/libnurbs/internals/simplemath.h
+++ b/src/glu/sgi/libnurbs/internals/simplemath.h
@@ -38,6 +38,8 @@
 
 /* simple inline routines */
 
+#include "types.h"
+
 inline int 
 max( int x, int y ) { return ( x < y ) ? y : x; }
 

commit 199dedd6dd06e7f647dc6741611c06954aca3c77
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 01:57:13 2010 -0800

    progs/demos: Check upper bounds of input in manywin.c.

diff --git a/progs/xdemos/manywin.c b/progs/xdemos/manywin.c
index 3b0810b..8ad5c4f 100644
--- a/progs/xdemos/manywin.c
+++ b/progs/xdemos/manywin.c
@@ -400,6 +400,8 @@ main(int argc, char *argv[])
       }
       if (n < 1)
          n = 1;
+      if (n > MAX_HEADS)
+         n = MAX_HEADS;
 
       printf("%d windows\n", n);
       for (i = 0; i < n; i++) {

commit 0c7814fe238fe0e2bbeff448c32f79146f9ae923
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 00:40:46 2010 -0800

    progs/demos: Bounds check input to fire.c.

diff --git a/progs/demos/fire.c b/progs/demos/fire.c
index f30b893..475582c 100644
--- a/progs/demos/fire.c
+++ b/progs/demos/fire.c
@@ -726,8 +726,13 @@ main(int ac, char **av)
 
    maxage = 1.0 / dt;
 
-   if (ac == 2)
+   if (ac == 2) {
       np = atoi(av[1]);
+      if (np <= 0 || np > 1000000) {
+         fprintf(stderr, "Invalid input.\n");
+         exit(-1);
+      }
+   }
 
    if (ac == 4) {
       WIDTH = atoi(av[2]);
@@ -762,6 +767,7 @@ main(int ac, char **av)
 
    assert(np > 0);
    p = (part *) malloc(sizeof(part) * np);
+   assert(p);
 
    for (i = 0; i < np; i++)
       setnewpart(&p[i]);

commit 9e98c1fbf6fef97e017c7b308d0772604ea7a614
Author: Vinson Lee <vlee@vmware.com>
Date:   Sun Jan 10 00:14:33 2010 -0800

    glu/sgi: Initialize members of class Renderhints.

diff --git a/src/glu/sgi/libnurbs/internals/renderhints.cc b/src/glu/sgi/libnurbs/internals/renderhints.cc
index a3aa62d..7025f74 100644
--- a/src/glu/sgi/libnurbs/internals/renderhints.cc
+++ b/src/glu/sgi/libnurbs/internals/renderhints.cc
@@ -54,6 +54,10 @@ Renderhints::Renderhints()
     errorchecking 	= N_MSG;
     subdivisions 	= 6.0;
     tmp1 		= 0.0;
+    displaydomain 	= 0;
+    maxsubdivisions 	= (int) subdivisions;
+    wiretris	 	= 0;
+    wirequads	 	= 0;
 }
 
 void

commit a5815c36f77d150e4a9915a8b289df2aa942c23c
Author: Vinson Lee <vlee@vmware.com>
Date:   Sat Jan 9 23:55:05 2010 -0800

    glu/sgi: Initialize members of class StoredVertex.

diff --git a/src/glu/sgi/libnurbs/interface/glsurfeval.h b/src/glu/sgi/libnurbs/interface/glsurfeval.h
index 1567c6b..621e593 100644
--- a/src/glu/sgi/libnurbs/interface/glsurfeval.h
+++ b/src/glu/sgi/libnurbs/interface/glsurfeval.h
@@ -83,7 +83,7 @@ typedef struct surfEvalMachine{
 
 class StoredVertex {
 public:
-    		StoredVertex() { type = 0; }
+    		StoredVertex() { type = 0; coord[0] = 0; coord[1] = 0; point[0] = 0; point[1] = 0; }
 		~StoredVertex(void) {}
     void	saveEvalCoord(REAL x, REAL y) 
 		    {coord[0] = x; coord[1] = y; type = TYPECOORD; }

commit 61afd1158fb7d0577effd817a8f9cba7fb2a2bbd
Author: Vinson Lee <vlee@vmware.com>
Date:   Sat Jan 9 23:53:54 2010 -0800

    glu/sgi: Include missing header file.

diff --git a/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h b/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h
index 4493296..ba6868a 100644
--- a/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h
+++ b/src/glu/sgi/libnurbs/interface/bezierPatchMesh.h
@@ -33,6 +33,7 @@
 #ifndef _BEZIERPATCHMESH_H
 #define _BEZIERPATCHMESH_H
 
+#include <GL/gl.h>
 #include "bezierPatch.h"
 
 typedef struct bezierPatchMesh{

commit f8737bda37510672415269f205ca5b0c69454edf
Author: Vinson Lee <vlee@vmware.com>
Date:   Sat Jan 9 23:25:49 2010 -0800

    glu/sgi: Initialize member of class O_pwlcurve.

diff --git a/src/glu/sgi/libnurbs/internals/reader.cc b/src/glu/sgi/libnurbs/internals/reader.cc
index 6135eef..c59240d 100644
--- a/src/glu/sgi/libnurbs/internals/reader.cc
+++ b/src/glu/sgi/libnurbs/internals/reader.cc
@@ -64,6 +64,7 @@ O_pwlcurve::O_pwlcurve( long _type, long count, INREAL *array, long byte_stride,
     owner = 0;
     pts = trimpts;
     npts = (int) count;
+    save = 0;
     int i;
 
     /* copy user data into internal trimming data structures */
@@ -115,6 +116,7 @@ O_pwlcurve::O_pwlcurve( long _type, long count, INREAL *array, long byte_stride,
     owner = 0;
     pts = trimpts;
     npts = (int) count;
+    save = 0;
 
     /* copy user data into internal trimming data structures */
     switch( _type ) {

commit 683e3cb8db5a57db2ebd364986a399e2b1009e00
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 23:08:57 2010 -0800

    progs/tests: Silence 'missing initializer' warnings.

diff --git a/progs/tests/interleave.c b/progs/tests/interleave.c
index 47bf9df..acf67d0 100644
--- a/progs/tests/interleave.c
+++ b/progs/tests/interleave.c
@@ -105,7 +105,7 @@ static const unsigned indicies[12] = {
    1, 4, 2
 };
 
-#define NONE  { NULL, 0, 0, 0 }
+#define NONE  { NULL, 0, 0, 0, sizeof( NULL ) }
 #define V2F   { v,    2, 2 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
 #define V3F   { v,    3, 3 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
 #define V4F   { v,    4, 4 * sizeof( GLfloat ), GL_FLOAT, sizeof( v[0] ) }
diff --git a/progs/tests/texwrap.c b/progs/tests/texwrap.c
index 92c8a2f..39c5591 100644
--- a/progs/tests/texwrap.c
+++ b/progs/tests/texwrap.c
@@ -71,7 +71,7 @@ static struct wrap_mode modes[] = {
    WRAP_EXT ( GL_MIRROR_CLAMP_TO_EDGE_EXT, "GL_ATI_texture_mirror_once",
 	                                   "GL_EXT_texture_mirror_clamp",
 	      999.0 ),
-   { 0 }
+   { 0, NULL, GL_FALSE, 0.0, { NULL, NULL } }
 };
 
 static void

commit 223c8482ca16d3ed31266ea8cc63b816aece6a81
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 22:10:52 2010 -0800

    progs/glsl: Silence uninitialized variable warning.

diff --git a/progs/glsl/convolutions.c b/progs/glsl/convolutions.c
index 350e61b..fdfaf56 100644
--- a/progs/glsl/convolutions.c
+++ b/progs/glsl/convolutions.c
@@ -182,7 +182,7 @@ static void fillConvolution(GLint *k,
 static void setupConvolution()
 {
    GLint *kernel = (GLint*)malloc(sizeof(GLint) * 9);
-   GLfloat scale;
+   GLfloat scale = 0.0;
    GLfloat *vecKer = (GLfloat*)malloc(sizeof(GLfloat) * 9 * 4);
    GLuint loc;
    GLuint i;

commit 3b82de92a0f3a1a810ae1521d2f72795f9d65157
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 22:02:21 2010 -0800

    progs/demos: Add missing initializers in engine.c.

diff --git a/progs/demos/engine.c b/progs/demos/engine.c
index 3cf311e..838d28c 100644
--- a/progs/demos/engine.c
+++ b/progs/demos/engine.c
@@ -120,7 +120,11 @@ static Engine Engines[NUM_ENGINES] =
       0.3,  /* CrankJournalRadius */
       0.4,  /* CrankJournalLength */
       1.5,  /* ConnectingRodLength */
-      0.1   /* ConnectingRodThickness */
+      0.1,  /* ConnectingRodThickness */
+      0,    /* CrankList */
+      0,    /* ConnRodList */
+      0,    /* PistonList */
+      0     /* BlockList */
    },
    {
       "Inline-4",
@@ -136,7 +140,11 @@ static Engine Engines[NUM_ENGINES] =
       0.3,  /* CrankJournalRadius */
       0.4,  /* CrankJournalLength */
       1.5,  /* ConnectingRodLength */
-      0.1   /* ConnectingRodThickness */
+      0.1,  /* ConnectingRodThickness */
+      0,    /* CrankList */
+      0,    /* ConnRodList */
+      0,    /* PistonList */
+      0     /* BlockList */
    },
    {
       "Boxer-6",
@@ -152,7 +160,11 @@ static Engine Engines[NUM_ENGINES] =
       0.3,  /* CrankJournalRadius */
       0.4,  /* CrankJournalLength */
       1.5,  /* ConnectingRodLength */
-      0.1   /* ConnectingRodThickness */
+      0.1,  /* ConnectingRodThickness */
+      0,    /* CrankList */
+      0,    /* ConnRodList */
+      0,    /* PistonList */
+      0     /* BlockList */
    }
 };
 

commit 4775723d2f641dcd82e8c9cd39ba52f8d86158c7
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 21:43:54 2010 -0800

    r300g: Silence unused variable warnings.

diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c
index 14a0824..4282357 100644
--- a/src/gallium/drivers/r300/r300_flush.c
+++ b/src/gallium/drivers/r300/r300_flush.c
@@ -39,6 +39,7 @@ static void r300_flush(struct pipe_context* pipe,
     struct r300_query *query;
 
     CS_LOCALS(r300);
+    (void) cs_count;
     /* We probably need to flush Draw, but we may have been called from
      * within Draw. This feels kludgy, but it might be the best thing.
      *
diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c
index 7166694..55430a9 100644
--- a/src/gallium/drivers/r300/r300_state_derived.c
+++ b/src/gallium/drivers/r300/r300_state_derived.c
@@ -464,7 +464,7 @@ static void r300_update_rs_block(struct r300_context* r300,
 /* Update the vertex format. */
 static void r300_update_derived_shader_state(struct r300_context* r300)
 {
-    struct r300_screen* r300screen = r300_screen(r300->context.screen);
+    /* struct r300_screen* r300screen = r300_screen(r300->context.screen); */
     struct r300_vertex_info* vformat;
     struct r300_rs_block* rs_block;
     int i;

commit 20d6360db7ca8610e5958cd7f851e664d77684fc
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 20:22:17 2010 -0800

    tgsi: Silence uninitialized variable warnings.

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index b7569e7..146000a 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -1209,11 +1209,19 @@ fetch_src_file_channel(
 
       default:
          assert( 0 );
+         chan->u[0] = 0;
+         chan->u[1] = 0;
+         chan->u[2] = 0;
+         chan->u[3] = 0;
       }
       break;
 
    default:
       assert( 0 );
+      chan->u[0] = 0;
+      chan->u[1] = 0;
+      chan->u[2] = 0;
+      chan->u[3] = 0;
    }
 }
 

commit de37a00d271fc4ab919c3c715322018c0b76369f
Author: Jakob Bornecrantz <jakob@vmware.com>
Date:   Tue Jan 5 17:51:02 2010 +0100

    util: Add u_bitmask to make build

diff --git a/src/gallium/auxiliary/util/Makefile b/src/gallium/auxiliary/util/Makefile
index 1d8bb55..7e47ec6 100644
--- a/src/gallium/auxiliary/util/Makefile
+++ b/src/gallium/auxiliary/util/Makefile
@@ -9,6 +9,7 @@ C_SOURCES = \
 	u_debug_symbol.c \
 	u_debug_stack.c \
 	u_blit.c \
+	u_bitmask.c \
 	u_cache.c \
 	u_cpu_detect.c \
 	u_draw_quad.c \

commit 674c76310fe93dd3d7a15af0f72bb9f04351d09f
Author: Dan Nicholson <dbn.lists@gmail.com>
Date:   Fri Jan 8 05:59:55 2010 -0800

    mesa: Ensure libmesagallium.a is finished building before descending
    
    Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>

diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index 6f58ad6..96b4ff8 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -43,7 +43,7 @@ libglapi.a: $(GLAPI_OBJECTS)
 
 ######################################################################
 # Device drivers
-driver_subdirs: libmesa.a libglapi.a
+driver_subdirs: libmesa.a libglapi.a libmesagallium.a
 	@ (cd drivers && $(MAKE))
 
 

commit 3c42e403de9da2abd46cd0d15de107250866859d
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 8 01:13:46 2010 -0800

    r300: Move initial declaration outside for loop.

diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program.c b/src/mesa/drivers/dri/r300/compiler/radeon_program.c
index 0dbc538..a3c41d7 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program.c
@@ -94,10 +94,11 @@ unsigned int rc_find_free_temporary(struct radeon_compiler * c)
 {
 	char used[RC_REGISTER_MAX_INDEX];
 	unsigned int i;
+	struct rc_instruction * rcinst;
 
 	memset(used, 0, sizeof(used));
 
-	for (struct rc_instruction * rcinst = c->Program.Instructions.Next; rcinst != &c->Program.Instructions; rcinst = rcinst->Next) {
+	for (rcinst = c->Program.Instructions.Next; rcinst != &c->Program.Instructions; rcinst = rcinst->Next) {
 		const struct rc_sub_instruction *inst = &rcinst->U.I;
 		const struct rc_opcode_info *opcode = rc_get_opcode_info(inst->Opcode);
 		unsigned int k;
@@ -168,8 +169,9 @@ void rc_remove_instruction(struct rc_instruction * inst)
 unsigned int rc_recompute_ips(struct radeon_compiler * c)
 {
 	unsigned int ip = 0;
+	struct rc_instruction * inst;
 
-	for(struct rc_instruction * inst = c->Program.Instructions.Next;
+	for(inst = c->Program.Instructions.Next;
 	    inst != &c->Program.Instructions;
 	    inst = inst->Next) {
 		inst->IP = ip++;

commit 5dd9e23d6204e6ec36468d4ae99e630c782c1cc9
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Jan 7 14:55:27 2010 -0700

    docs: document Gallium SSE codegen for XPD bug fix

diff --git a/docs/relnotes-7.7.1.html b/docs/relnotes-7.7.1.html
index ce9c68f..b20c8a7 100644
--- a/docs/relnotes-7.7.1.html
+++ b/docs/relnotes-7.7.1.html
@@ -42,6 +42,7 @@ tbd
 <li>Fixed broken blending to multiple color buffers in swrast driver.
 <li>Allocate constants more tightly in GL_ARB_vertex/fragment parser.
 <li>Fixed mipmap generation bug caused by invalid viewport state.
+<li>Gallium SSE codegen for XPD didn't always work.
 </ul>
 
 

commit 8647aa1d8d8ffce7ae3b00e7e277be635124acad
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Jan 7 14:49:12 2010 -0700

    tgsi: fix SSE code emit for XPD
    
    Rearrange things so that the writes to the dest registers happen
    after we've fetched/used all src registers.
    
    The problematic instruction was:  XPD TEMP[2].xyz, TEMP[0], TEMP[2];
    Note that the dst reg is also a src reg.
    
    This fixes bad shading with progs/glsl/bump.c since Eric's changes to the
    Mesa program optimizer in commit d6690ce15fb8c7c6abf1bc0d847c1d2da2c33904.
    The optimizer rearranges some registers so we occasionally wind up with
    something like the above.

diff --git a/src/gallium/auxiliary/tgsi/tgsi_sse2.c b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
index a96fc94..2c39def 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_sse2.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
@@ -2142,40 +2142,50 @@ emit_instruction(
       break;
 
    case TGSI_OPCODE_XPD:
+      /* Note: we do all stores after all operands have been fetched
+       * to avoid src/dst register aliasing issues for an instruction
+       * such as:  XPD TEMP[2].xyz, TEMP[0], TEMP[2];
+       */
       if( IS_DST0_CHANNEL_ENABLED( *inst, CHAN_X ) ||
           IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Y ) ) {
-         FETCH( func, *inst, 1, 1, CHAN_Z );
-         FETCH( func, *inst, 3, 0, CHAN_Z );
+         FETCH( func, *inst, 1, 1, CHAN_Z ); /* xmm[1] = src[1].z */
+         FETCH( func, *inst, 3, 0, CHAN_Z ); /* xmm[3] = src[0].z */
       }
       if( IS_DST0_CHANNEL_ENABLED( *inst, CHAN_X ) ||
           IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Z ) ) {
-         FETCH( func, *inst, 0, 0, CHAN_Y );
-         FETCH( func, *inst, 4, 1, CHAN_Y );
+         FETCH( func, *inst, 0, 0, CHAN_Y ); /* xmm[0] = src[0].y */
+         FETCH( func, *inst, 4, 1, CHAN_Y ); /* xmm[4] = src[1].y */
       }
       IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_X ) {
-         emit_MOV( func, 2, 0 );
-         emit_mul( func, 2, 1 );
-         emit_MOV( func, 5, 3 );
-         emit_mul( func, 5, 4 );
-         emit_sub( func, 2, 5 );
-         STORE( func, *inst, 2, 0, CHAN_X );
+         emit_MOV( func, 7, 0 );  /* xmm[7] = xmm[0] */
+         emit_mul( func, 7, 1 );  /* xmm[7] = xmm[2] * xmm[1] */
+         emit_MOV( func, 5, 3 );  /* xmm[5] = xmm[3] */
+         emit_mul( func, 5, 4 );  /* xmm[5] = xmm[5] * xmm[4] */
+         emit_sub( func, 7, 5 );  /* xmm[7] = xmm[2] - xmm[5] */
+         /* store xmm[7] in dst.x below */
       }
       if( IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Y ) ||
           IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Z ) ) {
-         FETCH( func, *inst, 2, 1, CHAN_X );
-         FETCH( func, *inst, 5, 0, CHAN_X );
+         FETCH( func, *inst, 2, 1, CHAN_X ); /* xmm[2] = src[1].x */
+         FETCH( func, *inst, 5, 0, CHAN_X ); /* xmm[5] = src[0].x */
       }
       IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Y ) {
-         emit_mul( func, 3, 2 );
-         emit_mul( func, 1, 5 );
-         emit_sub( func, 3, 1 );
-         STORE( func, *inst, 3, 0, CHAN_Y );
+         emit_mul( func, 3, 2 );  /* xmm[3] = xmm[3] * xmm[2] */
+         emit_mul( func, 1, 5 );  /* xmm[1] = xmm[1] * xmm[5] */
+         emit_sub( func, 3, 1 );  /* xmm[3] = xmm[3] - xmm[1] */
+         /* store xmm[3] in dst.y below */
       }
       IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Z ) {
-         emit_mul( func, 5, 4 );
-         emit_mul( func, 0, 2 );
-         emit_sub( func, 5, 0 );
-         STORE( func, *inst, 5, 0, CHAN_Z );
+         emit_mul( func, 5, 4 );  /* xmm[5] = xmm[5] * xmm[4] */
+         emit_mul( func, 0, 2 );  /* xmm[0] = xmm[0] * xmm[2] */
+         emit_sub( func, 5, 0 );  /* xmm[5] = xmm[5] - xmm[0] */
+         STORE( func, *inst, 5, 0, CHAN_Z ); /* dst.z = xmm[5] */
+      }
+      IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_X ) {
+         STORE( func, *inst, 7, 0, CHAN_X ); /* dst.x = xmm[7] */
+      }
+      IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Y ) {
+         STORE( func, *inst, 3, 0, CHAN_Y ); /* dst.y = xmm[3] */
       }
       IF_IS_DST0_CHANNEL_ENABLED( *inst, CHAN_W ) {
 	 emit_tempf(

commit 2b7a4b2c0e9b18ed985b0eda34723d53bc2a305b
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Jan 7 08:22:37 2010 -0700

    progs/fp: remove invalid tri-inv.c test
    
    INV is not a valid instruction.

diff --git a/progs/fp/Makefile b/progs/fp/Makefile
index d77cd32..681928c 100755
--- a/progs/fp/Makefile
+++ b/progs/fp/Makefile
@@ -17,7 +17,6 @@ SOURCES = \
 	tri-depth2.c \
 	tri-depthwrite.c \
 	tri-depthwrite2.c \
-	tri-inv.c \
         tri-param.c \
         fp-tri.c
 
diff --git a/progs/fp/SConscript b/progs/fp/SConscript
index a783185..69614e1 100644
--- a/progs/fp/SConscript
+++ b/progs/fp/SConscript
@@ -17,7 +17,6 @@ progs = [
     'tri-depth2',
     'tri-depthwrite',
     'tri-depthwrite2',
-    'tri-inv',
     'tri-param',
     'tri-tex',
     'point-position',
diff --git a/progs/fp/tri-inv.c b/progs/fp/tri-inv.c
deleted file mode 100644
index 7e490fa..0000000
--- a/progs/fp/tri-inv.c
+++ /dev/null
@@ -1,111 +0,0 @@
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-
-
-
-static void Init( void )
-{
-   static const char *modulate2D =
-      "!!ARBfp1.0\n"
-      "TEMP R0;\n"
-      "INV result.color, fragment.color; \n"
-      "END"
-      ;
-   GLuint modulateProg;
-
-   if (!GLEW_ARB_fragment_program) {
-      printf("Error: GL_ARB_fragment_program not supported!\n");
-      exit(1);
-   }
-   printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
-
-   /* Setup the fragment program */
-   glGenProgramsARB(1, &modulateProg);
-   glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
-   glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
-                        strlen(modulate2D), (const GLubyte *)modulate2D);
-
-   printf("glGetError = 0x%x\n", (int) glGetError());
-   printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
-          (char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
-
-   glEnable(GL_FRAGMENT_PROGRAM_ARB);
-
-   glClearColor(.3, .3, .3, 0);
-}
-
-static void Reshape(int width, int height)
-{
-
-    glViewport(0, 0, (GLint)width, (GLint)height);
-
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-    glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
-    glMatrixMode(GL_MODELVIEW);
-}
-
-static void Key(unsigned char key, int x, int y)
-{
-
-    switch (key) {
-      case 27:
-	exit(1);
-      default:
-	break;
-    }
-
-    glutPostRedisplay();
-}
-
-static void Draw(void)
-{
-   glClear(GL_COLOR_BUFFER_BIT); 
-
-   glBegin(GL_TRIANGLES);
-   glColor3f(0,0,1); 
-   glVertex3f( 0.9, -0.9, -30.0);
-   glColor3f(1,0,0); 
-   glVertex3f( 0.9,  0.9, -30.0);
-   glColor3f(0,1,0); 
-   glVertex3f(-0.9,  0.0, -30.0);
-   glEnd();
-
-   glFlush();
-
-
-}
-
-
-int main(int argc, char **argv)
-{
-    GLenum type;
-
-    glutInit(&argc, argv);
-
-
-
-    glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
-
-    type = GLUT_RGB;
-    type |= GLUT_SINGLE;
-    glutInitDisplayMode(type);
-
-    if (glutCreateWindow("First Tri") == GL_FALSE) {
-	exit(1);
-    }
-
-    glewInit();
-
-    Init();
-
-    glutReshapeFunc(Reshape);
-    glutKeyboardFunc(Key);
-    glutDisplayFunc(Draw);
-    glutMainLoop();
-	return 0;
-}

commit d42467687e9de756aa3e4bca5e55f69391af3065
Author: Vinson Lee <vlee@vmware.com>
Date:   Wed Jan 6 21:39:44 2010 -0800

    progs/demos: Assert that input to malloc is valid.

diff --git a/progs/demos/fire.c b/progs/demos/fire.c
index dd70f61..f30b893 100644
--- a/progs/demos/fire.c
+++ b/progs/demos/fire.c
@@ -6,6 +6,7 @@
  *            Humanware s.r.l.
  */
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
@@ -759,6 +760,7 @@ main(int ac, char **av)
    glFogfv(GL_FOG_COLOR, fogcolor);
    glFogf(GL_FOG_DENSITY, 0.1);
 
+   assert(np > 0);
    p = (part *) malloc(sizeof(part) * np);
 
    for (i = 0; i < np; i++)


Reply to: