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: