mesa: Changes to 'debian-unstable'
Makefile | 3
configs/darwin | 10
configs/darwin-fat-32bit | 7
configs/darwin-fat-all | 7
configs/darwin-x86ppc | 37
configs/default | 6
debian/changelog | 10
debian/control | 2
debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch | 2
docs/relnotes-7.0.3.html | 11
include/GL/glext.h | 19
progs/xdemos/glthreads.c | 2
src/glx/x11/indirect_dispatch.c | 5914 ++++++++++++++++++
src/glx/x11/indirect_dispatch.h | 1043 +++
src/glx/x11/indirect_dispatch_swap.c | 6076 +++++++++++++++++++
src/glx/x11/indirect_reqsize.c | 832 ++
src/glx/x11/indirect_reqsize.h | 121
src/glx/x11/indirect_size_get.c | 1206 +++
src/glx/x11/indirect_size_get.h | 102
src/glx/x11/indirect_table.c | 1593 ++++
src/mesa/drivers/dri/common/dri_util.c | 3
src/mesa/drivers/dri/i965/brw_clip_util.c | 2
src/mesa/glapi/Makefile | 119
src/mesa/main/context.c | 6
src/mesa/main/drawpix.c | 14
src/mesa/main/fbobject.c | 2
src/mesa/main/get.c | 12
src/mesa/main/get_gen.py | 5
src/mesa/main/glheader.h | 2
src/mesa/main/imports.h | 6
src/mesa/main/teximage.c | 3
src/mesa/main/varray.c | 3
src/mesa/shader/arbprogparse.c | 7
src/mesa/shader/arbprogram.syn | 4
src/mesa/shader/arbprogram_syn.h | 2
src/mesa/shader/prog_statevars.c | 6
src/mesa/shader/program.c | 2
src/mesa/shader/shader_api.c | 6
src/mesa/shader/slang/slang_emit.c | 16
src/mesa/tnl/t_vertex_sse.c | 4
src/mesa/x86/rtasm/x86sse.c | 247
src/mesa/x86/rtasm/x86sse.h | 63
windows/VC6/progs/glut/glut.dsp | 2
windows/VC7/progs/glut/glut.vcproj | 2
windows/VC8/progs/glut/glut.vcproj | 2
45 files changed, 17284 insertions(+), 259 deletions(-)
New commits:
commit 2e5a63f365b77a179c837e4a34ee9f18c2056b17
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Mar 31 16:47:34 2008 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index ab79d2a..a332e6f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (7.0.3~rc2-2) UNRELEASED; urgency=low
+mesa (7.0.3~rc2-2) unstable; urgency=low
* Pull from mesa_7_0_branch (1e83d70b).
* Fixes regression in the i965 dri driver (closes: #470984, #470084)
@@ -6,7 +6,7 @@ mesa (7.0.3~rc2-2) UNRELEASED; urgency=low
* Change libgl1-mesa-swx11-i686's pre-dependency on libgl1-mesa-swx11 to a
regular versioned dependency, and add ${shlibs:Depends}.
- -- Julien Cristau <jcristau@debian.org> Mon, 31 Mar 2008 13:02:39 +0200
+ -- Julien Cristau <jcristau@debian.org> Mon, 31 Mar 2008 16:47:31 +0200
mesa (7.0.3~rc2-1) unstable; urgency=low
commit 7c614b466679445abeb91764bf90da3d6bd15073
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Mar 31 16:47:17 2008 +0200
Fix libgl1-mesa-swx11-i686's dependencies
Change libgl1-mesa-swx11-i686's pre-dependency on libgl1-mesa-swx11 to a
regular versioned dependency, and add ${shlibs:Depends}.
I'm not sure why this used Pre-Depends in the first place, I don't think
that's needed.
diff --git a/debian/changelog b/debian/changelog
index 101630c..ab79d2a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ mesa (7.0.3~rc2-2) UNRELEASED; urgency=low
* Pull from mesa_7_0_branch (1e83d70b).
* Fixes regression in the i965 dri driver (closes: #470984, #470084)
* Update 02_use-ieee-fp-on-s390-and-m68k.patch.
+ * Change libgl1-mesa-swx11-i686's pre-dependency on libgl1-mesa-swx11 to a
+ regular versioned dependency, and add ${shlibs:Depends}.
-- Julien Cristau <jcristau@debian.org> Mon, 31 Mar 2008 13:02:39 +0200
diff --git a/debian/control b/debian/control
index 2fd579f..bf3ce80 100644
--- a/debian/control
+++ b/debian/control
@@ -60,7 +60,7 @@ Package: libgl1-mesa-swx11-i686
Section: libs
Priority: extra
Architecture: i386
-Pre-Depends: libgl1-mesa-swx11
+Depends: libgl1-mesa-swx11 (= ${binary:Version}), ${shlibs:Depends}
Description: Mesa OpenGL runtime [i686 optimized]
Mesa is a 3-D graphics library with an API which is very similar to
that of OpenGL. To the extent that Mesa utilizes the OpenGL command
commit b23d9088295bbc4bacc0e60eee1075fa36ebd734
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Mar 31 13:17:13 2008 +0200
Update 02_use-ieee-fp-on-s390-and-m68k.patch.
diff --git a/debian/changelog b/debian/changelog
index 6c0de48..101630c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ mesa (7.0.3~rc2-2) UNRELEASED; urgency=low
* Pull from mesa_7_0_branch (1e83d70b).
* Fixes regression in the i965 dri driver (closes: #470984, #470084)
+ * Update 02_use-ieee-fp-on-s390-and-m68k.patch.
-- Julien Cristau <jcristau@debian.org> Mon, 31 Mar 2008 13:02:39 +0200
diff --git a/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch b/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch
index ddc7198..8168f29 100644
--- a/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch
+++ b/debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch
@@ -12,7 +12,7 @@ Index: mesa/src/mesa/main/imports.h
#if defined(__i386__) || defined(__386__) || defined(__sparc__) || \
- defined(__s390x__) || defined(__powerpc__) || \
+ defined(__s390__) || defined(__s390x__) || defined(__powerpc__) || \
- defined(__amd64__) || \
+ defined(__amd64__) || defined(__x86_64__) || \
+ defined(__m68k__) || \
defined(ia64) || defined(__ia64__) || \
defined(__hppa__) || defined(hpux) || \
commit 5379b84e633d43a80707058f95ef4e8f361dead0
Author: Julien Cristau <jcristau@debian.org>
Date: Mon Mar 31 13:11:59 2008 +0200
Update changelog and add bug closer
diff --git a/debian/changelog b/debian/changelog
index e643373..6c0de48 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+mesa (7.0.3~rc2-2) UNRELEASED; urgency=low
+
+ * Pull from mesa_7_0_branch (1e83d70b).
+ * Fixes regression in the i965 dri driver (closes: #470984, #470084)
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 31 Mar 2008 13:02:39 +0200
+
mesa (7.0.3~rc2-1) unstable; urgency=low
* New upstream release candidate.
commit 1e83d70b6d07c7d3c61ee0ddf0de9420c167175d
Author: Xiang, Haihao <haihao.xiang@intel.com>
Date: Mon Mar 31 09:34:25 2008 +0800
i965: Apply -ve rhw to 965. Fix the regression introduced by
commit da476ff02dd357d9909a2df9891ee645f5f776a0. (bug#14940)
diff --git a/src/mesa/drivers/dri/i965/brw_clip_util.c b/src/mesa/drivers/dri/i965/brw_clip_util.c
index fc484a7..41d9b75 100644
--- a/src/mesa/drivers/dri/i965/brw_clip_util.c
+++ b/src/mesa/drivers/dri/i965/brw_clip_util.c
@@ -343,7 +343,7 @@ void brw_clip_init_clipmask( struct brw_clip_compile *c )
release_tmp(c, tmp);
}
- if (BRW_IS_IGD(p->brw)) {
+ if (!BRW_IS_IGD(p->brw)) {
/* Test for -ve rhw workaround
*/
brw_set_conditionalmod(p, BRW_CONDITIONAL_NZ);
commit 767dfa5b9c07fe6ae267e1ff0d3bbbf093a04c44
Author: Brian <brian.paul@tungstengraphics.com>
Date: Fri Mar 28 13:24:00 2008 -0600
fix texture/renderbuffer mix-up in test_attachment_completeness()
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 8e7d66c..bbdc46f 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -302,7 +302,7 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,
/* OK */
}
else if (ctx->Extensions.EXT_packed_depth_stencil &&
- att->Renderbuffer->_BaseFormat == GL_DEPTH_STENCIL_EXT) {
+ texImage->TexFormat->BaseFormat == GL_DEPTH_STENCIL_EXT) {
/* OK */
}
else {
commit 7ff5b381263a8c6011185fffb48dad76666860a2
Author: Alan Hourihane <alanh@tungstengraphics.com>
Date: Thu Mar 27 16:36:12 2008 +0000
Fix build problems
diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c
index 9227370..f1c98fe 100644
--- a/src/mesa/tnl/t_vertex_sse.c
+++ b/src/mesa/tnl/t_vertex_sse.c
@@ -653,7 +653,7 @@ void _tnl_generate_sse_emit( GLcontext *ctx )
p.identity = x86_make_reg(file_XMM, 6);
p.chan0 = x86_make_reg(file_XMM, 7);
- if (!x86_init_func(&p.func, MAX_SSE_CODE_SIZE)) {
+ if (!x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE)) {
vtx->emit = NULL;
return;
}
diff --git a/src/mesa/x86/rtasm/x86sse.c b/src/mesa/x86/rtasm/x86sse.c
index 39c0e9b..772471c 100644
--- a/src/mesa/x86/rtasm/x86sse.c
+++ b/src/mesa/x86/rtasm/x86sse.c
@@ -1161,11 +1161,12 @@ void x86_init_func( struct x86_function *p )
p->csr = p->store;
}
-void x86_init_func_size( struct x86_function *p, unsigned code_size )
+int x86_init_func_size( struct x86_function *p, unsigned code_size )
{
p->size = code_size;
p->store = _mesa_exec_malloc(code_size);
p->csr = p->store;
+ return p->store != NULL;
}
void x86_release_func( struct x86_function *p )
diff --git a/src/mesa/x86/rtasm/x86sse.h b/src/mesa/x86/rtasm/x86sse.h
index c2aa416..f6282f5 100644
--- a/src/mesa/x86/rtasm/x86sse.h
+++ b/src/mesa/x86/rtasm/x86sse.h
@@ -80,7 +80,7 @@ enum sse_cc {
void x86_init_func( struct x86_function *p );
-void x86_init_func_size( struct x86_function *p, unsigned code_size );
+int x86_init_func_size( struct x86_function *p, unsigned code_size );
void x86_release_func( struct x86_function *p );
void (*x86_get_func( struct x86_function *p ))( void );
commit e209f5300da3a9586b7a473b010d4e1100911232
Author: Brian <brian.paul@tungstengraphics.com>
Date: Tue Mar 25 08:11:47 2008 -0600
updated glext.h to version 40
diff --git a/docs/relnotes-7.0.3.html b/docs/relnotes-7.0.3.html
index 6b7abea..212467d 100644
--- a/docs/relnotes-7.0.3.html
+++ b/docs/relnotes-7.0.3.html
@@ -8,7 +8,7 @@
<body bgcolor="#eeeeee">
-<H1>Mesa 7.0.3 Release Notes / February TBD, 2008</H1>
+<H1>Mesa 7.0.3 Release Notes / March TBD, 2008</H1>
<p>
Mesa 7.0.3 is a stable release with bug fixes since version 7.0.2.
@@ -44,6 +44,12 @@ Mesa 7.0.3 is a stable release with bug fixes since version 7.0.2.
<li>glGetTexImage into a PBO didn't always work
</ul>
+<h2>Changes</h2>
+<ul>
+<li>Updated glext.h to version 40
+</ul>
+
+
<h2>Driver Status</h2>
commit 3c4b50c3529896fc958b1a31043ca3305d4d34ee
Author: Brian <brian.paul@tungstengraphics.com>
Date: Tue Mar 25 08:11:36 2008 -0600
updated to version 40
diff --git a/include/GL/glext.h b/include/GL/glext.h
index 511305a..2b22714 100644
--- a/include/GL/glext.h
+++ b/include/GL/glext.h
@@ -46,9 +46,9 @@ extern "C" {
/*************************************************************/
/* Header file version number, required by OpenGL ABI for Linux */
-/* glext.h last updated 2007/02/12 */
+/* glext.h last updated 2008/03/24 */
/* Current version at http://www.opengl.org/registry/ */
-#define GL_GLEXT_VERSION 39
+#define GL_GLEXT_VERSION 40
#ifndef GL_VERSION_1_2
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
@@ -3091,8 +3091,8 @@ extern "C" {
#ifndef GL_EXT_framebuffer_blit
#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
#endif
#ifndef GL_EXT_framebuffer_multisample
@@ -3379,6 +3379,9 @@ extern "C" {
#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
#endif
+#ifndef GL_GREMEDY_frame_terminator
+#endif
+
/*************************************************************/
@@ -7252,6 +7255,14 @@ typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint
typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
#endif
+#ifndef GL_GREMEDY_frame_terminator
+#define GL_GREMEDY_frame_terminator 1
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFrameTerminatorGREMEDY (void);
+#endif /* GL_GLEXT_PROTOTYPES */
+typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void);
+#endif
+
#ifdef __cplusplus
}
commit 4e7c2fcf18fb395d2a04cc8d46a6c6bd11227c54
Author: Brian <brian.paul@tungstengraphics.com>
Date: Mon Mar 24 19:55:46 2008 -0600
add GL_READ_FRAMEBUFFER_BINDING_EXT case, regenerate get.c file
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index eb81ee4..2cbd605 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1864,6 +1864,10 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(ctx->Const.MaxRenderbufferSize);
break;
+ case GL_READ_FRAMEBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_blit, "GetBooleanv");
+ params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->Name);
+ break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
@@ -3695,6 +3699,10 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
CHECK_EXT1(EXT_framebuffer_object, "GetFloatv");
params[0] = (GLfloat)(ctx->Const.MaxRenderbufferSize);
break;
+ case GL_READ_FRAMEBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_blit, "GetFloatv");
+ params[0] = (GLfloat)(ctx->ReadBuffer->Name);
+ break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
@@ -5526,6 +5534,10 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv");
params[0] = ctx->Const.MaxRenderbufferSize;
break;
+ case GL_READ_FRAMEBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_blit, "GetIntegerv");
+ params[0] = ctx->ReadBuffer->Name;
+ break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index 33be768..6ff9168 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -977,6 +977,11 @@ StateVars = [
["ctx->Const.MaxRenderbufferSize"], "",
["EXT_framebuffer_object"] ),
+ # GL_EXT_framebuffer_blit
+ # NOTE: GL_DRAW_FRAMEBUFFER_BINDING_EXT == GL_FRAMEBUFFER_BINDING_EXT
+ ( "GL_READ_FRAMEBUFFER_BINDING_EXT", GLint, ["ctx->ReadBuffer->Name"], "",
+ ["EXT_framebuffer_blit"] ),
+
# GL_ARB_fragment_shader
( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
["ctx->Const.FragmentProgram.MaxUniformComponents"], "",
commit 22534f94f5a12a01866a6b74b81854354c0b56db
Author: Brian <brian.paul@tungstengraphics.com>
Date: Mon Mar 24 19:55:04 2008 -0600
fix wrong values for GL_READ/DRAW_FRAMEBUFFER_BINDING_EXT tokens
diff --git a/include/GL/glext.h b/include/GL/glext.h
index 2519a6c..511305a 100644
--- a/include/GL/glext.h
+++ b/include/GL/glext.h
@@ -3091,8 +3091,8 @@ extern "C" {
#ifndef GL_EXT_framebuffer_blit
#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT
#endif
#ifndef GL_EXT_framebuffer_multisample
commit 1a6928fdbeae7759d1a2bd5616520ca87d3ea521
Author: Brian <brian.paul@tungstengraphics.com>
Date: Sat Mar 22 10:27:08 2008 -0600
use ctx->Driver.DeleteProgram() in a few more places
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c
index 1f22739..95cabe7 100644
--- a/src/mesa/shader/program.c
+++ b/src/mesa/shader/program.c
@@ -343,7 +343,7 @@ _mesa_clone_program(GLcontext *ctx, const struct gl_program *prog)
clone->Format = prog->Format;
clone->Instructions = _mesa_alloc_instructions(prog->NumInstructions);
if (!clone->Instructions) {
- _mesa_delete_program(ctx, clone);
+ ctx->Driver.DeleteProgram(ctx, clone);
return NULL;
}
_mesa_copy_instructions(clone->Instructions, prog->Instructions,
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 96940be..5f9e2b8 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -80,7 +80,7 @@ _mesa_clear_shader_program_data(GLcontext *ctx,
/* to prevent a double-free in the next call */
shProg->VertexProgram->Base.Parameters = NULL;
}
- _mesa_delete_program(ctx, &shProg->VertexProgram->Base);
+ ctx->Driver.DeleteProgram(ctx, &shProg->VertexProgram->Base);
shProg->VertexProgram = NULL;
}
@@ -89,7 +89,7 @@ _mesa_clear_shader_program_data(GLcontext *ctx,
/* to prevent a double-free in the next call */
shProg->FragmentProgram->Base.Parameters = NULL;
}
- _mesa_delete_program(ctx, &shProg->FragmentProgram->Base);
+ ctx->Driver.DeleteProgram(ctx, &shProg->FragmentProgram->Base);
shProg->FragmentProgram = NULL;
}
@@ -247,7 +247,7 @@ _mesa_free_shader(GLcontext *ctx, struct gl_shader *sh)
_mesa_free(sh->InfoLog);
for (i = 0; i < sh->NumPrograms; i++) {
assert(sh->Programs[i]);
- _mesa_delete_program(ctx, sh->Programs[i]);
+ ctx->Driver.DeleteProgram(ctx, sh->Programs[i]);
}
if (sh->Programs)
_mesa_free(sh->Programs);
commit 325dbbac47e42619876f902dcaeca80fc2e453a4
Author: Brian <brian.paul@tungstengraphics.com>
Date: Sat Mar 22 09:11:35 2008 -0600
delete default programs with ctx->Driver.DeleteProgram()
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 9de515d..e79a905 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -687,10 +687,10 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
_mesa_DeleteHashTable(ss->Programs);
#endif
#if FEATURE_ARB_vertex_program
- _mesa_delete_program(ctx, ss->DefaultVertexProgram);
+ ctx->Driver.DeleteProgram(ctx, ss->DefaultVertexProgram);
#endif
#if FEATURE_ARB_fragment_program
- _mesa_delete_program(ctx, ss->DefaultFragmentProgram);
+ ctx->Driver.DeleteProgram(ctx, ss->DefaultFragmentProgram);
#endif
#if FEATURE_ATI_fragment_shader
commit 39ac6b04811ddf22cae95e3e1ee1dccdcb4f2007
Author: Brian <brian.paul@tungstengraphics.com>
Date: Fri Mar 21 12:32:29 2008 -0600
Fix some PBO breakage.
In _mesa_Bitmap, can't early return if bitmap ptr is NULL, it may be an offset
into a PBO. Similarly for _mesa_GetTexImage.
diff --git a/docs/relnotes-7.0.3.html b/docs/relnotes-7.0.3.html
index a2a3437..6b7abea 100644
--- a/docs/relnotes-7.0.3.html
+++ b/docs/relnotes-7.0.3.html
@@ -40,6 +40,8 @@ Mesa 7.0.3 is a stable release with bug fixes since version 7.0.2.
<li>Bad strings given to glProgramStringARB() didn't generate GL_INVALID_OPERATION
<li>Fixed minor point rasterization regression (bug 11016)
<li>state.texenv.color state var didn't work in GL_ARB_fragment_program (bug 14931)
+<li>glBitmap from a PBO didn't always work
+<li>glGetTexImage into a PBO didn't always work
</ul>
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c
index c82abcc..3acccf0 100644
--- a/src/mesa/main/drawpix.c
+++ b/src/mesa/main/drawpix.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5
+ * Version: 7.0.3
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -341,12 +341,10 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
}
if (ctx->RenderMode == GL_RENDER) {
- if (bitmap) {
- /* Truncate, to satisfy conformance tests (matches SGI's OpenGL). */
- GLint x = IFLOOR(ctx->Current.RasterPos[0] - xorig);
- GLint y = IFLOOR(ctx->Current.RasterPos[1] - yorig);
- ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
- }
+ /* Truncate, to satisfy conformance tests (matches SGI's OpenGL). */
+ GLint x = IFLOOR(ctx->Current.RasterPos[0] - xorig);
+ GLint y = IFLOOR(ctx->Current.RasterPos[1] - yorig);
+ ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
}
#if _HAVE_FULL_GL
else if (ctx->RenderMode == GL_FEEDBACK) {
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index d857a4f..26d8fbc 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -2177,9 +2177,6 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format,
return;
}
- if (!pixels)
- return;
-
_mesa_lock_texture(ctx, texObj);
{
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
commit 46cc4854e9f781e83556063981d824fad0651eea
Author: Brian <brian.paul@tungstengraphics.com>
Date: Wed Mar 19 17:24:42 2008 -0600
fix IEEE_ONE definition for ICC compiler (bug 15134)
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index ebdfc45..d6dc725 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.2
+ * Version: 7.0.3
*
- * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -159,7 +159,7 @@ typedef union { GLfloat f; GLint i; } fi_type;
***/
#if defined(__i386__) || defined(__386__) || defined(__sparc__) || \
defined(__s390x__) || defined(__powerpc__) || \
- defined(__amd64__) || \
+ defined(__amd64__) || defined(__x86_64__) || \
defined(ia64) || defined(__ia64__) || \
defined(__hppa__) || defined(hpux) || \
defined(__mips) || defined(_MIPS_ARCH) || \
commit f93882512e54402a7b5199208648be4f60015597
Author: Alan Hourihane <alanh@tungstengraphics.com>
Date: Wed Mar 19 01:03:48 2008 +0000
set outputs_safe to 0 as it's possible for the code generation
to slip over the allocated memory for the vb.
pull in sse fixes from gallium-0.1
diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c
index 9515d9f..9227370 100644
--- a/src/mesa/tnl/t_vertex_sse.c
+++ b/src/mesa/tnl/t_vertex_sse.c
@@ -648,7 +648,7 @@ void _tnl_generate_sse_emit( GLcontext *ctx )
p.ctx = ctx;
p.inputs_safe = 0; /* for now */
- p.outputs_safe = 1; /* for now */
+ p.outputs_safe = 0; /* for now */
p.have_sse2 = cpu_has_xmm2;
p.identity = x86_make_reg(file_XMM, 6);
p.chan0 = x86_make_reg(file_XMM, 7);
diff --git a/src/mesa/x86/rtasm/x86sse.c b/src/mesa/x86/rtasm/x86sse.c
index 612cd51..39c0e9b 100644
--- a/src/mesa/x86/rtasm/x86sse.c
+++ b/src/mesa/x86/rtasm/x86sse.c
@@ -1,4 +1,4 @@
-#if defined(USE_X86_ASM) || defined(SLANG_X86)
+#if defined(__i386__) || defined(__386__)
#include "imports.h"
#include "x86sse.h"
@@ -6,54 +6,78 @@
#define DISASSEM 0
#define X86_TWOB 0x0f
-/* Emit bytes to the instruction stream:
- */
-static void emit_1b( struct x86_function *p, GLbyte b0 )
+static unsigned char *cptr( void (*label)() )
{
- *(GLbyte *)(p->csr++) = b0;
+ return (unsigned char *)(unsigned long)label;
}
-static void emit_1i( struct x86_function *p, GLint i0 )
+
+static void do_realloc( struct x86_function *p )
{
- *(GLint *)(p->csr) = i0;
- p->csr += 4;
+ if (p->size == 0) {
+ p->size = 1024;
+ p->store = _mesa_exec_malloc(p->size);
+ p->csr = p->store;
+ }
+ else {
+ unsigned used = p->csr - p->store;
+ unsigned char *tmp = p->store;
+ p->size *= 2;
+ p->store = _mesa_exec_malloc(p->size);
+ memcpy(p->store, tmp, used);
+ p->csr = p->store + used;
+ _mesa_exec_free(tmp);
+ }
}
-static void disassem( struct x86_function *p, const char *fn )
+/* Emit bytes to the instruction stream:
+ */
+static unsigned char *reserve( struct x86_function *p, int bytes )
{
-#if DISASSEM && 0
- if (fn && fn != p->fn) {
- _mesa_printf("0x%x: %s\n", p->csr, fn);
- p->fn = fn;
+ if (p->csr + bytes - p->store > p->size)
+ do_realloc(p);
+
+ {
+ unsigned char *csr = p->csr;
+ p->csr += bytes;
+ return csr;
}
-#endif
}
-static void emit_1ub_fn( struct x86_function *p, GLubyte b0, const char *fn )
+
+
+static void emit_1b( struct x86_function *p, char b0 )
{
- disassem(p, fn);
- *(p->csr++) = b0;
+ char *csr = (char *)reserve(p, 1);
+ *csr = b0;
}
-static void emit_2ub_fn( struct x86_function *p, GLubyte b0, GLubyte b1, const char *fn )
+static void emit_1i( struct x86_function *p, int i0 )
{
- disassem(p, fn);
- *(p->csr++) = b0;
- *(p->csr++) = b1;
+ int *icsr = (int *)reserve(p, sizeof(i0));
+ *icsr = i0;
}
-static void emit_3ub_fn( struct x86_function *p, GLubyte b0, GLubyte b1, GLubyte b2, const char *fn )
+static void emit_1ub( struct x86_function *p, unsigned char b0 )
{
- disassem(p, fn);
- *(p->csr++) = b0;
- *(p->csr++) = b1;
- *(p->csr++) = b2;
+ unsigned char *csr = reserve(p, 1);
+ *csr++ = b0;
}
-#define emit_1ub(p, b0) emit_1ub_fn(p, b0, __FUNCTION__)
-#define emit_2ub(p, b0, b1) emit_2ub_fn(p, b0, b1, __FUNCTION__)
-#define emit_3ub(p, b0, b1, b2) emit_3ub_fn(p, b0, b1, b2, __FUNCTION__)
+static void emit_2ub( struct x86_function *p, unsigned char b0, unsigned char b1 )
+{
+ unsigned char *csr = reserve(p, 2);
+ *csr++ = b0;
+ *csr++ = b1;
+}
+static void emit_3ub( struct x86_function *p, unsigned char b0, unsigned char b1, unsigned char b2 )
+{
+ unsigned char *csr = reserve(p, 3);
+ *csr++ = b0;
+ *csr++ = b1;
+ *csr++ = b2;
+}
/* Build a modRM byte + possible displacement. No treatment of SIB
@@ -63,7 +87,7 @@ static void emit_modrm( struct x86_function *p,
struct x86_reg reg,
struct x86_reg regmem )
{
- GLubyte val = 0;
+ unsigned char val = 0;
assert(reg.mod == mod_REG);
@@ -71,13 +95,13 @@ static void emit_modrm( struct x86_function *p,
val |= reg.idx << 3; /* reg field */
val |= regmem.idx; /* r/m field */
- emit_1ub_fn(p, val, 0);
+ emit_1ub(p, val);
/* Oh-oh we've stumbled into the SIB thing.
*/
if (regmem.file == file_REG32 &&
regmem.idx == reg_SP) {
- emit_1ub_fn(p, 0x24, 0); /* simplistic! */
+ emit_1ub(p, 0x24); /* simplistic! */
}
switch (regmem.mod) {
@@ -98,7 +122,7 @@ static void emit_modrm( struct x86_function *p,
static void emit_modrm_noreg( struct x86_function *p,
- GLuint op,
+ unsigned op,
struct x86_reg regmem )
{
struct x86_reg dummy = x86_make_reg(file_REG32, op);
@@ -111,21 +135,21 @@ static void emit_modrm_noreg( struct x86_function *p,
* the arguments presented.
*/
static void emit_op_modrm( struct x86_function *p,
- GLubyte op_dst_is_reg,
- GLubyte op_dst_is_mem,
+ unsigned char op_dst_is_reg,
+ unsigned char op_dst_is_mem,
struct x86_reg dst,
struct x86_reg src )
{
switch (dst.mod) {
case mod_REG:
- emit_1ub_fn(p, op_dst_is_reg, 0);
+ emit_1ub(p, op_dst_is_reg);
emit_modrm(p, dst, src);
break;
case mod_INDIRECT:
case mod_DISP32:
case mod_DISP8:
assert(src.mod == mod_REG);
- emit_1ub_fn(p, op_dst_is_mem, 0);
+ emit_1ub(p, op_dst_is_mem);
emit_modrm(p, src, dst);
break;
default:
@@ -156,7 +180,7 @@ struct x86_reg x86_make_reg( enum x86_reg_file file,
}
struct x86_reg x86_make_disp( struct x86_reg reg,
- GLint disp )
+ int disp )
{
assert(reg.file == file_REG32);
@@ -185,7 +209,7 @@ struct x86_reg x86_get_base_reg( struct x86_reg reg )
return x86_make_reg( reg.file, reg.idx );
}
-GLubyte *x86_get_label( struct x86_function *p )
+unsigned char *x86_get_label( struct x86_function *p )
{
return p->csr;
}
@@ -199,13 +223,13 @@ GLubyte *x86_get_label( struct x86_function *p )
void x86_jcc( struct x86_function *p,
enum x86_cc cc,
- GLubyte *label )
+ unsigned char *label )
{
- GLint offset = label - (x86_get_label(p) + 2);
+ int offset = label - (x86_get_label(p) + 2);
if (offset <= 127 && offset >= -128) {
emit_1ub(p, 0x70 + cc);
- emit_1b(p, (GLbyte) offset);
+ emit_1b(p, (char) offset);
}
else {
offset = label - (x86_get_label(p) + 6);
@@ -216,7 +240,7 @@ void x86_jcc( struct x86_function *p,
/* Always use a 32bit offset for forward jumps:
*/
-GLubyte *x86_jcc_forward( struct x86_function *p,
+unsigned char *x86_jcc_forward( struct x86_function *p,
enum x86_cc cc )
{
emit_2ub(p, 0x0f, 0x80 + cc);
@@ -224,14 +248,14 @@ GLubyte *x86_jcc_forward( struct x86_function *p,
return x86_get_label(p);
}
-GLubyte *x86_jmp_forward( struct x86_function *p)
+unsigned char *x86_jmp_forward( struct x86_function *p)
{
emit_1ub(p, 0xe9);
emit_1i(p, 0);
return x86_get_label(p);
}
-GLubyte *x86_call_forward( struct x86_function *p)
+unsigned char *x86_call_forward( struct x86_function *p)
{
emit_1ub(p, 0xe8);
emit_1i(p, 0);
@@ -241,28 +265,41 @@ GLubyte *x86_call_forward( struct x86_function *p)
/* Fixup offset from forward jump:
*/
void x86_fixup_fwd_jump( struct x86_function *p,
- GLubyte *fixup )
+ unsigned char *fixup )
{
*(int *)(fixup - 4) = x86_get_label(p) - fixup;
}
-void x86_jmp( struct x86_function *p, GLubyte *label)
+void x86_jmp( struct x86_function *p, unsigned char *label)
{
emit_1ub(p, 0xe9);
emit_1i(p, label - x86_get_label(p) - 4);
}
-void x86_call( struct x86_function *p, GLubyte *label)
+#if 0
+/* This doesn't work once we start reallocating & copying the
+ * generated code on buffer fills, because the call is relative to the
+ * current pc.
+ */
+void x86_call( struct x86_function *p, void (*label)())
{
emit_1ub(p, 0xe8);
- emit_1i(p, label - x86_get_label(p) - 4);
+ emit_1i(p, cptr(label) - x86_get_label(p) - 4);
+}
+#else
+void x86_call( struct x86_function *p, struct x86_reg reg)
+{
+ emit_1ub(p, 0xff);
+ emit_modrm(p, reg, reg);
}
+#endif
+
/* michal:
* Temporary. As I need immediate operands, and dont want to mess with the codegen,
* I load the immediate into general purpose register and use it.
*/
-void x86_mov_reg_imm( struct x86_function *p, struct x86_reg dst, GLint imm )
+void x86_mov_reg_imm( struct x86_function *p, struct x86_reg dst, int imm )
{
assert(dst.mod == mod_REG);
emit_1ub(p, 0xb8 + dst.idx);
@@ -502,6 +539,14 @@ void sse_addss( struct x86_function *p,
emit_modrm( p, dst, src );
}
+void sse_andnps( struct x86_function *p,
+ struct x86_reg dst,
+ struct x86_reg src )
+{
+ emit_2ub(p, X86_TWOB, 0x55);
+ emit_modrm( p, dst, src );
+}
+
void sse_andps( struct x86_function *p,
struct x86_reg dst,
struct x86_reg src )
@@ -510,6 +555,13 @@ void sse_andps( struct x86_function *p,
emit_modrm( p, dst, src );
}
+void sse_rsqrtps( struct x86_function *p,
+ struct x86_reg dst,
+ struct x86_reg src )
+{
+ emit_2ub(p, X86_TWOB, 0x52);
+ emit_modrm( p, dst, src );
+}
void sse_rsqrtss( struct x86_function *p,
struct x86_reg dst,
@@ -538,6 +590,21 @@ void sse_movlhps( struct x86_function *p,
emit_modrm( p, dst, src );
}
+void sse_orps( struct x86_function *p,
+ struct x86_reg dst,
+ struct x86_reg src )
+{
+ emit_2ub(p, X86_TWOB, 0x56);
+ emit_modrm( p, dst, src );
+}
+
+void sse_xorps( struct x86_function *p,
+ struct x86_reg dst,
+ struct x86_reg src )
+{
+ emit_2ub(p, X86_TWOB, 0x57);
+ emit_modrm( p, dst, src );
+}
void sse_cvtps2pi( struct x86_function *p,
struct x86_reg dst,
@@ -559,7 +626,7 @@ void sse_cvtps2pi( struct x86_function *p,
void sse_shufps( struct x86_function *p,
struct x86_reg dest,
struct x86_reg arg0,
- GLubyte shuf)
+ unsigned char shuf)
{
emit_2ub(p, X86_TWOB, 0xC6);
emit_modrm(p, dest, arg0);
@@ -569,13 +636,21 @@ void sse_shufps( struct x86_function *p,
void sse_cmpps( struct x86_function *p,
struct x86_reg dest,
struct x86_reg arg0,
- GLubyte cc)
+ unsigned char cc)
{
emit_2ub(p, X86_TWOB, 0xC2);
emit_modrm(p, dest, arg0);
emit_1ub(p, cc);
}
+void sse_pmovmskb( struct x86_function *p,
+ struct x86_reg dest,
+ struct x86_reg src)
+{
+ emit_3ub(p, 0x66, X86_TWOB, 0xD7);
+ emit_modrm(p, dest, src);
+}
+
/***********************************************************************
* SSE2 instructions
*/
@@ -586,13 +661,21 @@ void sse_cmpps( struct x86_function *p,
void sse2_pshufd( struct x86_function *p,
struct x86_reg dest,
struct x86_reg arg0,
Reply to: