From 5e66843733c8123e73cadc1bc5c6111d64abaf25 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Fri, 23 Feb 2007 01:43:13 +0100 Subject: [PATCH 1/5] r200 fix broken (by new input handling) fogcoord --- src/mesa/drivers/dri/r200/r200_maos_arrays.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/r200/r200_maos_arrays.c b/src/mesa/drivers/dri/r200/r200_maos_arrays.c index 6a6c30a2b0d..3162b508c23 100644 --- a/src/mesa/drivers/dri/r200/r200_maos_arrays.c +++ b/src/mesa/drivers/dri/r200/r200_maos_arrays.c @@ -420,14 +420,14 @@ void r200EmitArrays( GLcontext *ctx, GLubyte *vimap_rev ) if (!rmesa->tcl.vertex_data[i].buf) { if (ctx->VertexProgram._Enabled) emit_vector( ctx, - &(rmesa->tcl.vertex_data[attrib]), + &(rmesa->tcl.vertex_data[i]), (char *)VB->AttribPtr[attrib]->data, 1, VB->AttribPtr[attrib]->stride, count); else emit_vecfog( ctx, - &(rmesa->tcl.vertex_data[attrib]), + &(rmesa->tcl.vertex_data[i]), (char *)VB->AttribPtr[attrib]->data, VB->AttribPtr[attrib]->stride, count); From 3f8c5969ffea5485aa119f4d766cdfee7d4aadeb Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 23 Feb 2007 15:15:50 -0800 Subject: [PATCH 2/5] Fix GLAPIENTRYP for OS X. Fix build problems related to incorrect define of GLAPIENTRYP on OS X. Reported by bushing on IRC. --- src/mesa/glapi/gl_table.py | 6 +++++- src/mesa/glapi/glapitable.h | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mesa/glapi/gl_table.py b/src/mesa/glapi/gl_table.py index 52b4be1d2b5..69f7bd7c7b5 100644 --- a/src/mesa/glapi/gl_table.py +++ b/src/mesa/glapi/gl_table.py @@ -49,7 +49,11 @@ class PrintGlTable(gl_XML.gl_print_base): def printRealHeader(self): print '#ifndef GLAPIENTRYP' - print '#define GLAPIENTRYP' + print '# ifndef GLAPIENTRY' + print '# define GLAPIENTRY' + print '# endif' + print '' + print '# define GLAPIENTRYP GLAPIENTRY *' print '#endif' print '' print 'typedef void (*_glapi_proc)(void); /* generic function pointer */' diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 55548adcd3b..4af0c2d43b8 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -30,7 +30,11 @@ # define _GLAPI_TABLE_H_ #ifndef GLAPIENTRYP -#define GLAPIENTRYP +# ifndef GLAPIENTRY +# define GLAPIENTRY +# endif + +# define GLAPIENTRYP GLAPIENTRY * #endif typedef void (*_glapi_proc)(void); /* generic function pointer */ From 5cd30a2b202d12240eac60825f9882838fd66779 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 24 Feb 2007 18:10:41 -0700 Subject: [PATCH 3/5] make src ptr const --- src/mesa/drivers/dri/i915tex/intel_regions.c | 5 +++-- src/mesa/drivers/dri/i915tex/intel_regions.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i915tex/intel_regions.c b/src/mesa/drivers/dri/i915tex/intel_regions.c index 1205b180ca6..a114bdf8965 100644 --- a/src/mesa/drivers/dri/i915tex/intel_regions.c +++ b/src/mesa/drivers/dri/i915tex/intel_regions.c @@ -217,7 +217,8 @@ _mesa_copy_rect(GLubyte * dst, GLuint dst_y, GLuint width, GLuint height, - GLubyte * src, GLuint src_pitch, GLuint src_x, GLuint src_y) + const GLubyte * src, + GLuint src_pitch, GLuint src_x, GLuint src_y) { GLuint i; @@ -253,7 +254,7 @@ intel_region_data(intelScreenPrivate *intelScreen, struct intel_region *dst, GLuint dst_offset, GLuint dstx, GLuint dsty, - void *src, GLuint src_pitch, + const void *src, GLuint src_pitch, GLuint srcx, GLuint srcy, GLuint width, GLuint height) { struct intel_context *intel = intelScreenContext(intelScreen); diff --git a/src/mesa/drivers/dri/i915tex/intel_regions.h b/src/mesa/drivers/dri/i915tex/intel_regions.h index 1415bace690..d938c107a46 100644 --- a/src/mesa/drivers/dri/i915tex/intel_regions.h +++ b/src/mesa/drivers/dri/i915tex/intel_regions.h @@ -103,7 +103,7 @@ void intel_region_data(intelScreenPrivate *intelScreen, struct intel_region *dest, GLuint dest_offset, GLuint destx, GLuint desty, - void *src, GLuint src_stride, + const void *src, GLuint src_stride, GLuint srcx, GLuint srcy, GLuint width, GLuint height); /* Copy rectangular sub-regions From aeaad937b92ac0f5286343ed75c5c9f6876e2650 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 24 Feb 2007 18:11:09 -0700 Subject: [PATCH 4/5] clean-up, comment code --- src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c index 2b1077aee0d..93372f4dcc8 100644 --- a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c @@ -309,8 +309,13 @@ intel_miptree_image_data(struct intel_context *intel, height = dst->level[level].height; if(dst->compressed) height /= 4; - intel_region_data(intel->intelScreen, dst->region, dst_offset + dst_depth_offset[i], 0, 0, src, src_row_pitch, 0, 0, /* source x,y */ - dst->level[level].width, height); + intel_region_data(intel->intelScreen, dst->region, + dst_offset + dst_depth_offset[i], /* dst_offset */ + 0, 0, /* dstx, dsty */ + src, + src_row_pitch, + 0, 0, /* source x, y */ + dst->level[level].width, height); /* width, height */ src += src_image_pitch; } From 53170942e37ccdf58e06a2cfbfeef6c0ec086ee6 Mon Sep 17 00:00:00 2001 From: Brian Date: Sat, 24 Feb 2007 18:14:53 -0700 Subject: [PATCH 5/5] Fix broken cubemap mipmap layout (the cubemap.c demo was segfaulting). In i915_miptree_layout() change the width, height parameters that are passed to intel_miptree_set_level_info(). As it was, the width, height values were larger than the source image dimensions and we segfaulted in memcpy() when copying the original texture data into the texture buffer region. This fix should probably be checked by someone more familiar with the code (Keith?) --- src/mesa/drivers/dri/i915tex/i915_tex_layout.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i915tex/i915_tex_layout.c b/src/mesa/drivers/dri/i915tex/i915_tex_layout.c index 333fefef859..c844f5351d2 100644 --- a/src/mesa/drivers/dri/i915tex/i915_tex_layout.c +++ b/src/mesa/drivers/dri/i915tex/i915_tex_layout.c @@ -62,15 +62,23 @@ i915_miptree_layout(struct intel_mipmap_tree * mt) case GL_TEXTURE_CUBE_MAP:{ const GLuint dim = mt->width0; GLuint face; + GLuint lvlWidth = mt->width0, lvlHeight = mt->height0; + + assert(lvlWidth == lvlHeight); /* cubemap images are square */ /* double pitch for cube layouts */ mt->pitch = ((dim * mt->cpp * 2 + 3) & ~3) / mt->cpp; mt->total_height = dim * 4; - for (level = mt->first_level; level <= mt->last_level; level++) + for (level = mt->first_level; level <= mt->last_level; level++) { intel_miptree_set_level_info(mt, level, 6, 0, 0, - mt->pitch, mt->total_height, 1); + /*OLD: mt->pitch, mt->total_height,*/ + lvlWidth, lvlHeight, + 1); + lvlWidth /= 2; + lvlHeight /= 2; + } for (face = 0; face < 6; face++) { GLuint x = initial_offsets[face][0] * dim;