mesa: Changes to 'upstream-unstable'
.gitignore | 1
Makefile | 21
bin/mklib | 30
configs/aix-gcc | 4
configs/beos | 4
configs/bluegene-osmesa | 4
configs/bluegene-xlc-osmesa | 29
configs/catamount-osmesa-pgi | 32
configs/darwin | 4
configs/darwin-static | 4
configs/darwin-static-x86ppc | 4
configs/darwin-x86ppc | 4
configs/default | 9
configs/freebsd | 4
configs/freebsd-dri | 4
configs/hpux10-gcc | 4
configs/linux | 4
configs/linux-alpha | 4
configs/linux-alpha-static | 4
configs/linux-directfb | 4
configs/linux-dri | 9
configs/linux-dri-x86 | 3
configs/linux-dri-xcb | 12
configs/linux-fbdev | 3
configs/linux-glide | 3
configs/linux-indirect | 3
configs/linux-osmesa | 3
configs/linux-osmesa16 | 3
configs/linux-osmesa16-static | 4
configs/linux-osmesa32 | 3
configs/linux-ppc-static | 1
configs/linux-solo | 3
configs/linux-solo-x86 | 3
configs/linux-static | 5
configs/linux-x86-64-static | 4
configs/linux-x86-glide | 3
configs/linux-x86-static | 4
configs/netbsd | 3
configs/openbsd | 4
configs/solaris-x86-gcc | 4
configs/solaris-x86-gcc-static | 4
configs/sunos4-gcc | 4
configs/sunos5-gcc | 4
configs/sunos5-v9-cc-g++ | 3
configs/ultrix-gcc | 4
docs/download.html | 2
docs/fbdev-dri.html | 6
docs/helpwanted.html | 39
docs/install.html | 83 -
docs/license.html | 29
docs/modelers.html | 2
docs/news.html | 9
docs/relnotes-7.0.1.html | 9
docs/relnotes-7.0.2.html | 88 +
docs/relnotes.html | 1
include/GL/glu.h | 27
progs/beos/.gitignore | 3
progs/beos/Makefile | 10
progs/demos/.gitignore | 14
progs/demos/Makefile | 14
progs/directfb/.gitignore | 4
progs/directfb/Makefile | 4
progs/egl/.gitignore | 5
progs/egl/Makefile | 10
progs/fbdev/.gitignore | 1
progs/fbdev/Makefile | 3
progs/fp/.gitignore | 42
progs/fp/Makefile | 2
progs/glsl/.gitignore | 13
progs/glsl/Makefile | 6
progs/glsl/bump.c | 6
progs/glsl/mandelbrot.c | 6
progs/glsl/noise.c | 2
progs/glsl/toyball.c | 6
progs/miniglx/.gitignore | 6
progs/miniglx/Makefile | 4
progs/osdemos/.gitignore | 8
progs/osdemos/Makefile | 12
progs/redbook/Makefile | 4
progs/samples/.gitignore | 32
progs/samples/Makefile | 6
progs/slang/.gitignore | 3
progs/slang/Makefile | 8
progs/tests/.gitignore | 10
progs/tests/Makefile | 26
progs/tools/trace/.gitignore | 1
progs/tools/trace/Makefile | 2
progs/trivial/.gitignore | 65 +
progs/trivial/Makefile | 8
progs/vp/.gitignore | 1
progs/vp/Makefile | 4
progs/xdemos/.gitignore | 11
progs/xdemos/Makefile | 24
src/egl/drivers/demo/Makefile | 2
src/egl/drivers/dri/Makefile | 2
src/egl/main/Makefile | 2
src/glu/Makefile | 16
src/glu/glu.pc.in | 11
src/glu/mesa/Makefile | 2
src/glu/sgi/Makefile | 2
src/glu/sgi/libutil/project.c | 115 --
src/glut/beos/Makefile | 3
src/glut/directfb/Makefile | 2
src/glut/fbdev/Makefile | 10
src/glut/ggi/Makefile | 2
src/glut/glx/Makefile | 22
src/glut/glx/glut.pc.in | 11
src/glut/mini/Makefile | 2
src/glw/Makefile | 22
src/glw/glw.pc.in | 11
src/glx/mini/Makefile | 2
src/glx/x11/Makefile | 2
src/glx/x11/glxext.c | 7
src/glx/x11/indirect_vertex_array.c | 14
src/mesa/Makefile | 44
src/mesa/drivers/beos/Makefile | 3
src/mesa/drivers/dri/Makefile.template | 6
src/mesa/drivers/dri/common/dri_bufmgr.c | 2
src/mesa/drivers/dri/common/extension_helper.h | 18
src/mesa/drivers/dri/common/spantmp2.h | 2
src/mesa/drivers/dri/glcore/Makefile | 3
src/mesa/drivers/dri/i810/i810screen.c | 2
src/mesa/drivers/dri/i915/i915_texstate.c | 19
src/mesa/drivers/dri/i915/intel_context.c | 8
src/mesa/drivers/dri/i915/intel_context.h | 4
src/mesa/drivers/dri/i915/intel_screen.c | 4
src/mesa/drivers/dri/i915/intel_tex.c | 6
src/mesa/drivers/dri/i915tex/i830_vtbl.c | 10
src/mesa/drivers/dri/i915tex/i915_metaops.c | 2
src/mesa/drivers/dri/i915tex/i915_tex_layout.c | 2
src/mesa/drivers/dri/i915tex/i915_vtbl.c | 10
src/mesa/drivers/dri/i915tex/intel_blit.c | 3
src/mesa/drivers/dri/i915tex/intel_buffers.c | 9
src/mesa/drivers/dri/i915tex/intel_context.c | 12
src/mesa/drivers/dri/i915tex/intel_context.h | 4
src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c | 25
src/mesa/drivers/dri/i915tex/intel_screen.c | 4
src/mesa/drivers/dri/i965/brw_aub.c | 16
src/mesa/drivers/dri/i965/brw_clip.c | 4
src/mesa/drivers/dri/i965/brw_curbe.c | 2
src/mesa/drivers/dri/i965/brw_draw.c | 6
src/mesa/drivers/dri/i965/brw_sf_emit.c | 4
src/mesa/drivers/dri/i965/brw_vs_tnl.c | 11
src/mesa/drivers/dri/i965/brw_wm_fp.c | 52
src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 8
src/mesa/drivers/dri/i965/brw_wm_state.c | 2
src/mesa/drivers/dri/i965/intel_buffers.c | 36
src/mesa/drivers/dri/i965/intel_context.c | 10
src/mesa/drivers/dri/i965/intel_context.h | 3
src/mesa/drivers/dri/i965/intel_pixel_bitmap.c | 19
src/mesa/drivers/dri/i965/intel_pixel_copy.c | 5
src/mesa/drivers/dri/i965/intel_state.c | 25
src/mesa/drivers/dri/i965/server/i830_common.h | 10
src/mesa/drivers/dri/r200/r200_context.h | 1
src/mesa/drivers/dri/r200/r200_tex.h | 4
src/mesa/drivers/dri/r200/r200_texmem.c | 5
src/mesa/drivers/dri/r200/r200_texstate.c | 94 +
src/mesa/drivers/dri/radeon/radeon_screen.c | 4
src/mesa/drivers/dri/unichrome/via_context.c | 9
src/mesa/drivers/dri/unichrome/via_tris.c | 27
src/mesa/drivers/windows/gdi/wmesa.c | 95 +
src/mesa/drivers/x11/xm_dd.c | 13
src/mesa/gl.pc.in | 11
src/mesa/glapi/dispatch.h | 17
src/mesa/glapi/gl_API.xml | 31
src/mesa/glapi/glapioffsets.h | 12
src/mesa/glapi/glapitable.h | 11
src/mesa/glapi/glapitemp.h | 33
src/mesa/glapi/glprocs.h | 562 +++++-----
src/mesa/main/api_validate.c | 150 +-
src/mesa/main/attrib.c | 203 ++-
src/mesa/main/attrib.h | 4
src/mesa/main/context.c | 108 +-
src/mesa/main/dlist.c | 6
src/mesa/main/enable.c | 13
src/mesa/main/enums.c | 1208 +++++++++++------------
src/mesa/main/fbobject.c | 27
src/mesa/main/framebuffer.c | 13
src/mesa/main/glheader.h | 2
src/mesa/main/image.c | 2
src/mesa/main/light.c | 9
src/mesa/main/lines.c | 5
src/mesa/main/mtypes.h | 7
src/mesa/main/points.c | 6
src/mesa/main/polygon.c | 5
src/mesa/main/state.c | 43
src/mesa/main/stencil.c | 295 ++---
src/mesa/main/stencil.h | 7
src/mesa/main/texenvprogram.c | 15
src/mesa/main/texobj.c | 219 ++--
src/mesa/main/texobj.h | 4
src/mesa/main/texstate.c | 93 -
src/mesa/main/version.h | 6
src/mesa/shader/arbprogparse.c | 116 +-
src/mesa/shader/atifragshader.c | 4
src/mesa/shader/prog_statevars.c | 2
src/mesa/shader/shader_api.c | 8
src/mesa/sparc/glapi_sparc.S | 2
src/mesa/swrast/s_copypix.c | 11
src/mesa/swrast/s_pointtemp.h | 4
src/mesa/swrast/s_span.c | 7
src/mesa/swrast_setup/ss_tritmp.h | 18
src/mesa/tnl/t_draw.c | 7
src/mesa/tnl/t_vb_fog.c | 43
src/mesa/tnl/t_vertex_sse.c | 16
src/mesa/tnl/t_vp_build.c | 71 -
src/mesa/vbo/vbo_save_draw.c | 6
src/mesa/vbo/vbo_split_copy.c | 9
src/mesa/x86-64/glapi_x86-64.S | 46
src/mesa/x86-64/xform4.S | 10
src/mesa/x86/glapi_x86.S | 13
src/mesa/x86/read_rgba_span_x86.S | 133 --
src/mesa/x86/rtasm/x86sse.c | 25
src/mesa/x86/rtasm/x86sse.h | 3
windows/VC7/mesa/gdi/gdi.vcproj | 376 +++----
windows/VC7/mesa/glu/glu.vcproj | 66 -
windows/VC7/mesa/mesa.sln | 20
windows/VC7/mesa/mesa/mesa.vcproj | 294 ++++-
windows/VC7/mesa/osmesa/osmesa.vcproj | 18
219 files changed, 3897 insertions(+), 2445 deletions(-)
New commits:
commit 8a40b670c3babc31f96d08bce16fe10eb718fa8f
Author: Brian <brian.paul@tungstengraphics.com>
Date: Sat Nov 10 09:53:00 2007 -0700
added md5 checksums
diff --git a/docs/relnotes-7.0.2.html b/docs/relnotes-7.0.2.html
index 55d126e..7a7c70f 100644
--- a/docs/relnotes-7.0.2.html
+++ b/docs/relnotes-7.0.2.html
@@ -17,6 +17,15 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
<h2>MD5 checksums</h2>
<pre>
+c9cf607f36e7e50172f5f9c7d552c34e MesaLib-7.0.2.tar.gz
+93e6ed7924ff069a4f883b4fce5349dc MesaLib-7.0.2.tar.bz2
+10c324c3613f90f059cb8429f700f300 MesaLib-7.0.2.zip
+aa8b1244a5de1d23e5814bf9b67f1435 MesaDemos-7.0.2.tar.gz
+11a10410bae7be85cf25bc7119966468 MesaDemos-7.0.2.tar.bz2
+1dd0b5fd6d69430a2fd76a6adbfd8fff MesaDemos-7.0.2.zip
+a7dbf25c025955858bd2d89a6eb6db4c MesaGLUT-7.0.2.tar.gz
+3a33f8efc8c58a592a854cfc7a643286 MesaGLUT-7.0.2.tar.bz2
+eba4ef2aa8c362ead81b54357f1903a3 MesaGLUT-7.0.2.zip
</pre>
commit d9fa5cbfc906ae545135248fbf5086d0ba3db84a
Author: Brian <brian.paul@tungstengraphics.com>
Date: Sat Nov 10 09:41:52 2007 -0700
final changes for 7.0.2 relesae
diff --git a/Makefile b/Makefile
index 26e764c..fe0c354 100644
--- a/Makefile
+++ b/Makefile
@@ -166,10 +166,10 @@ ultrix-gcc:
# Rules for making release tarballs
-DIRECTORY = Mesa-7.0.2-rc2
-LIB_NAME = MesaLib-7.0.2-rc2
-DEMO_NAME = MesaDemos-7.0.2-rc2
-GLUT_NAME = MesaGLUT-7.0.2-rc2
+DIRECTORY = Mesa-7.0.2
+LIB_NAME = MesaLib-7.0.2
+DEMO_NAME = MesaDemos-7.0.2
+GLUT_NAME = MesaGLUT-7.0.2
MAIN_FILES = \
$(DIRECTORY)/Makefile* \
diff --git a/docs/news.html b/docs/news.html
index 8694ce4..79fc599 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -11,7 +11,7 @@
<H1>News</H1>
-<h2>September ??, 2007</h2>
+<h2>November 10, 2007</h2>
<p>
<a href="relnotes-7.0.2.html">Mesa 7.0.2</a> is released.
This is a bug-fix release.
diff --git a/docs/relnotes-7.0.2.html b/docs/relnotes-7.0.2.html
index 39af8e9..55d126e 100644
--- a/docs/relnotes-7.0.2.html
+++ b/docs/relnotes-7.0.2.html
@@ -8,7 +8,7 @@
<body bgcolor="#eeeeee">
-<H1>Mesa 7.0.2 Release Notes / (TBD) 2007</H1>
+<H1>Mesa 7.0.2 Release Notes / November 10, 2007</H1>
<p>
Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
@@ -56,19 +56,6 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
</ul>
-<h2>Changes</h2>
-<ul>
-</ul>
-
-
-<h2>To Do (someday) items</h2>
-<ul>
-<li>Switch to freeglut
-<li>Fix linux-glide target/driver.
-<li>Improved lambda and derivative calculation for frag progs.
-</ul>
-
-
<h2>Driver Status</h2>
<pre>
commit 1c21564292cba75d3309d141222c29d1081c54ea
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Fri Nov 9 08:53:41 2007 -0700
code clean-ups, reformatting
diff --git a/src/mesa/drivers/dri/unichrome/via_tris.c b/src/mesa/drivers/dri/unichrome/via_tris.c
index 73e6626..b97dacd 100644
--- a/src/mesa/drivers/dri/unichrome/via_tris.c
+++ b/src/mesa/drivers/dri/unichrome/via_tris.c
@@ -625,13 +625,12 @@ static void viaFastRenderClippedPoly(GLcontext *ctx, const GLuint *elts,
}
}
+
/**********************************************************************/
/* Choose render functions */
/**********************************************************************/
-
-
#define _VIA_NEW_VERTEX (_NEW_TEXTURE | \
_DD_NEW_SEPARATE_SPECULAR | \
_DD_NEW_TRI_UNFILLED | \
@@ -665,16 +664,17 @@ static void viaChooseRenderState(GLcontext *ctx)
vmesa->drawTri = via_draw_triangle;
}
- if (flags & (ANY_FALLBACK_FLAGS|ANY_RASTER_FLAGS)) {
+ if (flags & (ANY_FALLBACK_FLAGS | ANY_RASTER_FLAGS)) {
if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
index |= VIA_TWOSIDE_BIT;
- if (flags & DD_TRI_OFFSET) index |= VIA_OFFSET_BIT;
if (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL)
index |= VIA_UNFILLED_BIT;
- if (flags & ANY_FALLBACK_FLAGS) index |= VIA_FALLBACK_BIT;
+ if (flags & DD_TRI_OFFSET)
+ index |= VIA_OFFSET_BIT;
+ if (flags & ANY_FALLBACK_FLAGS)
+ index |= VIA_FALLBACK_BIT;
- /* Hook in fallbacks for specific primitives.
- */
+ /* Hook in fallbacks for specific primitives. */
if (flags & POINT_FALLBACK)
vmesa->drawPoint = via_fallback_point;
@@ -685,11 +685,8 @@ static void viaChooseRenderState(GLcontext *ctx)
vmesa->drawTri = via_fallback_tri;
}
-
- if ((flags & DD_SEPARATE_SPECULAR) &&
- ctx->Light.ShadeModel == GL_FLAT) {
+ if ((flags & DD_SEPARATE_SPECULAR) && ctx->Light.ShadeModel == GL_FLAT)
index = VIA_MAX_TRIFUNC; /* flat specular */
- }
if (vmesa->renderIndex != index) {
vmesa->renderIndex = index;
commit 6cc96bf156519d6d4e2d17ea0ce9ca68661a3991
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Fri Nov 9 08:53:15 2007 -0700
remove commented-out code
diff --git a/src/mesa/x86/read_rgba_span_x86.S b/src/mesa/x86/read_rgba_span_x86.S
index 8509df6..2e5c3be 100644
--- a/src/mesa/x86/read_rgba_span_x86.S
+++ b/src/mesa/x86/read_rgba_span_x86.S
@@ -33,20 +33,7 @@
.file "read_rgba_span_x86.S"
#if !defined(__DJGPP__) && !defined(__MINGW32__) /* this one cries for assyntax.h */
/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- .section .rodata
- .align 16
- .type mask, @object
- .size mask, 32
-mask:
- .long 0xff00ff00
- .long 0xff00ff00
- .long 0xff00ff00
- .long 0xff00ff00
- .long 0x00ff0000
- .long 0x00ff0000
- .long 0x00ff0000
- .long 0x00ff0000
+ * Replaced data segment constants with text-segment instructions.
*/
#define LOAD_MASK(mvins,m1,m2) \
pushl $0xff00ff00 ;\
@@ -61,8 +48,7 @@ mask:
mvins (%esp), m2 ;\
addl $32, %esp
-
-/* I implemented these as macros because the appear in quite a few places,
+/* I implemented these as macros because they appear in several places,
* and I've tweaked them a number of times. I got tired of changing every
* place they appear. :)
*/
@@ -99,11 +85,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX:
#ifdef USE_INNER_EMMS
emms
#endif
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- movq mask, %mm1
- movq mask+16, %mm2
- */
LOAD_MASK(movq,%mm1,%mm2)
movl 8(%esp), %ebx /* source pointer */
@@ -201,11 +182,7 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE:
#ifdef USE_INNER_EMMS
emms
#endif
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- movq mask, %mm1
- movq mask+16, %mm2
- */
+
LOAD_MASK(movq,%mm1,%mm2)
movl 16(%esp), %ebx /* source pointer */
@@ -364,11 +341,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
pushl %esi
pushl %ebx
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- movdqa mask, %xmm1
- movdqa mask+16, %xmm2
- */
LOAD_MASK(movdqu,%xmm1,%xmm2)
movl 12(%esp), %ebx /* source pointer */
@@ -491,60 +463,12 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- */
-#if 0
- .section .rodata
-
- .align 16
-mask_565:
- .word 0xf800
- .word 0x07e0
- .word 0x001f
- .word 0x0000
-
-/* Setting SCALE_ADJUST to 5 gives a perfect match with the classic C
- * implementation in Mesa. Setting SCALE_ADJUST to 0 is slightly faster but
- * at a small cost to accuracy.
- */
-
-#define SCALE_ADJUST 5
-#if SCALE_ADJUST == 5
-prescale:
- .word 0x0001
- .word 0x0010
- .word 0x0200
- .word 0x0000
-
-scale:
- .word 0x20e8 /* (0x00ff0000 / 0x000007c0) + 1 */
- .word 0x40c5 /* (0x00ff0000 / 0x000003f0) + 1 */
- .word 0x839d /* (0x00ff0000 / 0x000001f0) + 1 */
- .word 0x0000
-#elif SCALE_ADJUST == 0
-prescale:
- .word 0x0001
- .word 0x0020
- .word 0x0800
- .word 0x0000
-
-scale:
- .word 0x0108 /* (0x00ff0000 / 0x0000f800) + 1 */
- .word 0x0104 /* (0x00ff0000 / 0x0000fc00) + 1 */
- .word 0x0108 /* (0x00ff0000 / 0x0000f800) + 1 */
- .word 0x0000
-#else
-#error SCALE_ADJUST must either be 5 or 0.
-#endif
-
-
-alpha: .long 0x00000000
- .long 0x00ff0000
-#endif
-
#define MASK_565_L 0x07e0f800
#define MASK_565_H 0x0000001f
+/* Setting SCALE_ADJUST to 5 gives a perfect match with the
+ * classic C implementation in Mesa. Setting SCALE_ADJUST
+ * to 0 is slightly faster but at a small cost to accuracy.
+ */
#define SCALE_ADJUST 5
#if SCALE_ADJUST == 5
#define PRESCALE_L 0x00100001
@@ -581,12 +505,6 @@ _generic_read_RGBA_span_RGB565_MMX:
movl 8(%esp), %edx /* destination pointer */
movl 12(%esp), %ecx /* number of pixels to copy */
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- movq mask_565, %mm5
- movq prescale, %mm6
- movq scale, %mm7
- */
pushl $MASK_565_H
pushl $MASK_565_L
movq (%esp), %mm5
@@ -648,11 +566,6 @@ _generic_read_RGBA_span_RGB565_MMX:
/* Always set the alpha value to 0xff.
*/
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- por alpha, %mm0
- por alpha, %mm2
- */
por %mm3, %mm0
por %mm3, %mm2
@@ -665,8 +578,6 @@ _generic_read_RGBA_span_RGB565_MMX:
movq %mm0, (%edx)
addl $8, %edx
-
-
pshufw $0xaa, %mm4, %mm0
pshufw $0xff, %mm4, %mm2
@@ -681,11 +592,6 @@ _generic_read_RGBA_span_RGB565_MMX:
pmulhuw %mm7, %mm0
pmulhuw %mm7, %mm2
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- por alpha, %mm0
- por alpha, %mm2
- */
por %mm3, %mm0
por %mm3, %mm2
@@ -724,11 +630,6 @@ _generic_read_RGBA_span_RGB565_MMX:
pmulhuw %mm7, %mm0
pmulhuw %mm7, %mm2
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- por alpha, %mm0
- por alpha, %mm2
- */
por %mm3, %mm0
por %mm3, %mm2
@@ -757,10 +658,6 @@ _generic_read_RGBA_span_RGB565_MMX:
#endif
pmulhuw %mm7, %mm0
-/* Kevin F. Quinn 2nd July 2006
- * Replace data segment constants with text-segment instructions
- por alpha, %mm0
- */
por %mm3, %mm0
packuswb %mm0, %mm0
commit 29afd4bbc453e947d31006a80e121b08b880b8ba
Author: Brian <brian.paul@tungstengraphics.com>
Date: Thu Nov 8 07:35:36 2007 -0700
fix blender/unichrome crash, bug 13142
diff --git a/docs/relnotes-7.0.2.html b/docs/relnotes-7.0.2.html
index cdf2ac1..39af8e9 100644
--- a/docs/relnotes-7.0.2.html
+++ b/docs/relnotes-7.0.2.html
@@ -52,6 +52,7 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
<li>Fix SSE code gen memory leak, possible crash
<li>Fixed MMX 565 rgb conversion problem (bug 12614)
<li>Added -fno-strict-aliasing and -fPIC flags for gcc
+<li>Fixed Blender crash in Unichrome driver (bug 13142)
</ul>
commit 4e3db063ec1669e7caf0cf4956fd2f6fed23c08f
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Thu Nov 8 07:34:08 2007 -0700
fix Unichrome/Blender crash, bug 13142
diff --git a/src/mesa/drivers/dri/unichrome/via_tris.c b/src/mesa/drivers/dri/unichrome/via_tris.c
index 4cc7942..73e6626 100644
--- a/src/mesa/drivers/dri/unichrome/via_tris.c
+++ b/src/mesa/drivers/dri/unichrome/via_tris.c
@@ -666,9 +666,11 @@ static void viaChooseRenderState(GLcontext *ctx)
}
if (flags & (ANY_FALLBACK_FLAGS|ANY_RASTER_FLAGS)) {
- if (flags & DD_TRI_LIGHT_TWOSIDE) index |= VIA_TWOSIDE_BIT;
+ if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
+ index |= VIA_TWOSIDE_BIT;
if (flags & DD_TRI_OFFSET) index |= VIA_OFFSET_BIT;
- if (flags & DD_TRI_UNFILLED) index |= VIA_UNFILLED_BIT;
+ if (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL)
+ index |= VIA_UNFILLED_BIT;
if (flags & ANY_FALLBACK_FLAGS) index |= VIA_FALLBACK_BIT;
/* Hook in fallbacks for specific primitives.
commit 6560744c38cac51e9620faf08d495b9ab03466ec
Author: Brian <brian.paul@tungstengraphics.com>
Date: Tue Nov 6 17:54:21 2007 -0700
added -fno-strict-aliasing and -fPIC flags
diff --git a/docs/relnotes-7.0.2.html b/docs/relnotes-7.0.2.html
index 1b9c9f7..cdf2ac1 100644
--- a/docs/relnotes-7.0.2.html
+++ b/docs/relnotes-7.0.2.html
@@ -51,6 +51,7 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
<li>glDrawArrays(count=0) led to a crash
<li>Fix SSE code gen memory leak, possible crash
<li>Fixed MMX 565 rgb conversion problem (bug 12614)
+<li>Added -fno-strict-aliasing and -fPIC flags for gcc
</ul>
commit 572ad8788119156bf1c31c4d5a286b270c488993
Author: Brian <brian.paul@tungstengraphics.com>
Date: Tue Nov 6 17:50:18 2007 -0700
change filenames for rc2
diff --git a/Makefile b/Makefile
index a6113ad..26e764c 100644
--- a/Makefile
+++ b/Makefile
@@ -166,10 +166,10 @@ ultrix-gcc:
# Rules for making release tarballs
-DIRECTORY = Mesa-7.0.2-rc1
-LIB_NAME = MesaLib-7.0.2-rc1
-DEMO_NAME = MesaDemos-7.0.2-rc1
-GLUT_NAME = MesaGLUT-7.0.2-rc1
+DIRECTORY = Mesa-7.0.2-rc2
+LIB_NAME = MesaLib-7.0.2-rc2
+DEMO_NAME = MesaDemos-7.0.2-rc2
+GLUT_NAME = MesaGLUT-7.0.2-rc2
MAIN_FILES = \
$(DIRECTORY)/Makefile* \
commit 2ab75d6cfac40c4fe8626ce53375de92ba0b5dd4
Author: Michel Dänzer <michel@tungstengraphics.com>
Date: Tue Nov 6 18:22:42 2007 +0100
r200: Fix SetTexOffset format for 16 bit pixmaps/textures.
Use symbolic array indices to clarify.
diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c
index 4b05da2..af5092b 100644
--- a/src/mesa/drivers/dri/r200/r200_texstate.c
+++ b/src/mesa/drivers/dri/r200/r200_texstate.c
@@ -999,17 +999,17 @@ void r200SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
switch (depth) {
case 32:
- t->pp_txformat = tx_table_le[2].format;
- t->pp_txfilter |= tx_table_le[2].filter;
+ t->pp_txformat = tx_table_le[MESA_FORMAT_ARGB8888].format;
+ t->pp_txfilter |= tx_table_le[MESA_FORMAT_ARGB8888].filter;
break;
case 24:
default:
- t->pp_txformat = tx_table_le[4].format;
- t->pp_txfilter |= tx_table_le[4].filter;
+ t->pp_txformat = tx_table_le[MESA_FORMAT_RGB888].format;
+ t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB888].filter;
break;
case 16:
- t->pp_txformat = tx_table_le[5].format;
- t->pp_txfilter |= tx_table_le[5].filter;
+ t->pp_txformat = tx_table_le[MESA_FORMAT_RGB565].format;
+ t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB565].filter;
break;
}
}
commit 041a8eb5ec0f60041cc613223d07525c5853761b
Author: Chris Rankin <rankincj@yahoo.com>
Date: Sat Sep 29 18:14:06 2007 +0200
r200: Implement SetTexOffset hook.
Implementation guidance by Michel Dänzer, final testing by Timo Aaltonen.
diff --git a/src/mesa/drivers/dri/r200/r200_context.h b/src/mesa/drivers/dri/r200/r200_context.h
index e840a50..a06a2f5 100644
--- a/src/mesa/drivers/dri/r200/r200_context.h
+++ b/src/mesa/drivers/dri/r200/r200_context.h
@@ -180,6 +180,7 @@ struct r200_tex_obj {
drm_radeon_tex_image_t image[6][RADEON_MAX_TEXTURE_LEVELS];
/* Six, for the cube faces */
+ GLboolean image_override; /* Image overridden by GLX_EXT_tfp */
GLuint pp_txfilter; /* hardware register values */
GLuint pp_txformat;
diff --git a/src/mesa/drivers/dri/r200/r200_tex.h b/src/mesa/drivers/dri/r200/r200_tex.h
index 4438cc0..68e9a0e 100644
--- a/src/mesa/drivers/dri/r200/r200_tex.h
+++ b/src/mesa/drivers/dri/r200/r200_tex.h
@@ -36,6 +36,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef __R200_TEX_H__
#define __R200_TEX_H__
+extern void r200SetTexOffset(__DRIcontext *pDRICtx, GLint texname,
+ unsigned long long offset, GLint depth,
+ GLuint pitch);
+
extern void r200UpdateTextureState( GLcontext *ctx );
extern int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face );
diff --git a/src/mesa/drivers/dri/r200/r200_texmem.c b/src/mesa/drivers/dri/r200/r200_texmem.c
index 28988c9..9daafcf 100644
--- a/src/mesa/drivers/dri/r200/r200_texmem.c
+++ b/src/mesa/drivers/dri/r200/r200_texmem.c
@@ -182,7 +182,8 @@ static void r200UploadRectSubImage( r200ContextPtr rmesa,
/* In this case, could also use GART texturing. This is
* currently disabled, but has been tested & works.
*/
- t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
+ if ( !t->image_override )
+ t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
t->pp_txpitch = texImage->RowStride * texFormat->TexelBytes - 32;
if (R200_DEBUG & DEBUG_TEXTURE)
@@ -468,7 +469,7 @@ int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face )
t->base.firstLevel, t->base.lastLevel );
}
- if ( !t || t->base.totalSize == 0 )
+ if ( !t || t->base.totalSize == 0 || t->image_override )
return 0;
if (R200_DEBUG & DEBUG_SYNC) {
diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c
index 875d3ba..4b05da2 100644
--- a/src/mesa/drivers/dri/r200/r200_texstate.c
+++ b/src/mesa/drivers/dri/r200/r200_texstate.c
@@ -38,6 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "context.h"
#include "macros.h"
#include "texformat.h"
+#include "texobj.h"
#include "enums.h"
#include "r200_context.h"
@@ -73,10 +74,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_RGBA_DXT5) \
&& (tx_table_le[f].format != 0xffffffff) )
-static const struct {
+struct tx_table {
GLuint format, filter;
-}
-tx_table_be[] =
+};
+
+static const struct tx_table tx_table_be[] =
{
[ MESA_FORMAT_RGBA8888 ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
_ALPHA_REV(RGBA8888),
@@ -105,16 +107,13 @@ tx_table_be[] =
_ALPHA(RGBA_DXT5),
};
-static const struct {
- GLuint format, filter;
-}
-tx_table_le[] =
+static const struct tx_table tx_table_le[] =
{
_ALPHA(RGBA8888),
[ MESA_FORMAT_RGBA8888_REV ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
_ALPHA(ARGB8888),
_ALPHA_REV(ARGB8888),
- _INVALID(RGB888),
+ [ MESA_FORMAT_RGB888 ] = { R200_TXFORMAT_ARGB8888, 0 },
_COLOR(RGB565),
_COLOR_REV(RGB565),
_ALPHA(ARGB4444),
@@ -161,30 +160,23 @@ static void r200SetTexImages( r200ContextPtr rmesa,
GLint i, texelBytes;
GLint numLevels;
GLint log2Width, log2Height, log2Depth;
- const GLuint ui = 1;
- const GLubyte littleEndian = *((const GLubyte *) &ui);
/* Set the hardware texture format
*/
+ if ( !t->image_override ) {
+ if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
+ t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
+ R200_TXFORMAT_ALPHA_IN_MAP);
+ t->pp_txfilter &= ~R200_YUV_TO_RGB;
- t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
- R200_TXFORMAT_ALPHA_IN_MAP);
- t->pp_txfilter &= ~R200_YUV_TO_RGB;
-
- if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
- if (littleEndian) {
t->pp_txformat |= tx_table_le[ baseImage->TexFormat->MesaFormat ].format;
t->pp_txfilter |= tx_table_le[ baseImage->TexFormat->MesaFormat ].filter;
}
else {
- t->pp_txformat |= tx_table_be[ baseImage->TexFormat->MesaFormat ].format;
- t->pp_txfilter |= tx_table_be[ baseImage->TexFormat->MesaFormat ].filter;
+ _mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
+ return;
}
}
- else {
- _mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
- return;
- }
texelBytes = baseImage->TexFormat->TexelBytes;
@@ -381,11 +373,13 @@ static void r200SetTexImages( r200ContextPtr rmesa,
* requires 64-byte aligned pitches, and we may/may not need the
* blitter. NPOT only!
*/
- if (baseImage->IsCompressed)
- t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
- else
- t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
- t->pp_txpitch -= 32;
+ if ( !t->image_override ) {
+ if (baseImage->IsCompressed)
+ t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
+ else
+ t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
+ t->pp_txpitch -= 32;
+ }
t->dirty_state = TEX_ALL;
@@ -980,6 +974,46 @@ static GLboolean r200UpdateTextureEnv( GLcontext *ctx, int unit, int slot, GLuin
return GL_TRUE;
}
+void r200SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
+ unsigned long long offset, GLint depth, GLuint pitch)
+{
+ r200ContextPtr rmesa =
+ (r200ContextPtr) ((__DRIcontextPrivate *) pDRICtx->private)->
+ driverPrivate;
+ struct gl_texture_object *tObj =
+ _mesa_lookup_texture(rmesa->glCtx, texname);
+ r200TexObjPtr t;
+
+ if (!tObj)
+ return;
+
+ t = (r200TexObjPtr) tObj->DriverData;
+
+ t->image_override = GL_TRUE;
+
+ if (!offset)
+ return;
+
+ t->pp_txoffset = offset;
+ t->pp_txpitch = pitch - 32;
+
+ switch (depth) {
+ case 32:
+ t->pp_txformat = tx_table_le[2].format;
+ t->pp_txfilter |= tx_table_le[2].filter;
+ break;
+ case 24:
+ default:
+ t->pp_txformat = tx_table_le[4].format;
+ t->pp_txfilter |= tx_table_le[4].filter;
+ break;
+ case 16:
+ t->pp_txformat = tx_table_le[5].format;
+ t->pp_txfilter |= tx_table_le[5].filter;
+ break;
+ }
+}
+
#define REF_COLOR 1
#define REF_ALPHA 2
@@ -1561,7 +1595,7 @@ static GLboolean enable_tex_2d( GLcontext *ctx, int unit )
R200_FIREVERTICES( rmesa );
r200SetTexImages( rmesa, tObj );
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
- if ( !t->base.memBlock )
+ if ( !t->base.memBlock && !t->image_override )
return GL_FALSE;
}
@@ -1669,7 +1703,9 @@ static GLboolean enable_tex_rect( GLcontext *ctx, int unit )
R200_FIREVERTICES( rmesa );
r200SetTexImages( rmesa, tObj );
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
- if ( !t->base.memBlock && !rmesa->prefer_gart_client_texturing )
+ if ( !t->base.memBlock &&
+ !t->image_override &&
+ !rmesa->prefer_gart_client_texturing )
return GL_FALSE;
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index aa7fb63..682cf3a 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -53,6 +53,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "r200_context.h"
#include "r200_ioctl.h"
#include "r200_span.h"
+#include "r200_tex.h"
#elif RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
#include "r300_context.h"
#include "r300_fragprog.h"
@@ -973,7 +974,8 @@ static const struct __DriverAPIRec r200API = {
.WaitForMSC = driWaitForMSC32,
.WaitForSBC = NULL,
.SwapBuffersMSC = NULL,
- .CopySubBuffer = r200CopySubBuffer
+ .CopySubBuffer = r200CopySubBuffer,
+ .setTexOffset = r200SetTexOffset
};
#endif
commit c1c13bdcfa1a46feb69318b43afa39daf7a47a2c
Author: Brian <brian.paul@tungstengraphics.com>
Date: Mon Nov 5 14:43:03 2007 -0700
Check for NULL VB->EdgeFlag array.
There might be a bug elsewhere, but this is a simple work-around for now.
See bug 12614
diff --git a/src/mesa/swrast_setup/ss_tritmp.h b/src/mesa/swrast_setup/ss_tritmp.h
index 1fdf0cb..59c534e 100644
--- a/src/mesa/swrast_setup/ss_tritmp.h
+++ b/src/mesa/swrast_setup/ss_tritmp.h
@@ -198,14 +198,16 @@ static void TAG(quadfunc)( GLcontext *ctx, GLuint v0,
{
if (IND & SS_UNFILLED_BIT) {
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
- GLubyte ef1 = VB->EdgeFlag[v1];
- GLubyte ef3 = VB->EdgeFlag[v3];
- VB->EdgeFlag[v1] = 0;
- TAG(triangle)( ctx, v0, v1, v3 );
- VB->EdgeFlag[v1] = ef1;
- VB->EdgeFlag[v3] = 0;
- TAG(triangle)( ctx, v1, v2, v3 );
- VB->EdgeFlag[v3] = ef3;
+ if (VB->EdgeFlag) { /* XXX this test shouldn't be needed (bug 12614) */
Reply to: