From 5d3d202ac991bd1a67ba40f4be145621b35620fe Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 14:39:16 -0800 Subject: [PATCH 01/56] glu/sgi: Initialize member of struct Property. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index 3f259c777b5..e5ec1827dbf 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -125,7 +125,7 @@ struct Property : public PooledObj { Property( long _type, long _tag, INREAL _value ) { type = _type; tag = _tag; value = (REAL) _value; } Property( long _tag, INREAL _value ) - { type = 0; tag = _tag; value = (REAL) _value; } + { type = 0; tag = _tag; value = (REAL) _value; save = 0; } }; class NurbsTessellator; From a349687d499a76496dc9433d5437398f774f0bd4 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 14:46:11 -0800 Subject: [PATCH 02/56] glu/sgi: Initialize members of class Knotvector. --- src/glu/sgi/libnurbs/internals/knotvector.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/glu/sgi/libnurbs/internals/knotvector.cc b/src/glu/sgi/libnurbs/internals/knotvector.cc index 9eb5cbace94..dcbf0067d85 100644 --- a/src/glu/sgi/libnurbs/internals/knotvector.cc +++ b/src/glu/sgi/libnurbs/internals/knotvector.cc @@ -61,6 +61,9 @@ void Knotvector::init( long _knotcount, long _stride, long _order, INREAL *_knot Knotvector::Knotvector( void ) { + knotcount = 0; + stride = 0; + order = 0; knotlist = 0; } From 7df06e7e9d5d5ac0a5a2fa0af11afa7f5241c5a4 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 15:01:22 -0800 Subject: [PATCH 03/56] gallium/util: Replace h_addr with h_addr_list[0]. Fixes compilation error on Mac OS. --- src/gallium/auxiliary/util/u_network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/util/u_network.c b/src/gallium/auxiliary/util/u_network.c index 9eb8f309cd1..87ee0e47685 100644 --- a/src/gallium/auxiliary/util/u_network.c +++ b/src/gallium/auxiliary/util/u_network.c @@ -117,7 +117,7 @@ u_socket_connect(const char *hostname, uint16_t port) if (!host) return -1; - memcpy((char *)&sa.sin_addr,host->h_addr,host->h_length); + memcpy((char *)&sa.sin_addr,host->h_addr_list[0],host->h_length); sa.sin_family= host->h_addrtype; sa.sin_port = htons(port); From 88bd32383a06224c742f6af59fcd95cd11284d5b Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 15:12:58 -0800 Subject: [PATCH 04/56] ARB prog parser: Silence unused variable warnings. --- src/mesa/shader/program_parse.y | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 3f1a350c24d..b40b216d658 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -2297,7 +2297,9 @@ set_dst_reg(struct prog_dst_register *r, gl_register_file file, GLint index) const GLint maxIndex = 1 << INST_INDEX_BITS; const GLint minIndex = 0; ASSERT(index >= minIndex); + (void) minIndex; ASSERT(index <= maxIndex); + (void) maxIndex; ASSERT(file == PROGRAM_TEMPORARY || file == PROGRAM_ADDRESS || file == PROGRAM_OUTPUT); @@ -2338,7 +2340,9 @@ set_src_reg_swz(struct asm_src_register *r, gl_register_file file, GLint index, const GLint minIndex = -(1 << INST_INDEX_BITS); ASSERT(file < PROGRAM_FILE_MAX); ASSERT(index >= minIndex); + (void) minIndex; ASSERT(index <= maxIndex); + (void) maxIndex; memset(r, 0, sizeof(*r)); r->Base.File = file; r->Base.Index = index; From dac82c378a94f0f42bef3f7e33e11e4eafb9872b Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 15:32:52 -0800 Subject: [PATCH 05/56] gallium/util: Silence format warnings. --- src/gallium/auxiliary/util/u_debug_memory.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_debug_memory.c b/src/gallium/auxiliary/util/u_debug_memory.c index 7623cb93981..d6484f4ad51 100644 --- a/src/gallium/auxiliary/util/u_debug_memory.c +++ b/src/gallium/auxiliary/util/u_debug_memory.c @@ -297,9 +297,9 @@ debug_memory_end(unsigned long start_no) if((start_no <= hdr->no && hdr->no < last_no) || (last_no < start_no && (hdr->no < last_no || start_no <= hdr->no))) { - debug_printf("%s:%u:%s: %u bytes at %p not freed\n", + debug_printf("%s:%u:%s: %lu bytes at %p not freed\n", hdr->file, hdr->line, hdr->function, - hdr->size, ptr); + (unsigned long) hdr->size, ptr); #if DEBUG_MEMORY_STACK debug_backtrace_dump(hdr->backtrace, DEBUG_MEMORY_STACK); #endif @@ -315,8 +315,8 @@ debug_memory_end(unsigned long start_no) } if(total_size) { - debug_printf("Total of %u KB of system memory apparently leaked\n", - (total_size + 1023)/1024); + debug_printf("Total of %lu KB of system memory apparently leaked\n", + (unsigned long) (total_size + 1023)/1024); } else { debug_printf("No memory leaks detected.\n"); From fd237a879fdc70cb070aa8be0f01a7b31d8207c6 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 15:38:19 -0800 Subject: [PATCH 06/56] llvmpipe: Use C-style comment. --- src/gallium/drivers/llvmpipe/lp_test_conv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_test_conv.c b/src/gallium/drivers/llvmpipe/lp_test_conv.c index 968c7a2d4aa..faddfb96779 100644 --- a/src/gallium/drivers/llvmpipe/lp_test_conv.c +++ b/src/gallium/drivers/llvmpipe/lp_test_conv.c @@ -330,7 +330,7 @@ test_one(unsigned verbose, fprintf(stderr, "conv.bc written\n"); fprintf(stderr, "Invoke as \"llc -o - conv.bc\"\n"); firsttime = FALSE; - //abort(); + /* abort(); */ } } From 3ae37da6116d7a703b2752fd7978caad79ecfcf2 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 16:03:53 -0800 Subject: [PATCH 07/56] llvmpipe: Silence uninitialized variable warning. --- src/gallium/drivers/llvmpipe/lp_tex_sample_c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample_c.c b/src/gallium/drivers/llvmpipe/lp_tex_sample_c.c index a1365a045f1..699394c0deb 100644 --- a/src/gallium/drivers/llvmpipe/lp_tex_sample_c.c +++ b/src/gallium/drivers/llvmpipe/lp_tex_sample_c.c @@ -1085,7 +1085,7 @@ lp_get_samples_2d_common(struct tgsi_sampler *tgsi_sampler, const struct pipe_sampler_state *sampler = samp->sampler; unsigned level0, level1, j, imgFilter; int width, height; - float levelBlend; + float levelBlend = 0.0F; choose_mipmap_levels(tgsi_sampler, s, t, p, lodbias, From ad9defdd9c5c7a18c833cdacebe012604190f167 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 16:25:37 -0800 Subject: [PATCH 08/56] progs/rbug: s/wait/rbug_wait/ wait conflicts with wait in /usr/include/sys/wait.h. --- progs/rbug/simple_server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/progs/rbug/simple_server.c b/progs/rbug/simple_server.c index 04380c33109..3a842c06c4e 100644 --- a/progs/rbug/simple_server.c +++ b/progs/rbug/simple_server.c @@ -29,7 +29,7 @@ #include "rbug/rbug.h" -static void wait() +static void rbug_wait() { int s = u_socket_listen_on_port(13370); int c = u_socket_accept(s); @@ -57,6 +57,6 @@ static void wait() int main(int argc, char** argv) { - wait(); + rbug_wait(); return 0; } From fab161f28739c397200e1ad3b6ad2a26409c95bf Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 17:06:16 -0800 Subject: [PATCH 09/56] x86: Silence printf format warnings. --- src/mesa/x86/gen_matypes.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/mesa/x86/gen_matypes.c b/src/mesa/x86/gen_matypes.c index d56b701aa8c..771d9df0821 100644 --- a/src/mesa/x86/gen_matypes.c +++ b/src/mesa/x86/gen_matypes.c @@ -61,21 +61,11 @@ do { \ printf( "\n" ); \ } while (0) -#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64) #define OFFSET( s, t, m ) \ - printf( "#define %s\t%ld\n", s, offsetof( t, m ) ); -#else -#define OFFSET( s, t, m ) \ - printf( "#define %s\t%d\n", s, offsetof( t, m ) ); -#endif + printf( "#define %s\t%lu\n", s, (unsigned long) offsetof( t, m ) ); -#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64) #define SIZEOF( s, t ) \ - printf( "#define %s\t%ld\n", s, sizeof(t) ); -#else -#define SIZEOF( s, t ) \ - printf( "#define %s\t%d\n", s, sizeof(t) ); -#endif + printf( "#define %s\t%lu\n", s, (unsigned long) sizeof(t) ); #define DEFINE( s, d ) \ printf( "#define %s\t0x%x\n", s, d ); From 64a19610112efdbde9daa81b742a081832d186e9 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 17:19:27 -0800 Subject: [PATCH 10/56] glu/sgi: Initialize members of struct O_nurbscurve. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index e5ec1827dbf..faa26101cf3 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -77,7 +77,7 @@ struct O_nurbscurve : public PooledObj { int save; /* 1 if in display list */ O_curve * owner; /* owning curve */ O_nurbscurve( long _type ) - { type = _type; owner = 0; next = 0; used = 0; } + { bezier_curves = 0; type = _type; tesselation = 0; method = 0; next = 0; used = 0; save = 0; owner = 0; } }; class O_pwlcurve : public PooledObj { From 2c64e4c50eaf7c3dd0cc95edbca1d31316baac3a Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 17:25:16 -0800 Subject: [PATCH 11/56] glu/sgi: Initialize member of struct Dlnode. --- src/glu/sgi/libnurbs/internals/displaylist.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/glu/sgi/libnurbs/internals/displaylist.h b/src/glu/sgi/libnurbs/internals/displaylist.h index 22cbec37870..d009a42513e 100644 --- a/src/glu/sgi/libnurbs/internals/displaylist.h +++ b/src/glu/sgi/libnurbs/internals/displaylist.h @@ -59,6 +59,7 @@ Dlnode::Dlnode( PFVS _work, void *_arg, PFVS _cleanup ) work = _work; arg = _arg; cleanup = _cleanup; + next = 0; } class DisplayList { From 646c8ce03217dbda87fd1f5aedddd3f75a477754 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 17:54:11 -0800 Subject: [PATCH 12/56] progs/samples: 'Silence no previous prototype' warnings. --- progs/samples/olympic.c | 20 ++++++++++---------- progs/samples/overlay.c | 18 +++++++++--------- progs/samples/rgbtoppm.c | 6 +++--- progs/samples/sphere.c | 30 +++++++++++++++--------------- progs/samples/star.c | 20 ++++++++++---------- progs/samples/stretch.c | 20 ++++++++++---------- progs/samples/wave.c | 2 +- 7 files changed, 58 insertions(+), 58 deletions(-) diff --git a/progs/samples/olympic.c b/progs/samples/olympic.c index 5385e487026..209a8c141b2 100644 --- a/progs/samples/olympic.c +++ b/progs/samples/olympic.c @@ -74,7 +74,7 @@ int iters[RINGS]; GLuint theTorus; -void FillTorus(float rc, int numc, float rt, int numt) +static void FillTorus(float rc, int numc, float rt, int numt) { int i, j, k; double s, t; @@ -106,7 +106,7 @@ void FillTorus(float rc, int numc, float rt, int numt) } } -float Clamp(int iters_left, float t) +static float Clamp(int iters_left, float t) { if (iters_left < 3) { return 0.0; @@ -114,7 +114,7 @@ float Clamp(int iters_left, float t) return (iters_left-2)*t/iters_left; } -void DrawScene(void) +static void DrawScene(void) { int i, j; GLboolean goIdle; @@ -172,7 +172,7 @@ void DrawScene(void) } } -float MyRand(void) +static float MyRand(void) { return 10.0 * ( (float) rand() / (float) RAND_MAX - 0.5 ); } @@ -181,12 +181,12 @@ float MyRand(void) #define GLUTCALLBACK #endif -void GLUTCALLBACK glut_post_redisplay_p(void) +static void GLUTCALLBACK glut_post_redisplay_p(void) { glutPostRedisplay(); } -void ReInit(void) +static void ReInit(void) { int i; float deviation; @@ -206,7 +206,7 @@ void ReInit(void) glutIdleFunc(glut_post_redisplay_p); } -void Init(void) +static void Init(void) { float base, height; float aspect, x, y; @@ -312,13 +312,13 @@ void Init(void) glMatrixMode(GL_MODELVIEW); } -void Reshape(int width, int height) +static void Reshape(int width, int height) { glViewport(0, 0, width, height); } -void Key(unsigned char key, int x, int y) +static void Key(unsigned char key, int x, int y) { switch (key) { @@ -330,7 +330,7 @@ void Key(unsigned char key, int x, int y) } } -GLenum Args(int argc, char **argv) +static GLenum Args(int argc, char **argv) { GLint i; diff --git a/progs/samples/overlay.c b/progs/samples/overlay.c index 23b5a4793ba..6087cef2815 100644 --- a/progs/samples/overlay.c +++ b/progs/samples/overlay.c @@ -69,19 +69,19 @@ starRec stars[MAXSTARS]; float sinTable[MAXANGLES]; -float Sin(float angle) +static float Sin(float angle) { return (sinTable[(GLint)angle]); } -float Cos(float angle) +static float Cos(float angle) { return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]); } -void NewStar(GLint n, GLint d) +static void NewStar(GLint n, GLint d) { if (rand()%4 == 0) { @@ -103,7 +103,7 @@ void NewStar(GLint n, GLint d) } } -void RotatePoint(float *x, float *y, float rotation) +static void RotatePoint(float *x, float *y, float rotation) { float tmpX, tmpY; @@ -113,7 +113,7 @@ void RotatePoint(float *x, float *y, float rotation) *y = tmpY; } -void MoveStars(void) +static void MoveStars(void) { float offset; GLint n; @@ -134,7 +134,7 @@ void MoveStars(void) } } -GLenum StarPoint(GLint n) +static GLenum StarPoint(GLint n) { float x0, y0, x1, y1, width; GLint i; @@ -182,7 +182,7 @@ GLenum StarPoint(GLint n) } } -void ShowStars(void) +static void ShowStars(void) { GLint n; @@ -221,7 +221,7 @@ static void Init(void) glDisable(GL_DITHER); } -void Reshape(int width, int height) +static void Reshape(int width, int height) { windW = (GLint)width; @@ -262,7 +262,7 @@ static void Key(unsigned char key, int x, int y) } } -void Idle(void) +static void Idle(void) { if (overlayInit == GL_FALSE) { diff --git a/progs/samples/rgbtoppm.c b/progs/samples/rgbtoppm.c index dcb74228dff..adc91469e56 100644 --- a/progs/samples/rgbtoppm.c +++ b/progs/samples/rgbtoppm.c @@ -25,7 +25,7 @@ typedef struct _ImageRec { int *rowSize; } ImageRec; -void +static void rgbtorgb(unsigned char *r,unsigned char *g,unsigned char *b,unsigned char *l,int n) { while(n--) { l[0] = r[0]; @@ -170,7 +170,7 @@ ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) { } } -GLubyte * +static GLubyte * read_alpha_texture(char *name, int *width, int *height) { unsigned char *base, *lptr; @@ -200,7 +200,7 @@ read_alpha_texture(char *name, int *width, int *height) return (unsigned char *) base; } -GLubyte * +static GLubyte * read_rgb_texture(char *name, int *width, int *height) { unsigned char *base, *ptr; diff --git a/progs/samples/sphere.c b/progs/samples/sphere.c index 7d0508dee9f..23d4fe32c02 100644 --- a/progs/samples/sphere.c +++ b/progs/samples/sphere.c @@ -445,7 +445,7 @@ GLfloat identity[16] = { }; -void BuildCylinder(int numEdges) +static void BuildCylinder(int numEdges) { int i, top = 1.0, bottom = -1.0; float x[100], y[100], angle; @@ -481,7 +481,7 @@ void BuildCylinder(int numEdges) glEndList(); } -void BuildTorus(float rc, int numc, float rt, int numt) +static void BuildTorus(float rc, int numc, float rt, int numt) { int i, j, k; double s, t; @@ -515,7 +515,7 @@ void BuildTorus(float rc, int numc, float rt, int numt) glEndList(); } -void BuildCage(void) +static void BuildCage(void) { int i; float inc; @@ -609,7 +609,7 @@ void BuildCage(void) glEndList(); } -void BuildCube(void) +static void BuildCube(void) { int i, j; @@ -628,7 +628,7 @@ void BuildCube(void) glEndList(); } -void BuildLists(void) +static void BuildLists(void) { cube = glGenLists(1); @@ -646,7 +646,7 @@ void BuildLists(void) genericObject = torus; } -void SetDefaultSettings(void) +static void SetDefaultSettings(void) { magFilter = nnearest; @@ -657,7 +657,7 @@ void SetDefaultSettings(void) autoRotate = GL_TRUE; } -unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha) +static unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha) { unsigned char *outData, *out_ptr, *in_ptr; int i; @@ -677,7 +677,7 @@ unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha) return outData; } -void Init(void) +static void Init(void) { float ambient[] = {0.0, 0.0, 0.0, 1.0}; float diffuse[] = {1.0, 1.0, 1.0, 1.0}; @@ -753,7 +753,7 @@ void Init(void) BuildLists(); } -void ReInit(void) +static void ReInit(void) { if (genericObject == torus) { glEnable(GL_DEPTH_TEST); @@ -773,7 +773,7 @@ void ReInit(void) glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, textureEnvironment); } -void Draw(void) +static void Draw(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); @@ -806,7 +806,7 @@ void Draw(void) glutSwapBuffers(); } -void Reshape(int width, int height) +static void Reshape(int width, int height) { W = width; H = height; @@ -818,7 +818,7 @@ void Reshape(int width, int height) glMatrixMode(GL_MODELVIEW); } -void Idle(void) +static void Idle(void) { static double t0 = -1.; double t, dt; @@ -833,7 +833,7 @@ void Idle(void) glutPostRedisplay(); } -void Key2(int key, int x, int y) +static void Key2(int key, int x, int y) { switch (key) { @@ -863,7 +863,7 @@ void Key2(int key, int x, int y) glutPostRedisplay(); } -void Key(unsigned char key, int x, int y) +static void Key(unsigned char key, int x, int y) { switch (key) { @@ -950,7 +950,7 @@ void Key(unsigned char key, int x, int y) glutPostRedisplay(); } -GLenum Args(int argc, char **argv) +static GLenum Args(int argc, char **argv) { GLint i; diff --git a/progs/samples/star.c b/progs/samples/star.c index 2cf470e2a2f..2c44ebfd49e 100644 --- a/progs/samples/star.c +++ b/progs/samples/star.c @@ -67,19 +67,19 @@ starRec stars[MAXSTARS]; float sinTable[MAXANGLES]; -float Sin(float angle) +static float Sin(float angle) { return (sinTable[(GLint)angle]); } -float Cos(float angle) +static float Cos(float angle) { return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]); } -void NewStar(GLint n, GLint d) +static void NewStar(GLint n, GLint d) { if (rand()%4 == 0) { @@ -101,7 +101,7 @@ void NewStar(GLint n, GLint d) } } -void RotatePoint(float *x, float *y, float rotation) +static void RotatePoint(float *x, float *y, float rotation) { float tmpX, tmpY; @@ -111,7 +111,7 @@ void RotatePoint(float *x, float *y, float rotation) *y = tmpY; } -void MoveStars(void) +static void MoveStars(void) { float offset; GLint n; @@ -142,7 +142,7 @@ void MoveStars(void) } } -GLenum StarPoint(GLint n) +static GLenum StarPoint(GLint n) { float x0, y0, x1, y1, width; GLint i; @@ -190,7 +190,7 @@ GLenum StarPoint(GLint n) } } -void ShowStars(void) +static void ShowStars(void) { GLint n; @@ -229,7 +229,7 @@ static void Init(void) glDisable(GL_DITHER); } -void Reshape(int width, int height) +static void Reshape(int width, int height) { windW = (GLint)width; @@ -260,7 +260,7 @@ static void Key(unsigned char key, int x, int y) } } -void Draw(void) +static void Draw(void) { MoveStars(); @@ -307,7 +307,7 @@ static GLenum Args(int argc, char **argv) #define GLUTCALLBACK #endif -void GLUTCALLBACK glut_post_redisplay_p(void) +static void GLUTCALLBACK glut_post_redisplay_p(void) { glutPostRedisplay(); } diff --git a/progs/samples/stretch.c b/progs/samples/stretch.c index 1fd015d794a..11201dca230 100644 --- a/progs/samples/stretch.c +++ b/progs/samples/stretch.c @@ -67,7 +67,7 @@ int cCount, cIndex[2], cStep; GLenum op = OP_NOOP; -void DrawImage(void) +static void DrawImage(void) { glRasterPos2i(0, 0); @@ -84,7 +84,7 @@ void DrawImage(void) image->data); } -void DrawPoint(void) +static void DrawPoint(void) { int i; @@ -102,7 +102,7 @@ void DrawPoint(void) } } -void InitVList(void) +static void InitVList(void) { vList[0].x = 0.0; @@ -141,7 +141,7 @@ void InitVList(void) vList[4].tY = cList[0].y / (float)imageSizeY; } -void ScaleImage(int sizeX, int sizeY) +static void ScaleImage(int sizeX, int sizeY) { GLubyte *buf; @@ -154,7 +154,7 @@ void ScaleImage(int sizeX, int sizeY) image->sizeY = sizeY; } -void SetPoint(int x, int y) +static void SetPoint(int x, int y) { cList[cCount].x = (float)x; @@ -162,7 +162,7 @@ void SetPoint(int x, int y) cCount++; } -void Stretch(void) +static void Stretch(void) { glBegin(GL_TRIANGLES); @@ -221,7 +221,7 @@ void Stretch(void) } } -void Key(unsigned char key, int x, int y) +static void Key(unsigned char key, int x, int y) { switch (key) { @@ -245,7 +245,7 @@ void Key(unsigned char key, int x, int y) glutPostRedisplay(); } -void Mouse(int button, int state, int mouseX, int mouseY) +static void Mouse(int button, int state, int mouseX, int mouseY) { if (state != GLUT_DOWN) @@ -263,7 +263,7 @@ void Mouse(int button, int state, int mouseX, int mouseY) glutPostRedisplay(); } -void Animate(void) +static void Animate(void) { static double t0 = -1.; double t, dt; @@ -322,7 +322,7 @@ static GLenum Args(int argc, char **argv) #define GLUTCALLBACK #endif -void GLUTCALLBACK glut_post_redisplay_p(void) +static void GLUTCALLBACK glut_post_redisplay_p(void) { glutPostRedisplay(); } diff --git a/progs/samples/wave.c b/progs/samples/wave.c index d3c4687459e..396a6943e33 100644 --- a/progs/samples/wave.c +++ b/progs/samples/wave.c @@ -92,7 +92,7 @@ GLubyte contourTexture2[] = { #endif -void GLUTCALLBACK glut_post_redisplay_p(void) +static void GLUTCALLBACK glut_post_redisplay_p(void) { static double t0 = -1.; double t, dt; From 37e5626111ea99409d41af9581a3bc32a5d1519f Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Fri, 1 Jan 2010 23:01:03 -0800 Subject: [PATCH 13/56] glu/sgi: Initialize member of struct Property. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index faa26101cf3..48249466f36 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -123,7 +123,7 @@ struct Property : public PooledObj { REAL value; int save; /* 1 if in display list */ Property( long _type, long _tag, INREAL _value ) - { type = _type; tag = _tag; value = (REAL) _value; } + { type = _type; tag = _tag; value = (REAL) _value; save = 0; } Property( long _tag, INREAL _value ) { type = 0; tag = _tag; value = (REAL) _value; save = 0; } }; From ba9dc26eec0ee65ea3aa1d8f8f31731157f86fa0 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 15:29:25 -0800 Subject: [PATCH 14/56] glu/sgi: Initialize member of struct O_trim. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index 48249466f36..14f07d3c15a 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -95,7 +95,7 @@ struct O_trim : public PooledObj { O_curve *o_curve; /* closed trim loop */ O_trim * next; /* next loop along trim */ int save; /* 1 if in display list */ - O_trim() { next = 0; o_curve = 0; } + O_trim() { next = 0; o_curve = 0; save = 0; } }; struct O_nurbssurface : public PooledObj { From 386f91eec3f96cb8e28dfc6545a11e1d7dedc22b Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 15:46:11 -0800 Subject: [PATCH 15/56] glu/sgi: Initialize members of struct O_surface. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index 14f07d3c15a..3390ce80e99 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -114,7 +114,7 @@ struct O_surface : public PooledObj { O_trim * o_trim; /* list of trim loops */ int save; /* 1 if in display list */ long nuid; - O_surface() { o_trim = 0; o_nurbssurface = 0; } + O_surface() { o_trim = 0; o_nurbssurface = 0; save = 0; nuid = 0; } }; struct Property : public PooledObj { From da6a80301b2cfdc6902198e3fef5ec78e86e39cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 2 Jan 2010 21:46:42 +0000 Subject: [PATCH 16/56] svga: Rename error labels. Make it easier to insert/remove error branches. --- src/gallium/drivers/svga/svga_context.c | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gallium/drivers/svga/svga_context.c b/src/gallium/drivers/svga/svga_context.c index c3de12b4a39..3e7663d6e1a 100644 --- a/src/gallium/drivers/svga/svga_context.c +++ b/src/gallium/drivers/svga/svga_context.c @@ -130,7 +130,7 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen ) svga = CALLOC_STRUCT(svga_context); if (svga == NULL) - goto error1; + goto no_svga; svga->pipe.winsys = screen->winsys; svga->pipe.screen = screen; @@ -142,7 +142,7 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen ) svga->swc = svgascreen->sws->context_create(svgascreen->sws); if(!svga->swc) - goto error2; + goto no_swc; svga_init_blend_functions(svga); svga_init_blit_functions(svga); @@ -165,32 +165,32 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen ) svga->debug.disable_shader = debug_get_num_option("SVGA_DISABLE_SHADER", ~0); if (!svga_init_swtnl(svga)) - goto error3; + goto no_swtnl; svga->upload_ib = u_upload_create( svga->pipe.screen, 32 * 1024, 16, PIPE_BUFFER_USAGE_INDEX ); if (svga->upload_ib == NULL) - goto error4; + goto no_upload_ib; svga->upload_vb = u_upload_create( svga->pipe.screen, 128 * 1024, 16, PIPE_BUFFER_USAGE_VERTEX ); if (svga->upload_vb == NULL) - goto error5; + goto no_upload_vb; svga->hwtnl = svga_hwtnl_create( svga, svga->upload_ib, svga->swc ); if (svga->hwtnl == NULL) - goto error6; + goto no_hwtnl; ret = svga_emit_initial_state( svga ); if (ret) - goto error7; + goto no_state; /* Avoid shortcircuiting state with initial value of zero. */ @@ -209,19 +209,19 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen ) return &svga->pipe; -error7: +no_state: svga_hwtnl_destroy( svga->hwtnl ); -error6: +no_hwtnl: u_upload_destroy( svga->upload_vb ); -error5: +no_upload_vb: u_upload_destroy( svga->upload_ib ); -error4: +no_upload_ib: svga_destroy_swtnl(svga); -error3: +no_swtnl: svga->swc->destroy(svga->swc); -error2: +no_swc: FREE(svga); -error1: +no_svga: return NULL; } From 904917dcc67e15830a4fe106a243eb57dde985ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 3 Jan 2010 00:41:01 +0000 Subject: [PATCH 17/56] util: Minor enhancements/corrections to the bitmask logic. --- src/gallium/auxiliary/util/u_bitmask.c | 32 ++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/gallium/auxiliary/util/u_bitmask.c b/src/gallium/auxiliary/util/u_bitmask.c index 77587c07ec0..23c93a3ebcb 100644 --- a/src/gallium/auxiliary/util/u_bitmask.c +++ b/src/gallium/auxiliary/util/u_bitmask.c @@ -97,12 +97,12 @@ util_bitmask_resize(struct util_bitmask *bm, if(!minimum_size) return FALSE; - if(bm->size > minimum_size) + if(bm->size >= minimum_size) return TRUE; assert(bm->size % UTIL_BITMASK_BITS_PER_WORD == 0); new_size = bm->size; - while(!(new_size > minimum_size)) { + while(new_size < minimum_size) { new_size *= 2; /* Check integer overflow */ if(new_size < bm->size) @@ -136,7 +136,7 @@ util_bitmask_filled_set(struct util_bitmask *bm, unsigned index) { assert(bm->filled <= bm->size); - assert(index <= bm->size); + assert(index < bm->size); if(index == bm->filled) { ++bm->filled; @@ -149,7 +149,7 @@ util_bitmask_filled_unset(struct util_bitmask *bm, unsigned index) { assert(bm->filled <= bm->size); - assert(index <= bm->size); + assert(index < bm->size); if(index < bm->filled) bm->filled = index; @@ -182,7 +182,7 @@ util_bitmask_add(struct util_bitmask *bm) mask = 1; } found: - + /* grow the bitmask if necessary */ if(!util_bitmask_resize(bm, bm->filled)) return UTIL_BITMASK_INVALID_INDEX; @@ -198,9 +198,9 @@ unsigned util_bitmask_set(struct util_bitmask *bm, unsigned index) { - unsigned word = index / UTIL_BITMASK_BITS_PER_WORD; - unsigned bit = index % UTIL_BITMASK_BITS_PER_WORD; - util_bitmask_word mask = 1 << bit; + unsigned word; + unsigned bit; + util_bitmask_word mask; assert(bm); @@ -208,6 +208,10 @@ util_bitmask_set(struct util_bitmask *bm, if(!util_bitmask_resize(bm, index)) return UTIL_BITMASK_INVALID_INDEX; + word = index / UTIL_BITMASK_BITS_PER_WORD; + bit = index % UTIL_BITMASK_BITS_PER_WORD; + mask = 1 << bit; + bm->words[word] |= mask; util_bitmask_filled_set(bm, index); @@ -220,15 +224,19 @@ void util_bitmask_clear(struct util_bitmask *bm, unsigned index) { - unsigned word = index / UTIL_BITMASK_BITS_PER_WORD; - unsigned bit = index % UTIL_BITMASK_BITS_PER_WORD; - util_bitmask_word mask = 1 << bit; + unsigned word; + unsigned bit; + util_bitmask_word mask; assert(bm); if(index >= bm->size) return; + word = index / UTIL_BITMASK_BITS_PER_WORD; + bit = index % UTIL_BITMASK_BITS_PER_WORD; + mask = 1 << bit; + bm->words[word] &= ~mask; util_bitmask_filled_unset(bm, index); @@ -250,7 +258,7 @@ util_bitmask_get(struct util_bitmask *bm, return TRUE; } - if(index > bm->size) + if(index >= bm->size) return FALSE; if(bm->words[word] & mask) { From cdb445f3a9285e2d8f042a07021ade78b94e0156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 3 Jan 2010 00:47:30 +0000 Subject: [PATCH 18/56] svga: Use a shader id as low as possible. --- src/gallium/drivers/svga/svga_context.c | 16 +++++++++ src/gallium/drivers/svga/svga_context.h | 7 ++-- src/gallium/drivers/svga/svga_pipe_fs.c | 3 ++ src/gallium/drivers/svga/svga_pipe_vs.c | 3 ++ src/gallium/drivers/svga/svga_state_fs.c | 44 +++++++++++++++++------- src/gallium/drivers/svga/svga_state_vs.c | 27 ++++++++++----- src/gallium/drivers/svga/svga_tgsi.c | 2 ++ 7 files changed, 78 insertions(+), 24 deletions(-) diff --git a/src/gallium/drivers/svga/svga_context.c b/src/gallium/drivers/svga/svga_context.c index 3e7663d6e1a..af99c9de37c 100644 --- a/src/gallium/drivers/svga/svga_context.c +++ b/src/gallium/drivers/svga/svga_context.c @@ -29,6 +29,7 @@ #include "pipe/p_inlines.h" #include "pipe/p_screen.h" #include "util/u_memory.h" +#include "util/u_bitmask.h" #include "util/u_upload_mgr.h" #include "svga_context.h" @@ -61,6 +62,9 @@ static void svga_destroy( struct pipe_context *pipe ) u_upload_destroy( svga->upload_vb ); u_upload_destroy( svga->upload_ib ); + util_bitmask_destroy( svga->vs_bm ); + util_bitmask_destroy( svga->fs_bm ); + for(shader = 0; shader < PIPE_SHADER_TYPES; ++shader) pipe_buffer_reference( &svga->curr.cb[shader], NULL ); @@ -167,6 +171,14 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen ) if (!svga_init_swtnl(svga)) goto no_swtnl; + svga->fs_bm = util_bitmask_create(); + if (svga->fs_bm == NULL) + goto no_fs_bm; + + svga->vs_bm = util_bitmask_create(); + if (svga->vs_bm == NULL) + goto no_vs_bm; + svga->upload_ib = u_upload_create( svga->pipe.screen, 32 * 1024, 16, @@ -216,6 +228,10 @@ no_hwtnl: no_upload_vb: u_upload_destroy( svga->upload_ib ); no_upload_ib: + util_bitmask_destroy( svga->vs_bm ); +no_vs_bm: + util_bitmask_destroy( svga->fs_bm ); +no_fs_bm: svga_destroy_swtnl(svga); no_swtnl: svga->swc->destroy(svga->swc); diff --git a/src/gallium/drivers/svga/svga_context.h b/src/gallium/drivers/svga/svga_context.h index e650a251d19..eb666c2616b 100644 --- a/src/gallium/drivers/svga/svga_context.h +++ b/src/gallium/drivers/svga/svga_context.h @@ -41,6 +41,7 @@ struct draw_vertex_shader; struct svga_shader_result; struct SVGACmdMemory; +struct util_bitmask; struct u_upload_mgr; @@ -321,12 +322,14 @@ struct svga_context boolean new_vdecl; } swtnl; + /* Bitmask of used shader IDs */ + struct util_bitmask *fs_bm; + struct util_bitmask *vs_bm; + struct { unsigned dirty[4]; unsigned texture_timestamp; - unsigned next_fs_id; - unsigned next_vs_id; /* Internally generated shaders: */ diff --git a/src/gallium/drivers/svga/svga_pipe_fs.c b/src/gallium/drivers/svga/svga_pipe_fs.c index e3be840d920..a461a86dd31 100644 --- a/src/gallium/drivers/svga/svga_pipe_fs.c +++ b/src/gallium/drivers/svga/svga_pipe_fs.c @@ -26,6 +26,7 @@ #include "pipe/p_inlines.h" #include "util/u_math.h" #include "util/u_memory.h" +#include "util/u_bitmask.h" #include "tgsi/tgsi_parse.h" #include "tgsi/tgsi_text.h" @@ -107,6 +108,8 @@ void svga_delete_fs_state(struct pipe_context *pipe, void *shader) assert(ret == PIPE_OK); } + util_bitmask_clear( svga->fs_bm, result->id ); + svga_destroy_shader_result( result ); } diff --git a/src/gallium/drivers/svga/svga_pipe_vs.c b/src/gallium/drivers/svga/svga_pipe_vs.c index e5ffe668c35..02709e12bd7 100644 --- a/src/gallium/drivers/svga/svga_pipe_vs.c +++ b/src/gallium/drivers/svga/svga_pipe_vs.c @@ -27,6 +27,7 @@ #include "pipe/p_inlines.h" #include "util/u_math.h" #include "util/u_memory.h" +#include "util/u_bitmask.h" #include "tgsi/tgsi_parse.h" #include "tgsi/tgsi_text.h" @@ -172,6 +173,8 @@ static void svga_delete_vs_state(struct pipe_context *pipe, void *shader) assert(ret == PIPE_OK); } + util_bitmask_clear( svga->vs_bm, result->id ); + svga_destroy_shader_result( result ); } diff --git a/src/gallium/drivers/svga/svga_state_fs.c b/src/gallium/drivers/svga/svga_state_fs.c index 6ec38ed3e45..1902b0106ba 100644 --- a/src/gallium/drivers/svga/svga_state_fs.c +++ b/src/gallium/drivers/svga/svga_state_fs.c @@ -26,6 +26,7 @@ #include "pipe/p_inlines.h" #include "pipe/p_defines.h" #include "util/u_math.h" +#include "util/u_bitmask.h" #include "svga_context.h" #include "svga_state.h" @@ -74,9 +75,12 @@ static enum pipe_error compile_fs( struct svga_context *svga, goto fail; } + result->id = util_bitmask_add(svga->fs_bm); + if(result->id == UTIL_BITMASK_INVALID_INDEX) + goto fail; ret = SVGA3D_DefineShader(svga->swc, - svga->state.next_fs_id, + result->id, SVGA3D_SHADERTYPE_PS, result->tokens, result->nr_tokens * sizeof result->tokens[0]); @@ -84,14 +88,16 @@ static enum pipe_error compile_fs( struct svga_context *svga, goto fail; *out_result = result; - result->id = svga->state.next_fs_id++; result->next = fs->base.results; fs->base.results = result; return PIPE_OK; fail: - if (result) + if (result) { + if (result->id != UTIL_BITMASK_INVALID_INDEX) + util_bitmask_clear( svga->fs_bm, result->id ); svga_destroy_shader_result( result ); + } return ret; } @@ -116,7 +122,7 @@ fail: */ static int emit_white_fs( struct svga_context *svga ) { - int ret; + int ret = PIPE_ERROR; /* ps_3_0 * def c0, 1.000000, 0.000000, 0.000000, 1.000000 @@ -137,16 +143,26 @@ static int emit_white_fs( struct svga_context *svga ) 0x0000ffff, }; + assert(SVGA3D_INVALID_ID == UTIL_BITMASK_INVALID_INDEX); + svga->state.white_fs_id = util_bitmask_add(svga->fs_bm); + if(svga->state.white_fs_id == SVGA3D_INVALID_ID) + goto no_fs_id; + ret = SVGA3D_DefineShader(svga->swc, - svga->state.next_fs_id, + svga->state.white_fs_id, SVGA3D_SHADERTYPE_PS, white_tokens, sizeof(white_tokens)); if (ret) - return ret; + goto no_definition; - svga->state.white_fs_id = svga->state.next_fs_id++; return 0; + +no_definition: + util_bitmask_clear(svga->fs_bm, svga->state.white_fs_id); + svga->state.white_fs_id = SVGA3D_INVALID_ID; +no_fs_id: + return ret; } @@ -251,12 +267,14 @@ static int emit_hw_fs( struct svga_context *svga, assert(id != SVGA3D_INVALID_ID); - if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT]) { - ret = SVGA3D_SetShader(svga->swc, - SVGA3D_SHADERTYPE_PS, - id ); - if (ret) - return ret; + if (result != svga->state.hw_draw.fs) { + if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT]) { + ret = SVGA3D_SetShader(svga->swc, + SVGA3D_SHADERTYPE_PS, + id ); + if (ret) + return ret; + } svga->dirty |= SVGA_NEW_FS_RESULT; svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT] = id; diff --git a/src/gallium/drivers/svga/svga_state_vs.c b/src/gallium/drivers/svga/svga_state_vs.c index a947745732c..6cf51434d7f 100644 --- a/src/gallium/drivers/svga/svga_state_vs.c +++ b/src/gallium/drivers/svga/svga_state_vs.c @@ -26,6 +26,7 @@ #include "pipe/p_inlines.h" #include "pipe/p_defines.h" #include "util/u_math.h" +#include "util/u_bitmask.h" #include "translate/translate.h" #include "svga_context.h" @@ -77,8 +78,12 @@ static enum pipe_error compile_vs( struct svga_context *svga, goto fail; } + result->id = util_bitmask_add(svga->vs_bm); + if(result->id == UTIL_BITMASK_INVALID_INDEX) + goto fail; + ret = SVGA3D_DefineShader(svga->swc, - svga->state.next_vs_id, + result->id, SVGA3D_SHADERTYPE_VS, result->tokens, result->nr_tokens * sizeof result->tokens[0]); @@ -86,14 +91,16 @@ static enum pipe_error compile_vs( struct svga_context *svga, goto fail; *out_result = result; - result->id = svga->state.next_vs_id++; result->next = vs->base.results; vs->base.results = result; return PIPE_OK; fail: - if (result) + if (result) { + if (result->id != UTIL_BITMASK_INVALID_INDEX) + util_bitmask_clear( svga->vs_bm, result->id ); svga_destroy_shader_result( result ); + } return ret; } @@ -141,12 +148,14 @@ static int emit_hw_vs( struct svga_context *svga, id = result->id; } - if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX]) { - ret = SVGA3D_SetShader(svga->swc, - SVGA3D_SHADERTYPE_VS, - id ); - if (ret) - return ret; + if (result != svga->state.hw_draw.vs) { + if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX]) { + ret = SVGA3D_SetShader(svga->swc, + SVGA3D_SHADERTYPE_VS, + id ); + if (ret) + return ret; + } svga->dirty |= SVGA_NEW_VS_RESULT; svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX] = id; diff --git a/src/gallium/drivers/svga/svga_tgsi.c b/src/gallium/drivers/svga/svga_tgsi.c index b8ef137c015..0cd620189b7 100644 --- a/src/gallium/drivers/svga/svga_tgsi.c +++ b/src/gallium/drivers/svga/svga_tgsi.c @@ -31,6 +31,7 @@ #include "tgsi/tgsi_dump.h" #include "tgsi/tgsi_scan.h" #include "util/u_memory.h" +#include "util/u_bitmask.h" #include "svgadump/svga_shader_dump.h" @@ -221,6 +222,7 @@ svga_tgsi_translate( const struct svga_shader *shader, result->tokens = (const unsigned *)emit.buf; result->nr_tokens = (emit.ptr - emit.buf) / sizeof(unsigned); memcpy(&result->key, &key, sizeof key); + result->id = UTIL_BITMASK_INVALID_INDEX; if (SVGA_DEBUG & DEBUG_TGSI) { From fe27b07b0fe7b63755add9bf522d7efcbf1ffb9b Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 20:04:00 -0800 Subject: [PATCH 19/56] glu/sgi: Initialize members of struct O_curve. --- src/glu/sgi/libnurbs/internals/reader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/glu/sgi/libnurbs/internals/reader.h b/src/glu/sgi/libnurbs/internals/reader.h index 3390ce80e99..cae6cada468 100644 --- a/src/glu/sgi/libnurbs/internals/reader.h +++ b/src/glu/sgi/libnurbs/internals/reader.h @@ -64,7 +64,7 @@ struct O_curve : public PooledObj { int save; /* 1 if in display list */ long nuid; O_curve() { next = 0; used = 0; owner = 0; - curve.o_pwlcurve = 0; } + curve.o_pwlcurve = 0; curvetype = ct_none; save = 0; nuid = 0; } }; struct O_nurbscurve : public PooledObj { From be6fb5c08350138ac85c1bf727553aaa9f4583e6 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 20:17:43 -0800 Subject: [PATCH 20/56] r300g: Use C-style comments. --- src/gallium/drivers/r300/r300_emit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index eeb97a2d370..b44c7bdbb3d 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -871,7 +871,7 @@ validate: goto validate; } } else { - // debug_printf("No VBO while emitting dirty state!\n"); + /* debug_printf("No VBO while emitting dirty state!\n"); */ } if (!r300->winsys->validate(r300->winsys)) { r300->context.flush(&r300->context, 0, NULL); @@ -999,7 +999,7 @@ validate: */ /* Finally, emit the VBO. */ - //r300_emit_vertex_buffer(r300); + /* r300_emit_vertex_buffer(r300); */ r300->dirty_hw++; } From d2758f3b74838f4d4f1ae691fddca7dc9f4e8c0e Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 20:39:04 -0800 Subject: [PATCH 21/56] st/xorg: Ensure null-terminated byte string. --- src/gallium/state_trackers/xorg/xorg_crtc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c index 68ddeae470f..0160b1aa59f 100644 --- a/src/gallium/state_trackers/xorg/xorg_crtc.c +++ b/src/gallium/state_trackers/xorg/xorg_crtc.c @@ -122,7 +122,8 @@ crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, drm_mode.vrefresh = mode->VRefresh; if (!mode->name) xf86SetModeDefaultName(mode); - strncpy(drm_mode.name, mode->name, DRM_DISPLAY_MODE_LEN); + strncpy(drm_mode.name, mode->name, DRM_DISPLAY_MODE_LEN - 1); + drm_mode.name[DRM_DISPLAY_MODE_LEN - 1] = '\0'; ret = drmModeSetCrtc(ms->fd, drm_crtc->crtc_id, ms->fb_id, x, y, &drm_connector->connector_id, 1, &drm_mode); From 94c5faad26eae7bb4b95d6c95548860ff52354ba Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 20:47:15 -0800 Subject: [PATCH 22/56] sis: ifdef out unused variable. Silences GCC warning. --- src/mesa/drivers/dri/sis/sis_context.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mesa/drivers/dri/sis/sis_context.c b/src/mesa/drivers/dri/sis/sis_context.c index f501e7ad2e9..346e8c55687 100644 --- a/src/mesa/drivers/dri/sis/sis_context.c +++ b/src/mesa/drivers/dri/sis/sis_context.c @@ -83,6 +83,7 @@ static struct dri_extension card_extensions[] = { NULL, NULL } }; +#if 0 static struct dri_extension card_extensions_6326[] = { /*{ "GL_ARB_texture_border_clamp", NULL },*/ @@ -90,6 +91,7 @@ static struct dri_extension card_extensions_6326[] = /*{ "GL_MESA_ycbcr_texture", NULL },*/ { NULL, NULL } }; +#endif static const struct dri_debug_control debug_control[] = { From d27effbfd88463fc395c364c4e6fc59636074bda Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 21:05:06 -0800 Subject: [PATCH 23/56] i810: Fix include recursion. --- src/mesa/drivers/dri/i810/i810tex.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mesa/drivers/dri/i810/i810tex.h b/src/mesa/drivers/dri/i810/i810tex.h index d9809270308..28958dcb4b2 100644 --- a/src/mesa/drivers/dri/i810/i810tex.h +++ b/src/mesa/drivers/dri/i810/i810tex.h @@ -29,7 +29,6 @@ #include "main/mtypes.h" #include "main/mm.h" -#include "i810context.h" #include "i810_3d_reg.h" #include "texmem.h" From 32d18924dff424eb2e06454193c6c2024f1b2795 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 21:52:51 -0800 Subject: [PATCH 24/56] progs/tests: Silence warn_unused_result warning. --- progs/tests/vparray.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/progs/tests/vparray.c b/progs/tests/vparray.c index af9b62d33e6..fe168c6cd56 100644 --- a/progs/tests/vparray.c +++ b/progs/tests/vparray.c @@ -37,13 +37,16 @@ static void read_surface( char *filename ) } numverts = 0; - while (!feof(f) && numverts < MAXVERTS) { - fscanf( f, "%f %f %f %f %f %f", - &data[numverts][0], &data[numverts][1], &data[numverts][2], - &data[numverts][3], &data[numverts][4], &data[numverts][5] ); + while (numverts < MAXVERTS) { + int result; + result = fscanf( f, "%f %f %f %f %f %f", + &data[numverts][0], &data[numverts][1], &data[numverts][2], + &data[numverts][3], &data[numverts][4], &data[numverts][5] ); + if (result == EOF) { + break; + } numverts++; } - numverts--; printf("%d vertices, %d triangles\n", numverts, numverts-2); printf("data = %p\n", (void *) data); From c9c6e9a39e3d38cfc05772667c759b82df8f0fff Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 2 Jan 2010 21:58:40 -0800 Subject: [PATCH 25/56] progs/tests: Silence uninitialized variable warning. --- progs/tests/getprocaddress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/progs/tests/getprocaddress.c b/progs/tests/getprocaddress.c index b905eeaf81b..e699baf44bc 100644 --- a/progs/tests/getprocaddress.c +++ b/progs/tests/getprocaddress.c @@ -1188,7 +1188,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage) GLuint bufferID; GLint bufferMapped; static GLubyte data[BUFFER_DATA_SIZE] = {0}; - float *dataPtr; + float *dataPtr = NULL; /* Get the function pointers we need. These are from * GL_ARB_vertex_buffer_object and are required in all From 1da47ac20e676e05c1b0b66c2c07265836f4c7eb Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 02:38:22 -0800 Subject: [PATCH 26/56] progs/vp: Ensure null-terminated byte string. --- progs/vp/vp-tris.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/progs/vp/vp-tris.c b/progs/vp/vp-tris.c index 29cd027b00c..09236c296f7 100644 --- a/progs/vp/vp-tris.c +++ b/progs/vp/vp-tris.c @@ -96,7 +96,8 @@ static void Init( void ) exit(1); } - sz = (GLuint) fread(buf, 1, sizeof(buf), f); + sz = (GLuint) fread(buf, 1, sizeof(buf) - 1, f); + buf[sizeof(buf) - 1] = '\0'; if (!feof(f)) { fprintf(stderr, "file too long\n"); fclose(f); From 66c1de77ed58ea8856c5bc72c8e4c69e23aa04f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 3 Jan 2010 11:02:12 +0000 Subject: [PATCH 27/56] rtasm: Play nicely with Windows's Data Execution Prevention. --- src/gallium/auxiliary/rtasm/rtasm_execmem.c | 32 +++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/rtasm/rtasm_execmem.c b/src/gallium/auxiliary/rtasm/rtasm_execmem.c index 01811d50114..ffed768f979 100644 --- a/src/gallium/auxiliary/rtasm/rtasm_execmem.c +++ b/src/gallium/auxiliary/rtasm/rtasm_execmem.c @@ -41,6 +41,12 @@ #define MAP_ANONYMOUS MAP_ANON #endif +#if defined(PIPE_OS_WINDOWS) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include +#endif #if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) @@ -118,7 +124,29 @@ rtasm_exec_free(void *addr) } -#else /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */ +#elif defined(PIPE_OS_WINDOWS) + + +/* + * Avoid Data Execution Prevention. + */ + +void * +rtasm_exec_malloc(size_t size) +{ + return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +} + + +void +rtasm_exec_free(void *addr) +{ + VirtualFree(addr, 0, MEM_RELEASE); +} + + +#else + /* * Just use regular memory. @@ -138,4 +166,4 @@ rtasm_exec_free(void *addr) } -#endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */ +#endif From 1d95544446f3b862620fe5bb33b37705a2ad8681 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 03:06:33 -0800 Subject: [PATCH 28/56] trace: Remove comma at end of enumerator list. --- src/gallium/drivers/trace/tr_state.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/trace/tr_state.h b/src/gallium/drivers/trace/tr_state.h index 1c16042ee5a..e2f981d0513 100644 --- a/src/gallium/drivers/trace/tr_state.h +++ b/src/gallium/drivers/trace/tr_state.h @@ -32,7 +32,7 @@ struct tgsi_token; enum trace_shader_type { TRACE_SHADER_FRAGMENT = 0, TRACE_SHADER_VERTEX = 1, - TRACE_SHADER_GEOMETRY = 2, + TRACE_SHADER_GEOMETRY = 2 }; struct trace_shader From 32305e3a9f9408922c34f06174aaa0d34cf72459 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 24 Dec 2009 09:20:33 -0800 Subject: [PATCH 29/56] glxcmds: Fix comment about __DRI_ALLOCATE Signed-off-by: Jeremy Huddleston --- src/glx/x11/glxcmds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/glx/x11/glxcmds.c b/src/glx/x11/glxcmds.c index daa9076471a..d1c68dd02e1 100644 --- a/src/glx/x11/glxcmds.c +++ b/src/glx/x11/glxcmds.c @@ -2575,7 +2575,7 @@ glXAllocateMemoryMESA(Display * dpy, int scrn, (void) readFreq; (void) writeFreq; (void) priority; -#endif /* GLX_DIRECT_RENDERING */ +#endif /* __DRI_ALLOCATE */ return NULL; } @@ -2594,7 +2594,7 @@ glXFreeMemoryMESA(Display * dpy, int scrn, void *pointer) (void) dpy; (void) scrn; (void) pointer; -#endif /* GLX_DIRECT_RENDERING */ +#endif /* __DRI_ALLOCATE */ } From 287cbba9b7ebf95391f77b58f519dd76c415d355 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Thu, 24 Dec 2009 08:47:29 -0800 Subject: [PATCH 30/56] apple: Purge existing (not working) GLX_USE_APPLEGL from dated libGL on OSX Signed-off-by: Jeremy Huddleston --- src/glx/x11/dri_glx.c | 13 ------------- src/glx/x11/glxcurrent.c | 7 ------- src/mesa/main/dispatch.c | 4 ---- 3 files changed, 24 deletions(-) diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c index 4f7acb6cc32..88487b6c962 100644 --- a/src/glx/x11/dri_glx.c +++ b/src/glx/x11/dri_glx.c @@ -280,8 +280,6 @@ static const __DRIextension *loader_extensions[] = { NULL }; -#ifndef GLX_USE_APPLEGL - /** * Perform the required libGL-side initialization and call the client-side * driver's \c __driCreateNewScreen function. @@ -475,17 +473,6 @@ CallCreateNewScreen(Display * dpy, int scrn, __GLXscreenConfigs * psc, return NULL; } -#else /* !GLX_USE_APPLEGL */ - -static void * -CallCreateNewScreen(Display * dpy, int scrn, __GLXscreenConfigs * psc, - __GLXDRIdisplayPrivate * driDpy) -{ - return NULL; -} - -#endif /* !GLX_USE_APPLEGL */ - static void driDestroyContext(__GLXDRIcontext * context, __GLXscreenConfigs * psc, Display * dpy) diff --git a/src/glx/x11/glxcurrent.c b/src/glx/x11/glxcurrent.c index f1e3e161bec..fae1bd9fa62 100644 --- a/src/glx/x11/glxcurrent.c +++ b/src/glx/x11/glxcurrent.c @@ -475,13 +475,6 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, IndirectAPI = __glXNewIndirectAPI(); _glapi_set_dispatch(IndirectAPI); -#ifdef GLX_USE_APPLEGL - do { - extern void XAppleDRIUseIndirectDispatch(void); - XAppleDRIUseIndirectDispatch(); - } while (0); -#endif - state = (__GLXattribute *) (gc->client_state_private); gc->currentContextTag = reply.contextTag; diff --git a/src/mesa/main/dispatch.c b/src/mesa/main/dispatch.c index 97d213e8e1f..eb0d1ff8a7b 100644 --- a/src/mesa/main/dispatch.c +++ b/src/mesa/main/dispatch.c @@ -37,8 +37,6 @@ * \author Brian Paul */ -#ifndef GLX_USE_APPLEGL - #include "main/glheader.h" #include "main/compiler.h" #include "glapi/glapi.h" @@ -92,5 +90,3 @@ #include "glapi/glapitemp.h" #endif /* USE_X86_ASM */ - -#endif /* !GLX_USE_APPLEGL */ From f3739bdb60edc051348526d469d5222bb6934917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 1 Jan 2010 21:54:01 +0000 Subject: [PATCH 31/56] gdi: Don't generate import libraries for opengl32.dll. Both MinGW and MSVC include opengl32 import libraries, and its safer to always use those. --- src/gallium/winsys/gdi/SConscript | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/winsys/gdi/SConscript b/src/gallium/winsys/gdi/SConscript index 8f556daf04a..917a81c4386 100644 --- a/src/gallium/winsys/gdi/SConscript +++ b/src/gallium/winsys/gdi/SConscript @@ -42,6 +42,8 @@ if env['platform'] == 'windows': drivers += [trace] + env['no_import_lib'] = 1 + env.SharedLibrary( target ='opengl32', source = sources, From eb5d9e6f70037d4dc12430302f82a116cb1e00ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 3 Jan 2010 19:58:54 +0000 Subject: [PATCH 32/56] mesa: Cope with the degenerate case of zero length ranges. Fixes assertion failures on glean's bufferObject test. --- src/mesa/state_tracker/st_cb_bufferobjects.c | 49 ++++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index 494a3a99c87..0102d8a6f7d 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.c +++ b/src/mesa/state_tracker/st_cb_bufferobjects.c @@ -103,6 +103,17 @@ st_bufferobj_subdata(GLcontext *ctx, ASSERT(size >= 0); ASSERT(offset + size <= obj->Size); + if (!size) + return; + + /* + * According to ARB_vertex_buffer_object specification, if data is null, + * then the contents of the buffer object's data store is undefined. We just + * ignore, and leave it unchanged. + */ + if (!data) + return; + st_cond_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer, offset, size, data); } @@ -125,6 +136,9 @@ st_bufferobj_get_subdata(GLcontext *ctx, ASSERT(size >= 0); ASSERT(offset + size <= obj->Size); + if (!size) + return; + st_cond_flush_pipe_buffer_read(st_context(ctx), st_obj->buffer, offset, size, data); } @@ -222,6 +236,13 @@ st_bufferobj_map(GLcontext *ctx, GLenum target, GLenum access, } +/** + * Dummy data whose's pointer is used for zero length ranges. + */ +static long +st_bufferobj_zero_length_range = 0; + + /** * Called via glMapBufferRange(). */ @@ -257,14 +278,26 @@ st_bufferobj_map_range(GLcontext *ctx, GLenum target, assert(offset < obj->Size); assert(offset + length <= obj->Size); - obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags); + /* + * We go out of way here to hide the degenerate yet valid case of zero + * length range from the pipe driver. + */ + if (!length) { + obj->Pointer = &st_bufferobj_zero_length_range; + } + else { + obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags); + if (obj->Pointer) { + obj->Pointer = (ubyte *) obj->Pointer + offset; + } + } + if (obj->Pointer) { - obj->Pointer = (ubyte *) obj->Pointer + offset; obj->Offset = offset; obj->Length = length; obj->AccessFlags = access; } - + return obj->Pointer; } @@ -282,6 +315,9 @@ st_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, assert(length >= 0); assert(offset + length <= obj->Length); + if (!length) + return; + pipe_buffer_flush_mapped_range(pipe->screen, st_obj->buffer, obj->Offset + offset, length); } @@ -296,7 +332,9 @@ st_bufferobj_unmap(GLcontext *ctx, GLenum target, struct gl_buffer_object *obj) struct pipe_context *pipe = st_context(ctx)->pipe; struct st_buffer_object *st_obj = st_buffer_object(obj); - pipe_buffer_unmap(pipe->screen, st_obj->buffer); + if(obj->Length) + pipe_buffer_unmap(pipe->screen, st_obj->buffer); + obj->Pointer = NULL; obj->Offset = 0; obj->Length = 0; @@ -319,6 +357,9 @@ st_copy_buffer_subdata(GLcontext *ctx, struct st_buffer_object *dstObj = st_buffer_object(dst); ubyte *srcPtr, *dstPtr; + if(!size) + return; + /* buffer should not already be mapped */ assert(!src->Pointer); assert(!dst->Pointer); From 0bfc579bd435b4d0c258258440866840c473f681 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 14:42:36 -0800 Subject: [PATCH 33/56] llvmpipe: Remove comma at end of enumerator list. --- src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c | 2 +- src/gallium/drivers/llvmpipe/lp_bld_flow.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c index d14f468ba93..ced7b9c11d7 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c @@ -142,7 +142,7 @@ lp_build_blend_factor_unswizzled(struct lp_build_blend_aos_context *bld, enum lp_build_blend_swizzle { LP_BUILD_BLEND_SWIZZLE_RGBA = 0, - LP_BUILD_BLEND_SWIZZLE_AAAA = 1, + LP_BUILD_BLEND_SWIZZLE_AAAA = 1 }; diff --git a/src/gallium/drivers/llvmpipe/lp_bld_flow.c b/src/gallium/drivers/llvmpipe/lp_bld_flow.c index dcc25fbff86..25c10af29f0 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_flow.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_flow.c @@ -47,7 +47,7 @@ */ enum lp_build_flow_construct_kind { lP_BUILD_FLOW_SCOPE, - LP_BUILD_FLOW_SKIP, + LP_BUILD_FLOW_SKIP }; From fe3ea299bf8abcf27c8a168138c8fd3f4e43cefa Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 15:07:35 -0800 Subject: [PATCH 34/56] r300g: Remove comma at end of enumerator list. --- src/gallium/drivers/r300/r300_reg.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h index 8ca785cb587..744ea6568d3 100644 --- a/src/gallium/drivers/r300/r300_reg.h +++ b/src/gallium/drivers/r300/r300_reg.h @@ -2636,7 +2636,7 @@ enum { VE_COND_MUX_GTE = 25, VE_SET_GREATER_THAN = 26, VE_SET_EQUAL = 27, - VE_SET_NOT_EQUAL = 28, + VE_SET_NOT_EQUAL = 28 }; enum { @@ -2670,20 +2670,20 @@ enum { ME_PRED_SET_CLR = 25, ME_PRED_SET_INV = 26, ME_PRED_SET_POP = 27, - ME_PRED_SET_RESTORE = 28, + ME_PRED_SET_RESTORE = 28 }; enum { /* R3XX */ PVS_MACRO_OP_2CLK_MADD = 0, - PVS_MACRO_OP_2CLK_M2X_ADD = 1, + PVS_MACRO_OP_2CLK_M2X_ADD = 1 }; enum { PVS_SRC_REG_TEMPORARY = 0, /* Intermediate Storage */ PVS_SRC_REG_INPUT = 1, /* Input Vertex Storage */ PVS_SRC_REG_CONSTANT = 2, /* Constant State Storage */ - PVS_SRC_REG_ALT_TEMPORARY = 3, /* Alternate Intermediate Storage */ + PVS_SRC_REG_ALT_TEMPORARY = 3 /* Alternate Intermediate Storage */ }; enum { @@ -2692,7 +2692,7 @@ enum { PVS_DST_REG_OUT = 2, /* Output Memory. Used for all outputs */ PVS_DST_REG_OUT_REPL_X = 3, /* Output Memory & Replicate X to all channels */ PVS_DST_REG_ALT_TEMPORARY = 4, /* Alternate Intermediate Storage */ - PVS_DST_REG_INPUT = 5, /* Output Memory & Replicate X to all channels */ + PVS_DST_REG_INPUT = 5 /* Output Memory & Replicate X to all channels */ }; enum { @@ -2701,7 +2701,7 @@ enum { PVS_SRC_SELECT_Z = 2, /* Select Z Component */ PVS_SRC_SELECT_W = 3, /* Select W Component */ PVS_SRC_SELECT_FORCE_0 = 4, /* Force Component to 0.0 */ - PVS_SRC_SELECT_FORCE_1 = 5, /* Force Component to 1.0 */ + PVS_SRC_SELECT_FORCE_1 = 5 /* Force Component to 1.0 */ }; /* PVS Opcode & Destination Operand Description */ @@ -2740,7 +2740,7 @@ enum { PVS_DST_ADDR_SEL_MASK = 0x3, PVS_DST_ADDR_SEL_SHIFT = 29, PVS_DST_ADDR_MODE_0_MASK = 0x1, - PVS_DST_ADDR_MODE_0_SHIFT = 31, + PVS_DST_ADDR_MODE_0_SHIFT = 31 }; /* PVS Source Operand Description */ @@ -2775,7 +2775,7 @@ enum { PVS_SRC_ADDR_SEL_MASK = 0x3, PVS_SRC_ADDR_SEL_SHIFT = 29, PVS_SRC_ADDR_MODE_1_MASK = 0x0, - PVS_SRC_ADDR_MODE_1_SHIFT = 32, + PVS_SRC_ADDR_MODE_1_SHIFT = 32 }; /*\}*/ From 3e196f433dc02654f1c0f7989e2e7e7a5c4b425d Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 18:05:12 -0800 Subject: [PATCH 35/56] r300g: Silence 'mixed declarations and code' warning. --- src/gallium/drivers/r300/r300_cs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/r300/r300_cs.h b/src/gallium/drivers/r300/r300_cs.h index 86ba91db52e..5342488d0d4 100644 --- a/src/gallium/drivers/r300/r300_cs.h +++ b/src/gallium/drivers/r300/r300_cs.h @@ -51,7 +51,7 @@ #define CS_LOCALS(context) \ struct r300_context* const cs_context_copy = (context); \ struct r300_winsys* cs_winsys = cs_context_copy->winsys; \ - int cs_count = 0; + int cs_count = 0 #define CHECK_CS(size) \ cs_winsys->check_cs(cs_winsys, (size)) From 58531029e6eba11c374d996ea031f1bbe4386c54 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 18:32:07 -0800 Subject: [PATCH 36/56] r300: Silence 'mixed declarations and code' warning. --- src/mesa/drivers/dri/r300/compiler/memory_pool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/r300/compiler/memory_pool.c b/src/mesa/drivers/dri/r300/compiler/memory_pool.c index 37aa2b65798..76c7c60d8f5 100644 --- a/src/mesa/drivers/dri/r300/compiler/memory_pool.c +++ b/src/mesa/drivers/dri/r300/compiler/memory_pool.c @@ -71,12 +71,14 @@ static void refill_pool(struct memory_pool * pool) void * memory_pool_malloc(struct memory_pool * pool, unsigned int bytes) { if (bytes < POOL_LARGE_ALLOC) { + void * ptr; + if (pool->head + bytes > pool->end) refill_pool(pool); assert(pool->head + bytes <= pool->end); - void * ptr = pool->head; + ptr = pool->head; pool->head += bytes; pool->head = (unsigned char*)(((unsigned long)pool->head + POOL_ALIGN - 1) & ~(POOL_ALIGN - 1)); From 0214b7b3c1eae5573b03b485b18e4c10729831ee Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 20:16:59 -0800 Subject: [PATCH 37/56] r300: Silence 'mixed declarations and code' warning. --- src/mesa/drivers/dri/r300/compiler/radeon_code.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.c b/src/mesa/drivers/dri/r300/compiler/radeon_code.c index 1a3d8bb6412..853b2becd1b 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_code.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_code.c @@ -143,7 +143,8 @@ unsigned rc_constants_add_immediate_scalar(struct rc_constant_list * c, float da for(index = 0; index < c->Count; ++index) { if (c->Constants[index].Type == RC_CONSTANT_IMMEDIATE) { - for(unsigned comp = 0; comp < c->Constants[index].Size; ++comp) { + unsigned comp; + for(comp = 0; comp < c->Constants[index].Size; ++comp) { if (c->Constants[index].u.Immediate[comp] == data) { *swizzle = RC_MAKE_SWIZZLE(comp, comp, comp, comp); return index; From b14cbfaebc135351a72d86128ae987611ef8c31f Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 20:51:23 -0800 Subject: [PATCH 38/56] r300: Silence 'mixed declarations and code' warnings. --- src/mesa/drivers/dri/r300/compiler/radeon_compiler.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c index c0e7a7f7a02..41ea23ee327 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c @@ -232,12 +232,16 @@ void rc_copy_output(struct radeon_compiler * c, unsigned output, unsigned dup_ou void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsigned new_input) { unsigned tempregi = rc_find_free_temporary(c); + struct rc_instruction * inst_rcp; + struct rc_instruction * inst_mul; + struct rc_instruction * inst_mad; + struct rc_instruction * inst; c->Program.InputsRead &= ~(1 << wpos); c->Program.InputsRead |= 1 << new_input; /* perspective divide */ - struct rc_instruction * inst_rcp = rc_insert_new_instruction(c, &c->Program.Instructions); + inst_rcp = rc_insert_new_instruction(c, &c->Program.Instructions); inst_rcp->U.I.Opcode = RC_OPCODE_RCP; inst_rcp->U.I.DstReg.File = RC_FILE_TEMPORARY; @@ -248,7 +252,7 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig inst_rcp->U.I.SrcReg[0].Index = new_input; inst_rcp->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_WWWW; - struct rc_instruction * inst_mul = rc_insert_new_instruction(c, inst_rcp); + inst_mul = rc_insert_new_instruction(c, inst_rcp); inst_mul->U.I.Opcode = RC_OPCODE_MUL; inst_mul->U.I.DstReg.File = RC_FILE_TEMPORARY; @@ -263,7 +267,7 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig inst_mul->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_WWWW; /* viewport transformation */ - struct rc_instruction * inst_mad = rc_insert_new_instruction(c, inst_mul); + inst_mad = rc_insert_new_instruction(c, inst_mul); inst_mad->U.I.Opcode = RC_OPCODE_MAD; inst_mad->U.I.DstReg.File = RC_FILE_TEMPORARY; @@ -282,7 +286,6 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig inst_mad->U.I.SrcReg[2].Index = inst_mad->U.I.SrcReg[1].Index; inst_mad->U.I.SrcReg[2].Swizzle = RC_MAKE_SWIZZLE(RC_SWIZZLE_X, RC_SWIZZLE_Y, RC_SWIZZLE_Z, RC_SWIZZLE_ZERO); - struct rc_instruction * inst; for (inst = inst_mad->Next; inst != &c->Program.Instructions; inst = inst->Next) { const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); unsigned i; From 3ea5a95078bddaed66e3c9412b4b0c4685bc9ec7 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 21:29:33 -0800 Subject: [PATCH 39/56] progs/samples: Silence compiler warnings. --- progs/samples/rgbtoppm.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/progs/samples/rgbtoppm.c b/progs/samples/rgbtoppm.c index adc91469e56..403578ef423 100644 --- a/progs/samples/rgbtoppm.c +++ b/progs/samples/rgbtoppm.c @@ -3,6 +3,7 @@ /* texload is a simplistic routine for reading an SGI .rgb image file. */ +#include #include #include #include @@ -72,6 +73,7 @@ static ImageRec *ImageOpen(char *fileName) ImageRec *image; int swapFlag; int x; + int result; endianTest.testWord = 1; if (endianTest.testByte[0] == 1) { @@ -90,7 +92,8 @@ static ImageRec *ImageOpen(char *fileName) return NULL; } - fread(image, 1, 12, image->file); + result = fread(image, 1, 12, image->file); + assert(result == 12); if (swapFlag) { ConvertShort(&image->imagic, 1); @@ -117,8 +120,10 @@ static ImageRec *ImageOpen(char *fileName) } image->rleEnd = 512 + (2 * x); fseek(image->file, 512, SEEK_SET); - fread(image->rowStart, 1, x, image->file); - fread(image->rowSize, 1, x, image->file); + result = fread(image->rowStart, 1, x, image->file); + assert(result == x); + result = fread(image->rowSize, 1, x, image->file); + assert(result == x); if (swapFlag) { ConvertUint(image->rowStart, x/(int) sizeof(unsigned)); ConvertUint((unsigned *)image->rowSize, x/(int) sizeof(int)); @@ -138,11 +143,13 @@ static void ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) { unsigned char *iPtr, *oPtr, pixel; int count; + int result; if ((image->type & 0xFF00) == 0x0100) { fseek(image->file, (long) image->rowStart[y+z*image->ysize], SEEK_SET); - fread(image->tmp, 1, (unsigned int)image->rowSize[y+z*image->ysize], - image->file); + result = fread(image->tmp, 1, (unsigned int)image->rowSize[y+z*image->ysize], + image->file); + assert(result == (unsigned int)image->rowSize[y+z*image->ysize]); iPtr = image->tmp; oPtr = buf; @@ -166,10 +173,12 @@ ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) { } else { fseek(image->file, 512+(y*image->xsize)+(z*image->xsize*image->ysize), SEEK_SET); - fread(buf, 1, image->xsize, image->file); + result = fread(buf, 1, image->xsize, image->file); + assert(result == image->xsize); } } +#if 0 static GLubyte * read_alpha_texture(char *name, int *width, int *height) { @@ -199,6 +208,7 @@ read_alpha_texture(char *name, int *width, int *height) return (unsigned char *) base; } +#endif static GLubyte * read_rgb_texture(char *name, int *width, int *height) @@ -261,7 +271,8 @@ read_rgb_texture(char *name, int *width, int *height) int main(int argc, char **argv) { - int width, height; + int width = 0; + int height = 0; GLubyte *data; char buff[32]; int n; From 8a29e3f8e8e1f05e54959063928a93d7a5eef0f0 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 21:39:20 -0800 Subject: [PATCH 40/56] progs/egl: Silence uninitialized variable warnings. --- progs/egl/eglgears.c | 3 ++- progs/egl/eglscreen.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/progs/egl/eglgears.c b/progs/egl/eglgears.c index 052d0f9e25d..2d9b8cac7f7 100644 --- a/progs/egl/eglgears.c +++ b/progs/egl/eglgears.c @@ -374,7 +374,8 @@ main(int argc, char *argv[]) EGLint screenAttribs[10]; EGLModeMESA mode[MAX_MODES]; EGLScreenMESA screen; - EGLint count, chosenMode; + EGLint count; + EGLint chosenMode = 0; GLboolean printInfo = GL_FALSE; EGLint width = 0, height = 0; diff --git a/progs/egl/eglscreen.c b/progs/egl/eglscreen.c index 47b3ce3366f..520f76ea036 100644 --- a/progs/egl/eglscreen.c +++ b/progs/egl/eglscreen.c @@ -52,7 +52,8 @@ main(int argc, char *argv[]) EGLint screenAttribs[10]; EGLModeMESA mode[MAX_MODES]; EGLScreenMESA screen; - EGLint count, chosenMode; + EGLint count; + EGLint chosenMode = 0; EGLint width = 0, height = 0; d = eglGetDisplay(EGL_DEFAULT_DISPLAY); From d1e2fc19cc1b8e4c23f5ad82ec68779c41101b41 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sun, 3 Jan 2010 23:33:32 -0800 Subject: [PATCH 41/56] r300: Use C-style comments. --- .../dri/r300/compiler/radeon_program_alu.c | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c b/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c index ced66af1eb5..b5c08aea49e 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c @@ -267,9 +267,9 @@ static void transform_LIT(struct radeon_compiler* c, temp = inst->U.I.DstReg.Index; srctemp = srcreg(RC_FILE_TEMPORARY, temp); - // tmp.x = max(0.0, Src.x); - // tmp.y = max(0.0, Src.y); - // tmp.w = clamp(Src.z, -128+eps, 128-eps); + /* tmp.x = max(0.0, Src.x); */ + /* tmp.y = max(0.0, Src.y); */ + /* tmp.w = clamp(Src.z, -128+eps, 128-eps); */ emit2(c, inst->Prev, RC_OPCODE_MAX, 0, dstregtmpmask(temp, RC_MASK_XYW), inst->U.I.SrcReg[0], @@ -280,7 +280,7 @@ static void transform_LIT(struct radeon_compiler* c, swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W), negate(srcregswz(RC_FILE_CONSTANT, constant, constant_swizzle))); - // tmp.w = Pow(tmp.y, tmp.w) + /* tmp.w = Pow(tmp.y, tmp.w) */ emit1(c, inst->Prev, RC_OPCODE_LG2, 0, dstregtmpmask(temp, RC_MASK_W), swizzle(srctemp, RC_SWIZZLE_Y, RC_SWIZZLE_Y, RC_SWIZZLE_Y, RC_SWIZZLE_Y)); @@ -292,14 +292,14 @@ static void transform_LIT(struct radeon_compiler* c, dstregtmpmask(temp, RC_MASK_W), swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W)); - // tmp.z = (tmp.x > 0) ? tmp.w : 0.0 + /* tmp.z = (tmp.x > 0) ? tmp.w : 0.0 */ emit3(c, inst->Prev, RC_OPCODE_CMP, inst->U.I.SaturateMode, dstregtmpmask(temp, RC_MASK_Z), negate(swizzle(srctemp, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X)), swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W), builtin_zero); - // tmp.x, tmp.y, tmp.w = 1.0, tmp.x, 1.0 + /* tmp.x, tmp.y, tmp.w = 1.0, tmp.x, 1.0 */ emit1(c, inst->Prev, RC_OPCODE_MOV, inst->U.I.SaturateMode, dstregtmpmask(temp, RC_MASK_XYW), swizzle(srctemp, RC_SWIZZLE_ONE, RC_SWIZZLE_X, RC_SWIZZLE_ONE, RC_SWIZZLE_ONE)); @@ -533,16 +533,16 @@ static void sincos_constants(struct radeon_compiler* c, unsigned int *constants) { static const float SinCosConsts[2][4] = { { - 1.273239545, // 4/PI - -0.405284735, // -4/(PI*PI) - 3.141592654, // PI - 0.2225 // weight + 1.273239545, /* 4/PI */ + -0.405284735, /* -4/(PI*PI) */ + 3.141592654, /* PI */ + 0.2225 /* weight */ }, { 0.75, 0.5, - 0.159154943, // 1/(2*PI) - 6.283185307 // 2*PI + 0.159154943, /* 1/(2*PI) */ + 6.283185307 /* 2*PI */ } }; int i; @@ -602,9 +602,9 @@ int radeonTransformTrigSimple(struct radeon_compiler* c, sincos_constants(c, constants); if (inst->U.I.Opcode == RC_OPCODE_COS) { - // MAD tmp.x, src, 1/(2*PI), 0.75 - // FRC tmp.x, tmp.x - // MAD tmp.z, tmp.x, 2*PI, -PI + /* MAD tmp.x, src, 1/(2*PI), 0.75 */ + /* FRC tmp.x, tmp.x */ + /* MAD tmp.z, tmp.x, 2*PI, -PI */ emit3(c, inst->Prev, RC_OPCODE_MAD, 0, dstregtmpmask(tempreg, RC_MASK_W), swizzle(inst->U.I.SrcReg[0], RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X), swizzle(srcreg(RC_FILE_CONSTANT, constants[1]), RC_SWIZZLE_Z, RC_SWIZZLE_Z, RC_SWIZZLE_Z, RC_SWIZZLE_Z), From 8282185752a93acca54a67a8e97e0066ee233709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 4 Jan 2010 13:02:40 +0100 Subject: [PATCH 42/56] vmware/xorg: Fix SCons build. --- src/gallium/winsys/drm/vmware/xorg/SConscript | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/winsys/drm/vmware/xorg/SConscript b/src/gallium/winsys/drm/vmware/xorg/SConscript index b8968e7137b..5e78c1f89bf 100644 --- a/src/gallium/winsys/drm/vmware/xorg/SConscript +++ b/src/gallium/winsys/drm/vmware/xorg/SConscript @@ -44,6 +44,7 @@ if env['platform'] == 'linux': sources = [ 'vmw_ioctl.c', 'vmw_screen.c', + 'vmw_video.c', 'vmw_xorg.c', ] From c114f000df269787afb449d73cd8aae202be2550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 4 Jan 2010 13:04:05 +0100 Subject: [PATCH 43/56] st/xorg: Proper calculation of screen pitch. --- src/gallium/state_trackers/xorg/xorg_driver.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index 4d169a1d14c..b02fe68f313 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -181,8 +181,7 @@ drv_crtc_resize(ScrnInfoPtr pScrn, int width, int height) if (!pScreen->ModifyPixmapHeader(rootPixmap, width, height, -1, -1, -1, NULL)) return FALSE; - /* HW dependent - FIXME */ - pScrn->displayWidth = pScrn->virtualX; + pScrn->displayWidth = rootPixmap->devKind / (rootPixmap->drawable.bitsPerPixel / 8); /* now create new frontbuffer */ return ms->create_front_buffer(pScrn) && ms->bind_front_buffer(pScrn); From acd1451393068762a46a06aee3af9e94bc09e147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 4 Jan 2010 13:05:43 +0100 Subject: [PATCH 44/56] svga: Fix debug build crash when rendering to depth/stencil renderbuffer only. --- src/gallium/drivers/svga/svga_draw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c index 8db40d0fd57..ca73cf9d5a3 100644 --- a/src/gallium/drivers/svga/svga_draw.c +++ b/src/gallium/drivers/svga/svga_draw.c @@ -164,7 +164,8 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl ) } SVGA_DBG(DEBUG_DMA, "draw to sid %p, %d prims\n", - svga_surface(svga->curr.framebuffer.cbufs[0])->handle, + svga->curr.framebuffer.cbufs[0] ? + svga_surface(svga->curr.framebuffer.cbufs[0])->handle : NULL, hwtnl->cmd.prim_count); ret = SVGA3D_BeginDrawPrimitives(swc, From 1e414df894fc70b7024eb38c812e582336014974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 4 Jan 2010 16:54:29 +0100 Subject: [PATCH 45/56] st/mesa: Only call st_texture_image_unmap() if texImage->Data is non-NULL. This was already done in st_TexImage() but was missed between incremental changes to st_TexSubimage(). --- src/mesa/state_tracker/st_cb_texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index d4630a514f8..cb9106c7de8 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -1090,7 +1090,7 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level, done: _mesa_unmap_teximage_pbo(ctx, packing); - if (stImage->pt) { + if (stImage->pt && texImage->Data) { st_texture_image_unmap(ctx->st, stImage); texImage->Data = NULL; } From f52dd2ab333b0bdfa1df15bffb8156350c93f892 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 29 Dec 2009 10:26:28 -0700 Subject: [PATCH 46/56] glsl: use varName variable in _slang_gen_assignment() --- src/mesa/shader/slang/slang_codegen.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c index b62cfc36af1..372a9acdd03 100644 --- a/src/mesa/shader/slang/slang_codegen.c +++ b/src/mesa/shader/slang/slang_codegen.c @@ -4249,14 +4249,15 @@ _slang_gen_assignment(slang_assemble_ctx * A, slang_operation *oper) if (oper->children[0].type == SLANG_OPER_IDENTIFIER) { /* Check that var is writeable */ + const char *varName = (char *) oper->children[0].a_id; slang_variable *var = _slang_variable_locate(oper->children[0].locals, oper->children[0].a_id, GL_TRUE); if (!var) { - slang_info_log_error(A->log, "undefined variable '%s'", - (char *) oper->children[0].a_id); + slang_info_log_error(A->log, "undefined variable '%s'", varName); return NULL; } + if (var->type.qualifier == SLANG_QUAL_CONST || var->type.qualifier == SLANG_QUAL_ATTRIBUTE || var->type.qualifier == SLANG_QUAL_UNIFORM || @@ -4264,7 +4265,7 @@ _slang_gen_assignment(slang_assemble_ctx * A, slang_operation *oper) A->program->Target == GL_FRAGMENT_PROGRAM_ARB)) { slang_info_log_error(A->log, "illegal assignment to read-only variable '%s'", - (char *) oper->children[0].a_id); + varName); return NULL; } From 707faf65c89dbe64e2cb01196b913b354221e26e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 4 Jan 2010 11:29:09 -0700 Subject: [PATCH 47/56] glapi: comment-out TIMEOUT_IGNORED This is not really a GLenum value. --- src/mesa/glapi/ARB_sync.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/glapi/ARB_sync.xml b/src/mesa/glapi/ARB_sync.xml index 37f474980cf..4e4eebac32a 100644 --- a/src/mesa/glapi/ARB_sync.xml +++ b/src/mesa/glapi/ARB_sync.xml @@ -33,8 +33,10 @@ - + From e661bf50183bf5481ee0d6c8e6be0809da991913 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 4 Jan 2010 11:29:38 -0700 Subject: [PATCH 48/56] mesa: regenerated enums.c file --- src/mesa/main/enums.c | 465 +++++++++++++++++++++--------------------- 1 file changed, 231 insertions(+), 234 deletions(-) diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c index f9f4bc78535..8a39401371f 100644 --- a/src/mesa/main/enums.c +++ b/src/mesa/main/enums.c @@ -1787,7 +1787,6 @@ LONGSTRING static const char enum_string_table[] = "GL_TEXTURE_WRAP_S\0" "GL_TEXTURE_WRAP_T\0" "GL_TIMEOUT_EXPIRED\0" - "GL_TIMEOUT_IGNORED\0" "GL_TIME_ELAPSED_EXT\0" "GL_TRACK_MATRIX_NV\0" "GL_TRACK_MATRIX_TRANSFORM_NV\0" @@ -1919,7 +1918,7 @@ LONGSTRING static const char enum_string_table[] = "GL_ZOOM_Y\0" ; -static const enum_elt all_enums[1881] = +static const enum_elt all_enums[1880] = { { 0, 0x00000600 }, /* GL_2D */ { 6, 0x00001407 }, /* GL_2_BYTES */ @@ -3672,147 +3671,146 @@ static const enum_elt all_enums[1881] = { 37686, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ { 37704, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ { 37722, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ - { 37741, 0xFFFFFFFFFFFFFFFF }, /* GL_TIMEOUT_IGNORED */ - { 37760, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ - { 37780, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ - { 37799, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - { 37828, 0x00001000 }, /* GL_TRANSFORM_BIT */ - { 37845, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ - { 37871, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ - { 37901, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - { 37933, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - { 37963, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ - { 37997, 0x0000862C }, /* GL_TRANSPOSE_NV */ - { 38013, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - { 38044, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ - { 38079, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - { 38107, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ - { 38139, 0x00000004 }, /* GL_TRIANGLES */ - { 38152, 0x00000006 }, /* GL_TRIANGLE_FAN */ - { 38168, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ - { 38189, 0x00000005 }, /* GL_TRIANGLE_STRIP */ - { 38207, 0x00000001 }, /* GL_TRUE */ - { 38215, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ - { 38235, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ - { 38258, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ - { 38278, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ - { 38299, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ - { 38321, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ - { 38343, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ - { 38363, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ - { 38384, 0x00009118 }, /* GL_UNSIGNALED */ - { 38398, 0x00001401 }, /* GL_UNSIGNED_BYTE */ - { 38415, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - { 38442, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ - { 38465, 0x00001405 }, /* GL_UNSIGNED_INT */ - { 38481, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ - { 38508, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ - { 38529, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ - { 38554, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ - { 38578, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - { 38609, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ - { 38633, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - { 38661, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ - { 38684, 0x00001403 }, /* GL_UNSIGNED_SHORT */ - { 38702, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - { 38732, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - { 38758, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - { 38788, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - { 38814, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ - { 38838, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - { 38866, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - { 38894, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ - { 38921, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - { 38953, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ - { 38984, 0x00008CA2 }, /* GL_UPPER_LEFT */ - { 38998, 0x00002A20 }, /* GL_V2F */ - { 39005, 0x00002A21 }, /* GL_V3F */ - { 39012, 0x00008B83 }, /* GL_VALIDATE_STATUS */ - { 39031, 0x00001F00 }, /* GL_VENDOR */ - { 39041, 0x00001F02 }, /* GL_VERSION */ - { 39052, 0x00008074 }, /* GL_VERTEX_ARRAY */ - { 39068, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ - { 39092, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ - { 39122, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - { 39153, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ - { 39188, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ - { 39212, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ - { 39233, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ - { 39256, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ - { 39277, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - { 39304, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - { 39332, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - { 39360, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - { 39388, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - { 39416, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - { 39444, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - { 39472, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - { 39499, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - { 39526, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - { 39553, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - { 39580, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - { 39607, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - { 39634, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - { 39661, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - { 39688, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - { 39715, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - { 39753, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ - { 39795, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - { 39826, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ - { 39861, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ - { 39895, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ - { 39933, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - { 39964, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ - { 39999, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - { 40027, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ - { 40059, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - { 40089, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ - { 40123, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ - { 40151, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ - { 40183, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ - { 40203, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ - { 40225, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ - { 40254, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ - { 40275, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - { 40304, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ - { 40337, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ - { 40369, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - { 40396, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ - { 40427, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ - { 40457, 0x00008B31 }, /* GL_VERTEX_SHADER */ - { 40474, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ - { 40495, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ - { 40522, 0x00000BA2 }, /* GL_VIEWPORT */ - { 40534, 0x00000800 }, /* GL_VIEWPORT_BIT */ - { 40550, 0x0000911D }, /* GL_WAIT_FAILED */ - { 40565, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ - { 40585, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - { 40616, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ - { 40651, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - { 40679, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - { 40704, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - { 40731, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - { 40756, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ - { 40780, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ - { 40799, 0x000088B9 }, /* GL_WRITE_ONLY */ - { 40813, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ - { 40831, 0x00001506 }, /* GL_XOR */ - { 40838, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ - { 40857, 0x00008757 }, /* GL_YCBCR_MESA */ - { 40871, 0x00000000 }, /* GL_ZERO */ - { 40879, 0x00000D16 }, /* GL_ZOOM_X */ - { 40889, 0x00000D17 }, /* GL_ZOOM_Y */ + { 37741, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */ + { 37761, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ + { 37780, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + { 37809, 0x00001000 }, /* GL_TRANSFORM_BIT */ + { 37826, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ + { 37852, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */ + { 37882, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + { 37914, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + { 37944, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */ + { 37978, 0x0000862C }, /* GL_TRANSPOSE_NV */ + { 37994, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + { 38025, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */ + { 38060, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + { 38088, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */ + { 38120, 0x00000004 }, /* GL_TRIANGLES */ + { 38133, 0x00000006 }, /* GL_TRIANGLE_FAN */ + { 38149, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ + { 38170, 0x00000005 }, /* GL_TRIANGLE_STRIP */ + { 38188, 0x00000001 }, /* GL_TRUE */ + { 38196, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ + { 38216, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ + { 38239, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ + { 38259, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ + { 38280, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ + { 38302, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ + { 38324, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ + { 38344, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ + { 38365, 0x00009118 }, /* GL_UNSIGNALED */ + { 38379, 0x00001401 }, /* GL_UNSIGNED_BYTE */ + { 38396, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + { 38423, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ + { 38446, 0x00001405 }, /* GL_UNSIGNED_INT */ + { 38462, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ + { 38489, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ + { 38510, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */ + { 38535, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */ + { 38559, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + { 38590, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ + { 38614, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + { 38642, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ + { 38665, 0x00001403 }, /* GL_UNSIGNED_SHORT */ + { 38683, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + { 38713, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + { 38739, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + { 38769, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + { 38795, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ + { 38819, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + { 38847, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + { 38875, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */ + { 38902, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + { 38934, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */ + { 38965, 0x00008CA2 }, /* GL_UPPER_LEFT */ + { 38979, 0x00002A20 }, /* GL_V2F */ + { 38986, 0x00002A21 }, /* GL_V3F */ + { 38993, 0x00008B83 }, /* GL_VALIDATE_STATUS */ + { 39012, 0x00001F00 }, /* GL_VENDOR */ + { 39022, 0x00001F02 }, /* GL_VERSION */ + { 39033, 0x00008074 }, /* GL_VERTEX_ARRAY */ + { 39049, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ + { 39073, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */ + { 39103, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + { 39134, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */ + { 39169, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ + { 39193, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ + { 39214, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ + { 39237, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ + { 39258, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + { 39285, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + { 39313, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + { 39341, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + { 39369, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + { 39397, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + { 39425, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + { 39453, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + { 39480, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + { 39507, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + { 39534, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + { 39561, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + { 39588, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + { 39615, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + { 39642, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + { 39669, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + { 39696, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + { 39734, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */ + { 39776, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + { 39807, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */ + { 39842, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + { 39876, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */ + { 39914, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + { 39945, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */ + { 39980, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + { 40008, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */ + { 40040, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + { 40070, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */ + { 40104, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + { 40132, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */ + { 40164, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ + { 40184, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ + { 40206, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ + { 40235, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */ + { 40256, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + { 40285, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */ + { 40318, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */ + { 40350, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + { 40377, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */ + { 40408, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */ + { 40438, 0x00008B31 }, /* GL_VERTEX_SHADER */ + { 40455, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */ + { 40476, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ + { 40503, 0x00000BA2 }, /* GL_VIEWPORT */ + { 40515, 0x00000800 }, /* GL_VIEWPORT_BIT */ + { 40531, 0x0000911D }, /* GL_WAIT_FAILED */ + { 40546, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ + { 40566, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + { 40597, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */ + { 40632, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + { 40660, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + { 40685, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + { 40712, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + { 40737, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ + { 40761, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ + { 40780, 0x000088B9 }, /* GL_WRITE_ONLY */ + { 40794, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */ + { 40812, 0x00001506 }, /* GL_XOR */ + { 40819, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ + { 40838, 0x00008757 }, /* GL_YCBCR_MESA */ + { 40852, 0x00000000 }, /* GL_ZERO */ + { 40860, 0x00000D16 }, /* GL_ZOOM_X */ + { 40870, 0x00000D17 }, /* GL_ZOOM_Y */ }; -static const unsigned reduced_enums[1347] = +static const unsigned reduced_enums[1346] = { 479, /* GL_FALSE */ 701, /* GL_LINES */ 703, /* GL_LINE_LOOP */ 710, /* GL_LINE_STRIP */ - 1766, /* GL_TRIANGLES */ - 1769, /* GL_TRIANGLE_STRIP */ - 1767, /* GL_TRIANGLE_FAN */ + 1765, /* GL_TRIANGLES */ + 1768, /* GL_TRIANGLE_STRIP */ + 1766, /* GL_TRIANGLE_FAN */ 1285, /* GL_QUADS */ 1289, /* GL_QUAD_STRIP */ 1171, /* GL_POLYGON */ @@ -3946,7 +3944,7 @@ static const unsigned reduced_enums[1347] = 1533, /* GL_STENCIL_WRITEMASK */ 853, /* GL_MATRIX_MODE */ 1025, /* GL_NORMALIZE */ - 1861, /* GL_VIEWPORT */ + 1860, /* GL_VIEWPORT */ 999, /* GL_MODELVIEW_STACK_DEPTH */ 1263, /* GL_PROJECTION_STACK_DEPTH */ 1740, /* GL_TEXTURE_STACK_DEPTH */ @@ -4008,12 +4006,12 @@ static const unsigned reduced_enums[1347] = 1117, /* GL_PIXEL_MAP_G_TO_G_SIZE */ 1115, /* GL_PIXEL_MAP_B_TO_B_SIZE */ 1113, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - 1778, /* GL_UNPACK_SWAP_BYTES */ - 1773, /* GL_UNPACK_LSB_FIRST */ - 1774, /* GL_UNPACK_ROW_LENGTH */ - 1777, /* GL_UNPACK_SKIP_ROWS */ - 1776, /* GL_UNPACK_SKIP_PIXELS */ - 1771, /* GL_UNPACK_ALIGNMENT */ + 1777, /* GL_UNPACK_SWAP_BYTES */ + 1772, /* GL_UNPACK_LSB_FIRST */ + 1773, /* GL_UNPACK_ROW_LENGTH */ + 1776, /* GL_UNPACK_SKIP_ROWS */ + 1775, /* GL_UNPACK_SKIP_PIXELS */ + 1770, /* GL_UNPACK_ALIGNMENT */ 1099, /* GL_PACK_SWAP_BYTES */ 1094, /* GL_PACK_LSB_FIRST */ 1095, /* GL_PACK_ROW_LENGTH */ @@ -4026,8 +4024,8 @@ static const unsigned reduced_enums[1347] = 641, /* GL_INDEX_OFFSET */ 1313, /* GL_RED_SCALE */ 1311, /* GL_RED_BIAS */ - 1879, /* GL_ZOOM_X */ - 1880, /* GL_ZOOM_Y */ + 1878, /* GL_ZOOM_X */ + 1879, /* GL_ZOOM_Y */ 603, /* GL_GREEN_SCALE */ 601, /* GL_GREEN_BIAS */ 93, /* GL_BLUE_SCALE */ @@ -4112,11 +4110,11 @@ static const unsigned reduced_enums[1347] = 244, /* GL_COMPILE */ 245, /* GL_COMPILE_AND_EXECUTE */ 120, /* GL_BYTE */ - 1780, /* GL_UNSIGNED_BYTE */ + 1779, /* GL_UNSIGNED_BYTE */ 1437, /* GL_SHORT */ - 1792, /* GL_UNSIGNED_SHORT */ + 1791, /* GL_UNSIGNED_SHORT */ 645, /* GL_INT */ - 1783, /* GL_UNSIGNED_INT */ + 1782, /* GL_UNSIGNED_INT */ 489, /* GL_FLOAT */ 1, /* GL_2_BYTES */ 5, /* GL_3_BYTES */ @@ -4128,7 +4126,7 @@ static const unsigned reduced_enums[1347] = 299, /* GL_COPY */ 51, /* GL_AND_INVERTED */ 1023, /* GL_NOOP */ - 1875, /* GL_XOR */ + 1874, /* GL_XOR */ 1086, /* GL_OR */ 1024, /* GL_NOR */ 470, /* GL_EQUIV */ @@ -4172,9 +4170,9 @@ static const unsigned reduced_enums[1347] = 1339, /* GL_REPLACE */ 627, /* GL_INCR */ 342, /* GL_DECR */ - 1807, /* GL_VENDOR */ + 1806, /* GL_VENDOR */ 1336, /* GL_RENDERER */ - 1808, /* GL_VERSION */ + 1807, /* GL_VERSION */ 474, /* GL_EXTENSIONS */ 1387, /* GL_S */ 1553, /* GL_T */ @@ -4207,8 +4205,8 @@ static const unsigned reduced_enums[1347] = 1178, /* GL_POLYGON_OFFSET_POINT */ 1177, /* GL_POLYGON_OFFSET_LINE */ 1297, /* GL_R3_G3_B2 */ - 1804, /* GL_V2F */ - 1805, /* GL_V3F */ + 1803, /* GL_V2F */ + 1804, /* GL_V3F */ 123, /* GL_C4UB_V2F */ 124, /* GL_C4UB_V3F */ 121, /* GL_C3F_V3F */ @@ -4281,11 +4279,11 @@ static const unsigned reduced_enums[1347] = 951, /* GL_MINMAX_FORMAT */ 953, /* GL_MINMAX_SINK */ 1561, /* GL_TABLE_TOO_LARGE_EXT */ - 1782, /* GL_UNSIGNED_BYTE_3_3_2 */ - 1794, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - 1796, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - 1789, /* GL_UNSIGNED_INT_8_8_8_8 */ - 1784, /* GL_UNSIGNED_INT_10_10_10_2 */ + 1781, /* GL_UNSIGNED_BYTE_3_3_2 */ + 1793, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + 1795, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + 1788, /* GL_UNSIGNED_INT_8_8_8_8 */ + 1783, /* GL_UNSIGNED_INT_10_10_10_2 */ 1176, /* GL_POLYGON_OFFSET_FILL */ 1175, /* GL_POLYGON_OFFSET_FACTOR */ 1174, /* GL_POLYGON_OFFSET_BIAS */ @@ -4340,22 +4338,22 @@ static const unsigned reduced_enums[1347] = 1639, /* GL_TEXTURE_BINDING_3D */ 1096, /* GL_PACK_SKIP_IMAGES */ 1092, /* GL_PACK_IMAGE_HEIGHT */ - 1775, /* GL_UNPACK_SKIP_IMAGES */ - 1772, /* GL_UNPACK_IMAGE_HEIGHT */ + 1774, /* GL_UNPACK_SKIP_IMAGES */ + 1771, /* GL_UNPACK_IMAGE_HEIGHT */ 1631, /* GL_TEXTURE_3D */ 1277, /* GL_PROXY_TEXTURE_3D */ 1694, /* GL_TEXTURE_DEPTH */ 1747, /* GL_TEXTURE_WRAP_R */ 856, /* GL_MAX_3D_TEXTURE_SIZE */ - 1809, /* GL_VERTEX_ARRAY */ + 1808, /* GL_VERTEX_ARRAY */ 1026, /* GL_NORMAL_ARRAY */ 148, /* GL_COLOR_ARRAY */ 631, /* GL_INDEX_ARRAY */ 1672, /* GL_TEXTURE_COORD_ARRAY */ 459, /* GL_EDGE_FLAG_ARRAY */ - 1815, /* GL_VERTEX_ARRAY_SIZE */ - 1817, /* GL_VERTEX_ARRAY_TYPE */ - 1816, /* GL_VERTEX_ARRAY_STRIDE */ + 1814, /* GL_VERTEX_ARRAY_SIZE */ + 1816, /* GL_VERTEX_ARRAY_TYPE */ + 1815, /* GL_VERTEX_ARRAY_STRIDE */ 1031, /* GL_NORMAL_ARRAY_TYPE */ 1030, /* GL_NORMAL_ARRAY_STRIDE */ 152, /* GL_COLOR_ARRAY_SIZE */ @@ -4367,7 +4365,7 @@ static const unsigned reduced_enums[1347] = 1678, /* GL_TEXTURE_COORD_ARRAY_TYPE */ 1677, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ 463, /* GL_EDGE_FLAG_ARRAY_STRIDE */ - 1814, /* GL_VERTEX_ARRAY_POINTER */ + 1813, /* GL_VERTEX_ARRAY_POINTER */ 1029, /* GL_NORMAL_ARRAY_POINTER */ 151, /* GL_COLOR_ARRAY_POINTER */ 634, /* GL_INDEX_ARRAY_POINTER */ @@ -4467,7 +4465,7 @@ static const unsigned reduced_enums[1347] = 306, /* GL_CULL_VERTEX_EXT */ 308, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ 307, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ - 1872, /* GL_WRAP_BORDER_SUN */ + 1871, /* GL_WRAP_BORDER_SUN */ 1656, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ 690, /* GL_LIGHT_MODEL_COLOR_CONTROL */ 1440, /* GL_SINGLE_COLOR */ @@ -4485,13 +4483,13 @@ static const unsigned reduced_enums[1347] = 580, /* GL_FRAMEBUFFER_UNDEFINED */ 373, /* GL_DEPTH_STENCIL_ATTACHMENT */ 630, /* GL_INDEX */ - 1781, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - 1797, /* GL_UNSIGNED_SHORT_5_6_5 */ - 1798, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - 1795, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - 1793, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - 1790, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - 1788, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + 1780, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + 1796, /* GL_UNSIGNED_SHORT_5_6_5 */ + 1797, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + 1794, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + 1792, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + 1789, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + 1787, /* GL_UNSIGNED_INT_2_10_10_10_REV */ 1726, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ 1727, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ 1725, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ @@ -4562,10 +4560,10 @@ static const unsigned reduced_enums[1347] = 18, /* GL_ACTIVE_TEXTURE */ 133, /* GL_CLIENT_ACTIVE_TEXTURE */ 934, /* GL_MAX_TEXTURE_UNITS */ - 1759, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - 1762, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - 1764, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - 1756, /* GL_TRANSPOSE_COLOR_MATRIX */ + 1758, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + 1761, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + 1763, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + 1755, /* GL_TRANSPOSE_COLOR_MATRIX */ 1545, /* GL_SUBTRACT */ 919, /* GL_MAX_RENDERBUFFER_SIZE */ 247, /* GL_COMPRESSED_ALPHA */ @@ -4580,7 +4578,7 @@ static const unsigned reduced_enums[1347] = 1281, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */ 917, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */ 372, /* GL_DEPTH_STENCIL */ - 1785, /* GL_UNSIGNED_INT_24_8 */ + 1784, /* GL_UNSIGNED_INT_24_8 */ 930, /* GL_MAX_TEXTURE_LOD_BIAS */ 1724, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ 931, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ @@ -4633,32 +4631,32 @@ static const unsigned reduced_enums[1347] = 1072, /* GL_OPERAND1_ALPHA */ 1078, /* GL_OPERAND2_ALPHA */ 1084, /* GL_OPERAND3_ALPHA_NV */ - 1810, /* GL_VERTEX_ARRAY_BINDING */ + 1809, /* GL_VERTEX_ARRAY_BINDING */ 1733, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ 1734, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - 1876, /* GL_YCBCR_422_APPLE */ - 1799, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - 1801, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + 1875, /* GL_YCBCR_422_APPLE */ + 1798, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + 1800, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ 1743, /* GL_TEXTURE_STORAGE_HINT_APPLE */ 1536, /* GL_STORAGE_PRIVATE_APPLE */ 1535, /* GL_STORAGE_CACHED_APPLE */ 1537, /* GL_STORAGE_SHARED_APPLE */ 1442, /* GL_SLICE_ACCUM_SUN */ 1288, /* GL_QUAD_MESH_SUN */ - 1768, /* GL_TRIANGLE_MESH_SUN */ - 1849, /* GL_VERTEX_PROGRAM_ARB */ - 1860, /* GL_VERTEX_STATE_PROGRAM_NV */ - 1836, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - 1842, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - 1844, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - 1846, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + 1767, /* GL_TRIANGLE_MESH_SUN */ + 1848, /* GL_VERTEX_PROGRAM_ARB */ + 1859, /* GL_VERTEX_STATE_PROGRAM_NV */ + 1835, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + 1841, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + 1843, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + 1845, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ 334, /* GL_CURRENT_VERTEX_ATTRIB */ 1240, /* GL_PROGRAM_LENGTH_ARB */ 1254, /* GL_PROGRAM_STRING_ARB */ 998, /* GL_MODELVIEW_PROJECTION_NV */ 623, /* GL_IDENTITY_NV */ 670, /* GL_INVERSE_NV */ - 1761, /* GL_TRANSPOSE_NV */ + 1760, /* GL_TRANSPOSE_NV */ 671, /* GL_INVERSE_TRANSPOSE_NV */ 903, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ 902, /* GL_MAX_PROGRAM_MATRICES_ARB */ @@ -4672,33 +4670,33 @@ static const unsigned reduced_enums[1347] = 845, /* GL_MATRIX7_NV */ 318, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ 315, /* GL_CURRENT_MATRIX_ARB */ - 1852, /* GL_VERTEX_PROGRAM_POINT_SIZE */ - 1855, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + 1851, /* GL_VERTEX_PROGRAM_POINT_SIZE */ + 1854, /* GL_VERTEX_PROGRAM_TWO_SIDE */ 1252, /* GL_PROGRAM_PARAMETER_NV */ - 1840, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + 1839, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ 1256, /* GL_PROGRAM_TARGET_NV */ 1253, /* GL_PROGRAM_RESIDENT_NV */ - 1753, /* GL_TRACK_MATRIX_NV */ - 1754, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - 1850, /* GL_VERTEX_PROGRAM_BINDING_NV */ + 1752, /* GL_TRACK_MATRIX_NV */ + 1753, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + 1849, /* GL_VERTEX_PROGRAM_BINDING_NV */ 1234, /* GL_PROGRAM_ERROR_POSITION_ARB */ 356, /* GL_DEPTH_CLAMP */ - 1818, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - 1825, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - 1826, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - 1827, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - 1828, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - 1829, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - 1830, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - 1831, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - 1832, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - 1833, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - 1819, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - 1820, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - 1821, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - 1822, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - 1823, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - 1824, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + 1817, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + 1824, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + 1825, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + 1826, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + 1827, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + 1828, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + 1829, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + 1830, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + 1831, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + 1832, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + 1818, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + 1819, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + 1820, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + 1821, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + 1822, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + 1823, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ 757, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ 764, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ 765, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ @@ -4737,14 +4735,14 @@ static const unsigned reduced_enums[1347] = 269, /* GL_COMPRESSED_TEXTURE_FORMATS */ 946, /* GL_MAX_VERTEX_UNITS_ARB */ 22, /* GL_ACTIVE_VERTEX_UNITS_ARB */ - 1871, /* GL_WEIGHT_SUM_UNITY_ARB */ - 1848, /* GL_VERTEX_BLEND_ARB */ + 1870, /* GL_WEIGHT_SUM_UNITY_ARB */ + 1847, /* GL_VERTEX_BLEND_ARB */ 336, /* GL_CURRENT_WEIGHT_ARB */ - 1870, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - 1869, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - 1868, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - 1867, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - 1864, /* GL_WEIGHT_ARRAY_ARB */ + 1869, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + 1868, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + 1867, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + 1866, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + 1863, /* GL_WEIGHT_ARRAY_ARB */ 386, /* GL_DOT3_RGB */ 387, /* GL_DOT3_RGBA */ 263, /* GL_COMPRESSED_RGB_FXT1_3DFX */ @@ -4789,7 +4787,7 @@ static const unsigned reduced_enums[1347] = 1001, /* GL_MODULATE_ADD_ATI */ 1002, /* GL_MODULATE_SIGNED_ADD_ATI */ 1003, /* GL_MODULATE_SUBTRACT_ATI */ - 1877, /* GL_YCBCR_MESA */ + 1876, /* GL_YCBCR_MESA */ 1093, /* GL_PACK_INVERT_MESA */ 339, /* GL_DEBUG_OBJECT_MESA */ 340, /* GL_DEBUG_PRINT_MESA */ @@ -4862,7 +4860,7 @@ static const unsigned reduced_enums[1347] = 1292, /* GL_QUERY_RESULT */ 1294, /* GL_QUERY_RESULT_AVAILABLE */ 940, /* GL_MAX_VERTEX_ATTRIBS */ - 1838, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + 1837, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ 377, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ 376, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ 926, /* GL_MAX_TEXTURE_COORDS */ @@ -4877,7 +4875,7 @@ static const unsigned reduced_enums[1347] = 464, /* GL_ELEMENT_ARRAY_BUFFER */ 54, /* GL_ARRAY_BUFFER_BINDING */ 465, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ - 1812, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + 1811, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ 1027, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ 149, /* GL_COLOR_ARRAY_BUFFER_BINDING */ 632, /* GL_INDEX_ARRAY_BUFFER_BINDING */ @@ -4885,8 +4883,8 @@ static const unsigned reduced_enums[1347] = 460, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ 1416, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ 514, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ - 1865, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - 1834, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + 1864, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + 1833, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ 1239, /* GL_PROGRAM_INSTRUCTIONS_ARB */ 898, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ 1245, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ @@ -4910,14 +4908,14 @@ static const unsigned reduced_enums[1347] = 899, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ 895, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ 1260, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - 1758, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + 1757, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ 1304, /* GL_READ_ONLY */ - 1873, /* GL_WRITE_ONLY */ + 1872, /* GL_WRITE_ONLY */ 1306, /* GL_READ_WRITE */ 102, /* GL_BUFFER_ACCESS */ 105, /* GL_BUFFER_MAPPED */ 107, /* GL_BUFFER_MAP_POINTER */ - 1752, /* GL_TIME_ELAPSED_EXT */ + 1751, /* GL_TIME_ELAPSED_EXT */ 808, /* GL_MATRIX0_ARB */ 820, /* GL_MATRIX1_ARB */ 832, /* GL_MATRIX2_ARB */ @@ -4978,7 +4976,7 @@ static const unsigned reduced_enums[1347] = 109, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ 104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ 537, /* GL_FRAGMENT_SHADER */ - 1858, /* GL_VERTEX_SHADER */ + 1857, /* GL_VERTEX_SHADER */ 1250, /* GL_PROGRAM_OBJECT_ARB */ 1429, /* GL_SHADER_OBJECT_ARB */ 882, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ @@ -5016,7 +5014,7 @@ static const unsigned reduced_enums[1347] = 345, /* GL_DELETE_STATUS */ 246, /* GL_COMPILE_STATUS */ 715, /* GL_LINK_STATUS */ - 1806, /* GL_VALIDATE_STATUS */ + 1805, /* GL_VALIDATE_STATUS */ 644, /* GL_INFO_LOG_LENGTH */ 56, /* GL_ATTACHED_SHADERS */ 20, /* GL_ACTIVE_UNIFORMS */ @@ -5039,7 +5037,7 @@ static const unsigned reduced_enums[1347] = 1106, /* GL_PALETTE8_RGB5_A1_OES */ 626, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */ 625, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */ - 1791, /* GL_UNSIGNED_NORMALIZED */ + 1790, /* GL_UNSIGNED_NORMALIZED */ 1628, /* GL_TEXTURE_1D_ARRAY_EXT */ 1272, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */ 1630, /* GL_TEXTURE_2D_ARRAY_EXT */ @@ -5060,7 +5058,7 @@ static const unsigned reduced_enums[1347] = 266, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ 1167, /* GL_POINT_SPRITE_COORD_ORIGIN */ 723, /* GL_LOWER_LEFT */ - 1803, /* GL_UPPER_LEFT */ + 1802, /* GL_UPPER_LEFT */ 1509, /* GL_STENCIL_BACK_REF */ 1510, /* GL_STENCIL_BACK_VALUE_MASK */ 1511, /* GL_STENCIL_BACK_WRITEMASK */ @@ -5138,12 +5136,12 @@ static const unsigned reduced_enums[1347] = 1549, /* GL_SYNC_FLAGS */ 1548, /* GL_SYNC_FENCE */ 1551, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - 1779, /* GL_UNSIGNALED */ + 1778, /* GL_UNSIGNALED */ 1438, /* GL_SIGNALED */ 46, /* GL_ALREADY_SIGNALED */ 1750, /* GL_TIMEOUT_EXPIRED */ 270, /* GL_CONDITION_SATISFIED */ - 1863, /* GL_WAIT_FAILED */ + 1862, /* GL_WAIT_FAILED */ 471, /* GL_EVAL_BIT */ 1298, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ 717, /* GL_LIST_BIT */ @@ -5152,7 +5150,6 @@ static const unsigned reduced_enums[1347] = 29, /* GL_ALL_ATTRIB_BITS */ 1008, /* GL_MULTISAMPLE_BIT */ 30, /* GL_ALL_CLIENT_ATTRIB_BITS */ - 1751, /* GL_TIMEOUT_IGNORED */ }; typedef int (*cfunc)(const void *, const void *); From 6130bb13913090f7477d3dab5662c7e80c7b9293 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Mon, 4 Jan 2010 12:06:04 -0800 Subject: [PATCH 49/56] mesa: Prevent possible array out-of-bounds access by _mesa_light. --- src/mesa/main/attrib.c | 47 ++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 246c5521b7d..a14f71c3306 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -1043,22 +1043,39 @@ _mesa_PopAttrib(void) _math_matrix_analyse( ctx->ModelviewMatrixStack.Top ); for (i = 0; i < ctx->Const.MaxLights; i++) { - const struct gl_light *l = &light->Light[i]; + const struct gl_light *l = &light->Light[i]; _mesa_set_enable(ctx, GL_LIGHT0 + i, l->Enabled); - _mesa_light(ctx, i, GL_AMBIENT, l->Ambient); - _mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse); - _mesa_light(ctx, i, GL_SPECULAR, l->Specular ); - _mesa_light(ctx, i, GL_POSITION, l->EyePosition); - _mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection); - _mesa_light(ctx, i, GL_SPOT_EXPONENT, &l->SpotExponent); - _mesa_light(ctx, i, GL_SPOT_CUTOFF, &l->SpotCutoff); - _mesa_light(ctx, i, GL_CONSTANT_ATTENUATION, - &l->ConstantAttenuation); - _mesa_light(ctx, i, GL_LINEAR_ATTENUATION, - &l->LinearAttenuation); - _mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION, - &l->QuadraticAttenuation); - } + _mesa_light(ctx, i, GL_AMBIENT, l->Ambient); + _mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse); + _mesa_light(ctx, i, GL_SPECULAR, l->Specular ); + _mesa_light(ctx, i, GL_POSITION, l->EyePosition); + _mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection); + { + GLfloat p[4] = { 0 }; + p[0] = l->SpotExponent; + _mesa_light(ctx, i, GL_SPOT_EXPONENT, p); + } + { + GLfloat p[4] = { 0 }; + p[0] = l->SpotCutoff; + _mesa_light(ctx, i, GL_SPOT_CUTOFF, p); + } + { + GLfloat p[4] = { 0 }; + p[0] = l->ConstantAttenuation; + _mesa_light(ctx, i, GL_CONSTANT_ATTENUATION, p); + } + { + GLfloat p[4] = { 0 }; + p[0] = l->LinearAttenuation; + _mesa_light(ctx, i, GL_LINEAR_ATTENUATION, p); + } + { + GLfloat p[4] = { 0 }; + p[0] = l->QuadraticAttenuation; + _mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION, p); + } + } /* light model */ _mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT, light->Model.Ambient); From 01bf004d8bef298298621dc9e13b4119e3ced572 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 4 Jan 2010 12:47:37 -0700 Subject: [PATCH 50/56] docs: initial release notes for 7.7.1 --- docs/relnotes-7.7.1.html | 48 ++++++++++++++++++++++++++++++++++++++++ docs/relnotes.html | 1 + 2 files changed, 49 insertions(+) create mode 100644 docs/relnotes-7.7.1.html diff --git a/docs/relnotes-7.7.1.html b/docs/relnotes-7.7.1.html new file mode 100644 index 00000000000..61a11675749 --- /dev/null +++ b/docs/relnotes-7.7.1.html @@ -0,0 +1,48 @@ + + +Mesa Release Notes + + + + + + + +

Mesa 7.7.1 Release Notes / date tbd

+ +

+Mesa 7.7.1 is a bug-fix release. +

+

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

+

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

+ + +

MD5 checksums

+
+tbd
+
+ + +

New features

+
    +
  • tbd +
+ + +

Bug fixes

+
    +
  • Assorted fixes to VMware SVGA gallium driver. +
  • Fixed broken blending to multiple color buffers in swrast driver. +
  • Allocate constants more tightly in GL_ARB_vertex/fragment parser. +
+ + + + diff --git a/docs/relnotes.html b/docs/relnotes.html index b301ee046a7..b06548ae61a 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.

    +
  • 7.7.1 release notes
  • 7.7 release notes
  • 7.6.1 release notes
  • 7.6 release notes From 82421c549f782cee0d377a064852813117ff6850 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 4 Jan 2010 13:59:43 -0700 Subject: [PATCH 51/56] mesa: added GL_DU8DV8_ATI in extract_float_rgba() Fixes warning seen with Shadowgrounds. See bug 24016. --- src/mesa/main/image.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index 139e56a96be..3b685cb9471 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -3228,6 +3228,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4], srcFormat == GL_RGBA || srcFormat == GL_BGRA || srcFormat == GL_ABGR_EXT || + srcFormat == GL_DU8DV8_ATI || srcFormat == GL_DUDV_ATI); ASSERT(srcType == GL_UNSIGNED_BYTE || @@ -3343,6 +3344,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4], aComp = 0; stride = 4; break; + case GL_DU8DV8_ATI: case GL_DUDV_ATI: redIndex = 0; greenIndex = 1; From a160d1c27de8afcf072b4fd438d6a37f16742e75 Mon Sep 17 00:00:00 2001 From: Andre Maasikas Date: Tue, 29 Dec 2009 14:47:01 +0200 Subject: [PATCH 52/56] r600: support vertex_array_bgra Use vertex program key mechanism and swizzle during vertex fetch - is there a better way? --- src/mesa/drivers/dri/r600/r600_context.h | 1 + src/mesa/drivers/dri/r600/r700_assembler.c | 20 ++++++++++++++++---- src/mesa/drivers/dri/r600/r700_assembler.h | 1 + src/mesa/drivers/dri/r600/r700_vertprog.c | 8 ++++++-- src/mesa/drivers/dri/r600/r700_vertprog.h | 1 + 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/r600/r600_context.h b/src/mesa/drivers/dri/r600/r600_context.h index 394fd757d4b..94662ab5479 100644 --- a/src/mesa/drivers/dri/r600/r600_context.h +++ b/src/mesa/drivers/dri/r600/r600_context.h @@ -108,6 +108,7 @@ typedef struct StreamDesc GLint size; //number of data element GLenum type; //data element type GLsizei stride; + GLenum format; // GL_RGBA,GLBGRA struct radeon_bo *bo; GLint bo_offset; diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c index 67e0ee77463..b0b38927e67 100644 --- a/src/mesa/drivers/dri/r600/r700_assembler.c +++ b/src/mesa/drivers/dri/r600/r700_assembler.c @@ -798,6 +798,7 @@ GLboolean assemble_vfetch_instruction2(r700_AssemblerBase* pAsm, GLubyte element, GLuint _signed, GLboolean normalize, + GLenum format, VTX_FETCH_METHOD * pFetchMethod) { GLuint client_size_inbyte; @@ -846,10 +847,21 @@ GLboolean assemble_vfetch_instruction2(r700_AssemblerBase* pAsm, vfetch_instruction_ptr->m_Word0.f.src_sel_x = SQ_SEL_X; vfetch_instruction_ptr->m_Word0.f.mega_fetch_count = mega_fetch_count; - vfetch_instruction_ptr->m_Word1.f.dst_sel_x = (size < 1) ? SQ_SEL_0 : SQ_SEL_X; - vfetch_instruction_ptr->m_Word1.f.dst_sel_y = (size < 2) ? SQ_SEL_0 : SQ_SEL_Y; - vfetch_instruction_ptr->m_Word1.f.dst_sel_z = (size < 3) ? SQ_SEL_0 : SQ_SEL_Z; - vfetch_instruction_ptr->m_Word1.f.dst_sel_w = (size < 4) ? SQ_SEL_1 : SQ_SEL_W; + if(format == GL_BGRA) + { + vfetch_instruction_ptr->m_Word1.f.dst_sel_x = (size < 1) ? SQ_SEL_0 : SQ_SEL_Z; + vfetch_instruction_ptr->m_Word1.f.dst_sel_y = (size < 2) ? SQ_SEL_0 : SQ_SEL_Y; + vfetch_instruction_ptr->m_Word1.f.dst_sel_z = (size < 3) ? SQ_SEL_0 : SQ_SEL_X; + vfetch_instruction_ptr->m_Word1.f.dst_sel_w = (size < 4) ? SQ_SEL_1 : SQ_SEL_W; + } + else + { + vfetch_instruction_ptr->m_Word1.f.dst_sel_x = (size < 1) ? SQ_SEL_0 : SQ_SEL_X; + vfetch_instruction_ptr->m_Word1.f.dst_sel_y = (size < 2) ? SQ_SEL_0 : SQ_SEL_Y; + vfetch_instruction_ptr->m_Word1.f.dst_sel_z = (size < 3) ? SQ_SEL_0 : SQ_SEL_Z; + vfetch_instruction_ptr->m_Word1.f.dst_sel_w = (size < 4) ? SQ_SEL_1 : SQ_SEL_W; + + } vfetch_instruction_ptr->m_Word1.f.use_const_fields = 1; vfetch_instruction_ptr->m_Word1.f.data_format = data_format; diff --git a/src/mesa/drivers/dri/r600/r700_assembler.h b/src/mesa/drivers/dri/r600/r700_assembler.h index c66db502a17..ee125826612 100644 --- a/src/mesa/drivers/dri/r600/r700_assembler.h +++ b/src/mesa/drivers/dri/r600/r700_assembler.h @@ -422,6 +422,7 @@ GLboolean assemble_vfetch_instruction2(r700_AssemblerBase* pAsm, GLubyte element, GLuint _signed, GLboolean normalize, + GLenum format, VTX_FETCH_METHOD * pFetchMethod); GLboolean cleanup_vfetch_instructions(r700_AssemblerBase* pAsm); GLuint gethelpr(r700_AssemblerBase* pAsm); diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.c index ffc6068bd88..4ca5ce693a8 100644 --- a/src/mesa/drivers/dri/r600/r700_vertprog.c +++ b/src/mesa/drivers/dri/r600/r700_vertprog.c @@ -179,7 +179,8 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions2( context->stream_desc[i].size, context->stream_desc[i].element, context->stream_desc[i]._signed, - context->stream_desc[i].normalize, + context->stream_desc[i].normalize, + context->stream_desc[i].format, &vtxFetchMethod); } @@ -308,6 +309,7 @@ struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx, vp->aos_desc[i].size = context->stream_desc[i].size; vp->aos_desc[i].stride = context->stream_desc[i].stride; vp->aos_desc[i].type = context->stream_desc[i].type; + vp->aos_desc[i].format = context->stream_desc[i].format; } if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770) @@ -368,7 +370,8 @@ void r700SelectVertexShader(GLcontext *ctx) match = GL_TRUE; for(i=0; inNumActiveAos; i++) { - if (vp->aos_desc[i].size != context->stream_desc[i].size) + if (vp->aos_desc[i].size != context->stream_desc[i].size || + vp->aos_desc[i].format != context->stream_desc[i].format) { match = GL_FALSE; break; @@ -471,6 +474,7 @@ static void r700TranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, const s pStreamDesc->size = input->Size; pStreamDesc->dst_loc = context->nNumActiveAos; pStreamDesc->element = unLoc; + pStreamDesc->format = input->Format; switch (pStreamDesc->type) { //GetSurfaceFormat diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.h b/src/mesa/drivers/dri/r600/r700_vertprog.h index 00824c29d32..645c9ac84aa 100644 --- a/src/mesa/drivers/dri/r600/r700_vertprog.h +++ b/src/mesa/drivers/dri/r600/r700_vertprog.h @@ -39,6 +39,7 @@ typedef struct ArrayDesc //TEMP GLint size; //number of data element GLenum type; //data element type GLsizei stride; + GLenum format; //GL_RGBA or GL_BGRA } ArrayDesc; struct r700_vertex_program From 63610fae4f46361f2500577a83bf5ac6f9e8b0ac Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 4 Jan 2010 08:47:01 -0800 Subject: [PATCH 53/56] i965: Fix the surface offset calculation for tiled buffers. If we ever had a non-tile-aligned tiled renderbuffer, the math was all off. Use the existing x,y coordinates instead of trying to reconstruct them from an incorrectly-calculated offset value. --- .../drivers/dri/i965/brw_wm_surface_state.c | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 8335e5a650e..afb36b7bd7d 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -522,7 +522,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw, GLubyte color_mask[4]; GLboolean color_blend; uint32_t tiling; - uint32_t draw_offset; + uint32_t draw_x; + uint32_t draw_y; } key; memset(&key, 0, sizeof(key)); @@ -564,7 +565,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw, } key.pitch = region->pitch; key.cpp = region->cpp; - key.draw_offset = region->draw_offset; /* cur 3d or cube face offset */ + key.draw_x = region->draw_x; + key.draw_y = region->draw_y; } else { key.surface_type = BRW_SURFACE_NULL; key.surface_format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM; @@ -572,7 +574,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw, key.width = 1; key.height = 1; key.cpp = 4; - key.draw_offset = 0; + key.draw_x = 0; + key.draw_y = 0; } /* _NEW_COLOR */ memcpy(key.color_mask, ctx->Color.ColorMask, @@ -602,25 +605,32 @@ brw_update_renderbuffer_surface(struct brw_context *brw, surf.ss0.surface_format = key.surface_format; surf.ss0.surface_type = key.surface_type; if (key.tiling == I915_TILING_NONE) { - surf.ss1.base_addr = key.draw_offset; + surf.ss1.base_addr = (key.draw_x + key.draw_y * key.pitch) * key.cpp; } else { - uint32_t tile_offset = key.draw_offset % 4096; + uint32_t tile_base, tile_x, tile_y; + uint32_t pitch = key.pitch * key.cpp; - surf.ss1.base_addr = key.draw_offset - tile_offset; - - assert(BRW_IS_G4X(brw) || tile_offset == 0); - if (BRW_IS_G4X(brw)) { - if (key.tiling == I915_TILING_X) { - /* Note that the low bits of these fields are missing, so - * there's the possibility of getting in trouble. - */ - surf.ss5.x_offset = (tile_offset % 512) / key.cpp / 4; - surf.ss5.y_offset = tile_offset / 512 / 2; - } else { - surf.ss5.x_offset = (tile_offset % 128) / key.cpp / 4; - surf.ss5.y_offset = tile_offset / 128 / 2; - } + if (key.tiling == I915_TILING_X) { + tile_x = key.draw_x % (512 / key.cpp); + tile_y = key.draw_y % 8; + tile_base = ((key.draw_y / 8) * (8 * pitch)); + tile_base += (key.draw_x - tile_x) / (512 / key.cpp) * 4096; + } else { + /* Y */ + tile_x = key.draw_x % (128 / key.cpp); + tile_y = key.draw_y % 32; + tile_base = ((key.draw_y / 32) * (32 * pitch)); + tile_base += (key.draw_x - tile_x) / (128 / key.cpp) * 4096; } + assert(BRW_IS_G4X(brw) || (tile_x == 0 && tile_y == 0)); + assert(tile_x % 4 == 0); + assert(tile_y % 2 == 0); + /* Note that the low bits of these fields are missing, so + * there's the possibility of getting in trouble. + */ + surf.ss1.base_addr = tile_base; + surf.ss5.x_offset = tile_x / 4; + surf.ss5.y_offset = tile_y / 2; } if (region_bo != NULL) surf.ss1.base_addr += region_bo->offset; /* reloc */ From 19a26dfc474618ecfe881846a8c9dac221332d44 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 4 Jan 2010 09:39:07 -0800 Subject: [PATCH 54/56] intel: Fix CopyTexImage from tiled mipmap levels > 0. Fixes piglit fbo-copyteximage. --- src/mesa/drivers/dri/intel/intel_tex_copy.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_tex_copy.c b/src/mesa/drivers/dri/intel/intel_tex_copy.c index ee953cfbe78..ef5aed32f31 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_copy.c +++ b/src/mesa/drivers/dri/intel/intel_tex_copy.c @@ -160,13 +160,14 @@ do_copy_texsubimage(struct intel_context *intel, intelImage->mt->cpp, src_pitch, src->buffer, - src->draw_offset, + 0, src->tiling, intelImage->mt->pitch, dst_bo, 0, intelImage->mt->region->tiling, - x, y, image_x + dstx, image_y + dsty, + src->draw_x + x, src->draw_y + y, + image_x + dstx, image_y + dsty, width, height, GL_COPY)) { UNLOCK_HARDWARE(intel); From b434a816d7a4b298e16a8b51b54e5a2d5ea28da8 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 29 Dec 2009 15:55:34 -0800 Subject: [PATCH 55/56] i915: Use _MaxLevel on principle in texture setup. It was OK before because we proceed to clamp the value to hardware limits, but given that other use of MaxLevel has been a trap, let's avoid it. --- src/mesa/drivers/dri/i915/i915_texstate.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c b/src/mesa/drivers/dri/i915/i915_texstate.c index de258484d6c..825f1dbbe3e 100644 --- a/src/mesa/drivers/dri/i915/i915_texstate.c +++ b/src/mesa/drivers/dri/i915/i915_texstate.c @@ -196,10 +196,11 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3) state[I915_TEXREG_MS3] |= MS3_TILE_WALK; } - /* We get one field with fraction bits to cover the maximum addressable (smallest - * resolution) LOD. Use it to cover both MAX_LEVEL and MAX_LOD. + /* We get one field with fraction bits for the maximum addressable + * (lowest resolution) LOD. Use it to cover both MAX_LEVEL and + * MAX_LOD. */ - maxlod = MIN2(tObj->MaxLod, tObj->MaxLevel - tObj->BaseLevel); + maxlod = MIN2(tObj->MaxLod, tObj->_MaxLevel - tObj->BaseLevel); state[I915_TEXREG_MS4] = ((((pitch / 4) - 1) << MS4_PITCH_SHIFT) | MS4_CUBE_FACE_ENA_MASK | From 6d845808589b9df84f23551b122533a55dce6bd5 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 4 Jan 2010 19:05:31 -0700 Subject: [PATCH 56/56] mesa: add missing _mesa_lock_texture() call --- src/mesa/main/texparam.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index db4c7a5edad..9e1a889bced 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -1165,6 +1165,7 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) return; } + _mesa_lock_texture(ctx, obj); switch (pname) { case GL_TEXTURE_MAG_FILTER: *params = (GLint) obj->MagFilter;