Mesa (mesa_7_5_branch): glXChooseVisual: Only consider fbconfig if we can get the corresponding visual.

2009-05-12 Thread Michel Dänzer
Module: Mesa
Branch: mesa_7_5_branch
Commit: 46b81b0cc883df0ef7d998be36ae6cbf80257cd2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=46b81b0cc883df0ef7d998be36ae6cbf80257cd2

Author: Michel Dänzer 
Date:   Tue May 12 08:01:22 2009 +0200

glXChooseVisual: Only consider fbconfig if we can get the corresponding visual.

This can fail, e.g. when XLIB_SKIP_ARGB_VISUALS=1 is set.

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524794 and
http://bugs.freedesktop.org/show_bug.cgi?id=21600 .

---

 src/glx/x11/glxcmds.c |   33 +
 1 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/glx/x11/glxcmds.c b/src/glx/x11/glxcmds.c
index b9e0706..ec3e69e 100644
--- a/src/glx/x11/glxcmds.c
+++ b/src/glx/x11/glxcmds.c
@@ -1319,30 +1319,31 @@ PUBLIC XVisualInfo *glXChooseVisual(Display *dpy, int 
screen, int *attribList)
 ** Eliminate visuals that don't meet minimum requirements
 ** Compute a score for those that do
 ** Remember which visual, if any, got the highest score
+** If no visual is acceptable, return None
+** Otherwise, create an XVisualInfo list with just the selected X visual
+** and return this.
 */
 for ( modes = psc->visuals ; modes != NULL ; modes = modes->next ) {
if ( fbconfigs_compatible( & test_config, modes )
 && ((best_config == NULL)
 || (fbconfig_compare( (const __GLcontextModes * const * 
const)&modes, &best_config ) < 0)) ) {
-   best_config = modes;
+   XVisualInfo visualTemplate;
+   XVisualInfo *newList;
+   int  i;
+
+   visualTemplate.screen = screen;
+   visualTemplate.visualid = modes->visualID;
+   newList = XGetVisualInfo( dpy, VisualScreenMask|VisualIDMask,
+ &visualTemplate, &i );
+
+   if (newList) {
+   Xfree(visualList);
+   visualList = newList;
+   best_config = modes;
+   }
}
 }
 
-/*
-** If no visual is acceptable, return None
-** Otherwise, create an XVisualInfo list with just the selected X visual
-** and return this.
-*/
-if (best_config != NULL) {
-   XVisualInfo visualTemplate;
-   int  i;
-
-   visualTemplate.screen = screen;
-   visualTemplate.visualid = best_config->visualID;
-   visualList = XGetVisualInfo( dpy, VisualScreenMask|VisualIDMask,
-&visualTemplate, &i );
-}
-
 return visualList;
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (radeon-rewrite): radeon: avoid segfault in radeon_update_renderbuffers() if using DRI1

2009-05-12 Thread Jerome Glisse
Module: Mesa
Branch: radeon-rewrite
Commit: 0bfa8dfaaf49703eb5c3237b5cae6201b8755e4d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0bfa8dfaaf49703eb5c3237b5cae6201b8755e4d

Author: Tormod Volden 
Date:   Tue May 12 09:32:11 2009 +0200

radeon: avoid segfault in radeon_update_renderbuffers() if using DRI1

Basically the same as 43d9020ff1e975e7f4f9480d9ef24f0b9fb2141f for intel. Bug 
21688.

Signed-off-by: Tormod Volden 

---

 .../drivers/dri/radeon/radeon_common_context.c |7 ---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c 
b/src/mesa/drivers/dri/radeon/radeon_common_context.c
index 124b587..6fb6f92 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
@@ -428,7 +428,7 @@ void
 radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 {
unsigned int attachments[10];
-   __DRIbuffer *buffers;
+   __DRIbuffer *buffers = NULL;
__DRIscreen *screen;
struct radeon_renderbuffer *rb;
int i, count;
@@ -444,7 +444,8 @@ radeon_update_renderbuffers(__DRIcontext *context, 
__DRIdrawable *drawable)
screen = context->driScreenPriv;
radeon = (radeonContextPtr) context->driverPrivate;
 
-   if ((screen->dri2.loader->base.version > 2)
+   if (screen->dri2.loader
+  && (screen->dri2.loader->base.version > 2)
   && (screen->dri2.loader->getBuffersWithFormat != NULL)) {
struct radeon_renderbuffer *depth_rb;
struct radeon_renderbuffer *stencil_rb;
@@ -481,7 +482,7 @@ radeon_update_renderbuffers(__DRIcontext *context, 
__DRIdrawable *drawable)
attachments, i 
/ 2,
&count,

drawable->loaderPrivate);
-   } else {
+   } else if (screen->dri2.loader) {
i = 0;
if (draw->color_rb[0])
attachments[i++] = __DRI_BUFFER_FRONT_LEFT;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (radeon-rewrite): r300/r500: make sure we detect constant buffer changes

2009-05-12 Thread Jerome Glisse
Module: Mesa
Branch: radeon-rewrite
Commit: 05c19ec7f0717549c010afc0b6cdc81962d32675
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=05c19ec7f0717549c010afc0b6cdc81962d32675

Author: Jerome Glisse 
Date:   Tue May 12 13:04:32 2009 +0200

r300/r500: make sure we detect constant buffer changes

This was broken with last merge see f48473e42511f8d37a239a07f791bc0a87209e5b
for explanations.

---

 src/mesa/drivers/dri/r300/r300_fragprog_common.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c 
b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
index 6eaad76..2a880e6 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
@@ -281,7 +281,7 @@ void r300TranslateFragmentShader(GLcontext *ctx, struct 
gl_fragment_program *fp)
 
r300_fp->translated = GL_TRUE;
 
-   r300UpdateStateParameters(ctx, _NEW_PROGRAM);
+   r300UpdateStateParameters(ctx, _NEW_PROGRAM | 
_NEW_PROGRAM_CONSTANTS);
 
if (r300_fp->error || (RADEON_DEBUG & DEBUG_PIXEL))
r300->vtbl.FragmentProgramDump(&r300_fp->code);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (radeon-rewrite): radeon: glReadBuffer set _NEW_BUFFERS, not _NEW_PIXEL

2009-05-12 Thread Jerome Glisse
Module: Mesa
Branch: radeon-rewrite
Commit: c514c1f99493147bbba7a1dbe157c0492f4cf2eb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c514c1f99493147bbba7a1dbe157c0492f4cf2eb

Author: Jerome Glisse 
Date:   Tue May 12 13:05:57 2009 +0200

radeon: glReadBuffer set _NEW_BUFFERS, not _NEW_PIXEL

This was broken with last merge see 62043b27575c378c027251316421e4699f461108
for explanations

---

 src/mesa/drivers/dri/r200/r200_state.c |2 +-
 src/mesa/drivers/dri/r300/r300_state.c |4 ++--
 src/mesa/drivers/dri/radeon/radeon_state.c |2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_state.c 
b/src/mesa/drivers/dri/r200/r200_state.c
index a06ea17..6802e19 100644
--- a/src/mesa/drivers/dri/r200/r200_state.c
+++ b/src/mesa/drivers/dri/r200/r200_state.c
@@ -2319,7 +2319,7 @@ GLboolean r200ValidateState( GLcontext *ctx )
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLuint new_state = rmesa->radeon.NewGLState;
 
-   if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) {
+   if (new_state & _NEW_BUFFERS) {
   _mesa_update_framebuffer(ctx);
   /* this updates the DrawBuffer's Width/Height if it's a FBO */
   _mesa_update_draw_buffer_bounds(ctx);
diff --git a/src/mesa/drivers/dri/r300/r300_state.c 
b/src/mesa/drivers/dri/r300/r300_state.c
index 217a168..301ede3 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -2221,7 +2221,7 @@ void r300UpdateShaders(r300ContextPtr rmesa)
r300ResetHwState(rmesa);
 
r300UpdateStateParameters(ctx, _NEW_PROGRAM |
-  _NEW_PROGRAM_CONSTANTS);
+  _NEW_PROGRAM_CONSTANTS);
return;
}
}
@@ -2441,7 +2441,7 @@ static void r300InvalidateState(GLcontext * ctx, GLuint 
new_state)
_vbo_InvalidateState(ctx, new_state);
_tnl_InvalidateState(ctx, new_state);
 
-   if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) {
+   if (new_state & _NEW_BUFFERS) {
_mesa_update_framebuffer(ctx);
/* this updates the DrawBuffer's Width/Height if it's a FBO */
_mesa_update_draw_buffer_bounds(ctx);
diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c 
b/src/mesa/drivers/dri/radeon/radeon_state.c
index d9a7ef6..34c8cb4 100644
--- a/src/mesa/drivers/dri/radeon/radeon_state.c
+++ b/src/mesa/drivers/dri/radeon/radeon_state.c
@@ -2094,7 +2094,7 @@ GLboolean radeonValidateState( GLcontext *ctx )
r100ContextPtr rmesa = R100_CONTEXT(ctx);
GLuint new_state = rmesa->radeon.NewGLState;
 
-   if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) {
+   if (new_state & _NEW_BUFFERS) {
  _mesa_update_framebuffer(ctx);
  /* this updates the DrawBuffer's Width/Height if it's a FBO */
  _mesa_update_draw_buffer_bounds(ctx);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (gallium-mesa-7.4): st: fix crash when using accum_mad()

2009-05-12 Thread Alan Hourihane
Module: Mesa
Branch: gallium-mesa-7.4
Commit: 699162286de9a6bf7bdae5f2fc9104fd5e8d8a34
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=699162286de9a6bf7bdae5f2fc9104fd5e8d8a34

Author: Alan Hourihane 
Date:   Tue May 12 12:40:53 2009 +0100

st: fix crash when using accum_mad()

---

 src/mesa/state_tracker/st_cb_accum.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_accum.c 
b/src/mesa/state_tracker/st_cb_accum.c
index a4e72b4..1ddc628 100644
--- a/src/mesa/state_tracker/st_cb_accum.c
+++ b/src/mesa/state_tracker/st_cb_accum.c
@@ -160,7 +160,10 @@ accum_mad(GLcontext *ctx, GLfloat scale, GLfloat bias,
   struct st_renderbuffer *acc_strb)
 {
struct pipe_screen *screen = ctx->st->pipe->screen;
-   struct pipe_surface *acc_ps = acc_strb->surface;
+//   struct pipe_surface *acc_ps = acc_strb->surface;
+   struct pipe_surface *acc_ps =  screen->get_tex_surface(screen, 
acc_strb->texture, 0, 0, 0,
+  (PIPE_BUFFER_USAGE_CPU_WRITE |
+   PIPE_BUFFER_USAGE_CPU_READ));
GLubyte *map;
 
map = screen->surface_map(screen, acc_ps, 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (gallium-mesa-7.4): st: release the surface

2009-05-12 Thread Alan Hourihane
Module: Mesa
Branch: gallium-mesa-7.4
Commit: 762aba750c664c124310e9939db20effab3e91de
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=762aba750c664c124310e9939db20effab3e91de

Author: Alan Hourihane 
Date:   Tue May 12 13:05:20 2009 +0100

st: release the surface

---

 src/mesa/state_tracker/st_cb_accum.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_accum.c 
b/src/mesa/state_tracker/st_cb_accum.c
index 1ddc628..a80a11e 100644
--- a/src/mesa/state_tracker/st_cb_accum.c
+++ b/src/mesa/state_tracker/st_cb_accum.c
@@ -160,7 +160,6 @@ accum_mad(GLcontext *ctx, GLfloat scale, GLfloat bias,
   struct st_renderbuffer *acc_strb)
 {
struct pipe_screen *screen = ctx->st->pipe->screen;
-//   struct pipe_surface *acc_ps = acc_strb->surface;
struct pipe_surface *acc_ps =  screen->get_tex_surface(screen, 
acc_strb->texture, 0, 0, 0,
   (PIPE_BUFFER_USAGE_CPU_WRITE |
PIPE_BUFFER_USAGE_CPU_READ));
@@ -188,6 +187,8 @@ accum_mad(GLcontext *ctx, GLfloat scale, GLfloat bias,
}
 
screen->surface_unmap(screen, acc_ps);
+
+   pipe_surface_reference(&acc_ps, NULL);
 }
 
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): swrast: update/restore the opt_sample_rgb/rgba_2d() functions

2009-05-12 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 6d63dec41f5399dbe5561175c1652d2ac5ffd4bb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d63dec41f5399dbe5561175c1652d2ac5ffd4bb

Author: Brian Paul 
Date:   Tue May 12 09:05:31 2009 -0600

swrast: update/restore the opt_sample_rgb/rgba_2d() functions

---

 src/mesa/swrast/s_texfilter.c |   24 +---
 1 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c
index 31bfb5c..0067d3e 100644
--- a/src/mesa/swrast/s_texfilter.c
+++ b/src/mesa/swrast/s_texfilter.c
@@ -1329,7 +1329,7 @@ static void
 opt_sample_rgb_2d(GLcontext *ctx,
   const struct gl_texture_object *tObj,
   GLuint n, const GLfloat texcoords[][4],
-  const GLfloat lambda[], GLchan rgba[][4])
+  const GLfloat lambda[], GLfloat rgba[][4])
 {
const struct gl_texture_image *img = tObj->Image[0][tObj->BaseLevel];
const GLfloat width = (GLfloat) img->Width;
@@ -1351,9 +1351,9 @@ opt_sample_rgb_2d(GLcontext *ctx,
   GLint j = IFLOOR(texcoords[k][1] * height) & rowMask;
   GLint pos = (j << shift) | i;
   GLchan *texel = ((GLchan *) img->Data) + 3*pos;
-  rgba[k][RCOMP] = texel[0];
-  rgba[k][GCOMP] = texel[1];
-  rgba[k][BCOMP] = texel[2];
+  rgba[k][RCOMP] = CHAN_TO_FLOAT(texel[0]);
+  rgba[k][GCOMP] = CHAN_TO_FLOAT(texel[1]);
+  rgba[k][BCOMP] = CHAN_TO_FLOAT(texel[2]);
}
 }
 
@@ -1370,7 +1370,7 @@ static void
 opt_sample_rgba_2d(GLcontext *ctx,
const struct gl_texture_object *tObj,
GLuint n, const GLfloat texcoords[][4],
-   const GLfloat lambda[], GLchan rgba[][4])
+   const GLfloat lambda[], GLfloat rgba[][4])
 {
const struct gl_texture_image *img = tObj->Image[0][tObj->BaseLevel];
const GLfloat width = (GLfloat) img->Width;
@@ -1392,7 +1392,10 @@ opt_sample_rgba_2d(GLcontext *ctx,
   const GLint row = IFLOOR(texcoords[i][1] * height) & rowMask;
   const GLint pos = (row << shift) | col;
   const GLchan *texel = ((GLchan *) img->Data) + (pos << 2);/* pos*4 */
-  COPY_4V(rgba[i], texel);
+  rgba[i][RCOMP] = CHAN_TO_FLOAT(texel[0]);
+  rgba[i][GCOMP] = CHAN_TO_FLOAT(texel[1]);
+  rgba[i][BCOMP] = CHAN_TO_FLOAT(texel[2]);
+  rgba[i][ACOMP] = CHAN_TO_FLOAT(texel[3]);
}
 }
 
@@ -1425,7 +1428,6 @@ sample_lambda_2d(GLcontext *ctx,
   case GL_NEAREST:
  if (repeatNoBorderPOT) {
 switch (tImg->TexFormat->MesaFormat) {
-#if 0
 case MESA_FORMAT_RGB:
opt_sample_rgb_2d(ctx, tObj, m, texcoords + minStart,
  NULL, rgba + minStart);
@@ -1434,7 +1436,6 @@ sample_lambda_2d(GLcontext *ctx,
   opt_sample_rgba_2d(ctx, tObj, m, texcoords + minStart,
   NULL, rgba + minStart);
break;
-#endif
 default:
sample_nearest_2d(ctx, tObj, m, texcoords + minStart,
  NULL, rgba + minStart );
@@ -1484,7 +1485,6 @@ sample_lambda_2d(GLcontext *ctx,
   case GL_NEAREST:
  if (repeatNoBorderPOT) {
 switch (tImg->TexFormat->MesaFormat) {
-#if 0
 case MESA_FORMAT_RGB:
opt_sample_rgb_2d(ctx, tObj, m, texcoords + magStart,
  NULL, rgba + magStart);
@@ -1493,7 +1493,6 @@ sample_lambda_2d(GLcontext *ctx,
   opt_sample_rgba_2d(ctx, tObj, m, texcoords + magStart,
   NULL, rgba + magStart);
break;
-#endif
 default:
sample_nearest_2d(ctx, tObj, m, texcoords + magStart,
  NULL, rgba + magStart );
@@ -3180,7 +3179,6 @@ _swrast_choose_texture_sample_func( GLcontext *ctx,
  }
  else {
 /* check for a few optimized cases */
-#if 0
 const struct gl_texture_image *img = t->Image[0][t->BaseLevel];
 ASSERT(t->MinFilter == GL_NEAREST);
 if (t->WrapS == GL_REPEAT &&
@@ -3197,10 +3195,6 @@ _swrast_choose_texture_sample_func( GLcontext *ctx,
  img->TexFormat->MesaFormat == MESA_FORMAT_RGBA) {
return &opt_sample_rgba_2d;
 }
-#else
-if (0)
-   ;
-#endif
 else {
return &sample_nearest_2d;
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (gallium-mesa-7.4): util: MSVC portability fixes.

2009-05-12 Thread Jose Fonseca
Module: Mesa
Branch: gallium-mesa-7.4
Commit: d686452c5ebd846a7a1061afe292244193d039c4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d686452c5ebd846a7a1061afe292244193d039c4

Author: José Fonseca 
Date:   Tue May 12 16:13:52 2009 +0100

util: MSVC portability fixes.

---

 src/gallium/auxiliary/util/SConscript |1 +
 src/gallium/auxiliary/util/u_linear.c |8 
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gallium/auxiliary/util/SConscript 
b/src/gallium/auxiliary/util/SConscript
index 5df932c..faf8c80 100644
--- a/src/gallium/auxiliary/util/SConscript
+++ b/src/gallium/auxiliary/util/SConscript
@@ -14,6 +14,7 @@ util = env.ConvenienceLibrary(
'u_hash.c',
'u_hash_table.c',
'u_keymap.c',
+   'u_linear.c',
'u_math.c',
'u_mm.c',
'u_rect.c',
diff --git a/src/gallium/auxiliary/util/u_linear.c 
b/src/gallium/auxiliary/util/u_linear.c
index a76704f..ff7645a 100644
--- a/src/gallium/auxiliary/util/u_linear.c
+++ b/src/gallium/auxiliary/util/u_linear.c
@@ -6,7 +6,7 @@ void
 pipe_linear_to_tile(size_t src_stride, void *src_ptr,
struct pipe_tile_info *t, void *dst_ptr)
 {
-   int x, y, z;
+   unsigned x, y, z;
char *ptr;
size_t bytes = t->cols * t->block.size;
 
@@ -20,7 +20,7 @@ pipe_linear_to_tile(size_t src_stride, void *src_ptr,
 ptr = (char*)src_ptr + src_stride * t->rows * y + bytes * x;
 for (z = 0; z < t->rows; z++) {
memcpy(dst_ptr, ptr, bytes);
-   dst_ptr += bytes;
+   dst_ptr = (char *)dst_ptr + bytes;
ptr += src_stride;
 }
   }
@@ -30,7 +30,7 @@ pipe_linear_to_tile(size_t src_stride, void *src_ptr,
 void pipe_linear_from_tile(struct pipe_tile_info *t, void  *src_ptr,
   size_t dst_stride, void *dst_ptr)
 {
-   int x, y, z;
+   unsigned x, y, z;
char *ptr;
size_t bytes = t->cols * t->block.size;
 
@@ -41,7 +41,7 @@ void pipe_linear_from_tile(struct pipe_tile_info *t, void  
*src_ptr,
 ptr = (char*)dst_ptr + dst_stride * t->rows * y + bytes * x;
 for (z = 0; z < t->rows; z++) {
memcpy(ptr, src_ptr, bytes);
-   src_ptr += bytes;
+   src_ptr = (char *)src_ptr + bytes;
ptr += dst_stride;
 }
   }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i915: Fix driver after HW glGenerateMipmap commit.

2009-05-12 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 0fc5fa85bf858ba2ad88995f65cc48b2dab1298d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fc5fa85bf858ba2ad88995f65cc48b2dab1298d

Author: Eric Anholt 
Date:   Tue May 12 10:03:08 2009 -0700

i915: Fix driver after HW glGenerateMipmap commit.

---

 src/mesa/drivers/dri/i915/Makefile |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/Makefile 
b/src/mesa/drivers/dri/i915/Makefile
index 9f4bd16..beaf9a4 100644
--- a/src/mesa/drivers/dri/i915/Makefile
+++ b/src/mesa/drivers/dri/i915/Makefile
@@ -19,6 +19,7 @@ DRIVER_SOURCES = \
intel_batchbuffer.c \
intel_clear.c \
intel_extensions.c \
+   intel_generatemipmap.c \
intel_mipmap_tree.c \
intel_tex_layout.c \
intel_tex_image.c \

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): intel: Map write-only buffer objects through the GTT when possible.

2009-05-12 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: aa422b262509bc0763a50f63a51a1730139ea52f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa422b262509bc0763a50f63a51a1730139ea52f

Author: Eric Anholt 
Date:   Sun May 10 09:45:43 2009 -0700

intel: Map write-only buffer objects through the GTT when possible.

This looks to be a win of a few percent in cairogears with new vbo code,
thanks to not polluting caches.

---

 src/mesa/drivers/dri/intel/intel_buffer_objects.c |   16 ++--
 src/mesa/drivers/dri/intel/intel_buffer_objects.h |1 +
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c 
b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
index f6b0d76..0db1f39 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
@@ -214,6 +214,7 @@ intel_bufferobj_map(GLcontext * ctx,
struct intel_context *intel = intel_context(ctx);
struct intel_buffer_object *intel_obj = intel_buffer_object(obj);
GLboolean read_only = (access == GL_READ_ONLY_ARB);
+   GLboolean write_only = (access == GL_WRITE_ONLY_ARB);
 
assert(intel_obj);
 
@@ -225,7 +226,14 @@ intel_bufferobj_map(GLcontext * ctx,
   return NULL;
}
 
-   dri_bo_map(intel_obj->buffer, !read_only);
+   if (write_only && intel->intelScreen->kernel_exec_fencing) {
+  drm_intel_gem_bo_map_gtt(intel_obj->buffer);
+  intel_obj->mapped_gtt = GL_TRUE;
+   } else {
+  drm_intel_bo_map(intel_obj->buffer, !read_only);
+  intel_obj->mapped_gtt = GL_FALSE;
+   }
+
obj->Pointer = intel_obj->buffer->virtual;
return obj->Pointer;
 }
@@ -243,7 +251,11 @@ intel_bufferobj_unmap(GLcontext * ctx,
assert(intel_obj);
if (intel_obj->buffer != NULL) {
   assert(obj->Pointer);
-  dri_bo_unmap(intel_obj->buffer);
+  if (intel_obj->mapped_gtt) {
+drm_intel_gem_bo_unmap_gtt(intel_obj->buffer);
+  } else {
+drm_intel_bo_unmap(intel_obj->buffer);
+  }
   obj->Pointer = NULL;
}
return GL_TRUE;
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.h 
b/src/mesa/drivers/dri/intel/intel_buffer_objects.h
index bf6dbd5..7ef7238 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.h
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.h
@@ -46,6 +46,7 @@ struct intel_buffer_object
struct intel_region *region; /* Is there a zero-copy texture
associated with this (pixel)
buffer object? */
+   GLboolean mapped_gtt;
 };
 
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): intel: Skip the DRI2 renderbuffer update when doing Viewport on an FBO.

2009-05-12 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: d4a42b0ce6455d03be70aa56aacd779be193aca4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4a42b0ce6455d03be70aa56aacd779be193aca4

Author: Eric Anholt 
Date:   Sun May 10 10:08:32 2009 -0700

intel: Skip the DRI2 renderbuffer update when doing Viewport on an FBO.

---

 src/mesa/drivers/dri/intel/intel_context.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.c 
b/src/mesa/drivers/dri/intel/intel_context.c
index 8b3e50f..7c77a1c 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -393,7 +393,7 @@ intel_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, 
GLsizei h)
 if (!driContext->driScreenPriv->dri2.enabled)
return;
 
-if (!intel->internal_viewport_call) {
+if (!intel->internal_viewport_call && ctx->DrawBuffer->Name == 0) {
intel_update_renderbuffers(driContext, driContext->driDrawablePriv);
if (driContext->driDrawablePriv != driContext->driReadablePriv)
  intel_update_renderbuffers(driContext, driContext->driReadablePriv);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): progs/trivial: update .gitignore with new binaries

2009-05-12 Thread Joakim Sindholt
Module: Mesa
Branch: master
Commit: 723bc9452fee2602fa702699141e91b87872e621
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=723bc9452fee2602fa702699141e91b87872e621

Author: Joakim Sindholt 
Date:   Tue May 12 19:38:17 2009 +0200

progs/trivial: update .gitignore with new binaries

---

 progs/trivial/.gitignore |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/progs/trivial/.gitignore b/progs/trivial/.gitignore
index 8dcb20a..dce733a 100644
--- a/progs/trivial/.gitignore
+++ b/progs/trivial/.gitignore
@@ -19,6 +19,7 @@ fs-tri
 line
 line-clip
 line-cull
+line-flat
 line-smooth
 line-stipple-wide
 line-userclip
@@ -130,6 +131,7 @@ tristrip-flat
 vbo-drawarrays
 vbo-drawelements
 vbo-drawrange
+vbo-noninterleaved
 vp-array
 vp-array-int
 vp-clip
@@ -139,6 +141,7 @@ vp-tri-cb
 vp-tri-cb-pos
 vp-tri-cb-tex
 vp-tri-imm
+vp-tri-invariant
 vp-tri-swap
 vp-tri-tex
 vp-unfilled

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r300-gallium: duplicate tokens in create_fs_state

2009-05-12 Thread Joakim Sindholt
Module: Mesa
Branch: master
Commit: 62c0c7d81a3f271b7dc7177467f9c884e89f9eee
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=62c0c7d81a3f271b7dc7177467f9c884e89f9eee

Author: Joakim Sindholt 
Date:   Tue May 12 21:41:48 2009 +0200

r300-gallium: duplicate tokens in create_fs_state

This was all phoenix64's idea. Credit goes to him

---

 src/gallium/drivers/r300/r300_state.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_state.c 
b/src/gallium/drivers/r300/r300_state.c
index 0143e22..80e11d6 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -289,6 +289,7 @@ static void* r300_create_fs_state(struct pipe_context* pipe,
 
 /* Copy state directly into shader. */
 fs->state = *shader;
+fs->state.tokens = tgsi_dup_tokens(shader->tokens);
 
 tgsi_scan_shader(shader->tokens, &fs->info);
 
@@ -317,6 +318,8 @@ static void r300_bind_fs_state(struct pipe_context* pipe, 
void* shader)
 /* Delete fragment shader state. */
 static void r300_delete_fs_state(struct pipe_context* pipe, void* shader)
 {
+struct r3xx_fragment_shader* fs = (struct r3xx_fragment_shader*)shader
+FREE(fs->state.tokens);
 FREE(shader);
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r300-gallium: add missing semicolon

2009-05-12 Thread Joakim Sindholt
Module: Mesa
Branch: master
Commit: 167a6b08048573079c7d5e5f36da3de69d487b6f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=167a6b08048573079c7d5e5f36da3de69d487b6f

Author: Joakim Sindholt 
Date:   Tue May 12 22:01:59 2009 +0200

r300-gallium: add missing semicolon

Yeah, that was stupid

---

 src/gallium/drivers/r300/r300_state.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_state.c 
b/src/gallium/drivers/r300/r300_state.c
index 80e11d6..2118f77 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -318,7 +318,7 @@ static void r300_bind_fs_state(struct pipe_context* pipe, 
void* shader)
 /* Delete fragment shader state. */
 static void r300_delete_fs_state(struct pipe_context* pipe, void* shader)
 {
-struct r3xx_fragment_shader* fs = (struct r3xx_fragment_shader*)shader
+struct r3xx_fragment_shader* fs = (struct r3xx_fragment_shader*)shader;
 FREE(fs->state.tokens);
 FREE(shader);
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: comment

2009-05-12 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 4d244fb8999440a1876281574eb045f0a5895e9e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d244fb8999440a1876281574eb045f0a5895e9e

Author: Brian Paul 
Date:   Tue May 12 09:16:27 2009 -0600

i965: comment

---

 src/mesa/drivers/dri/i965/brw_wm_iz.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_iz.c 
b/src/mesa/drivers/dri/i965/brw_wm_iz.c
index bd60ac9..8fd067a 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_iz.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_iz.c
@@ -116,6 +116,10 @@ const struct {
  { C, 0, 1, 1, 1 } 
 };
 
+/**
+ * \param line_aa  AA_NEVER, AA_ALWAYS or AA_SOMETIMES
+ * \param lookup  bitmask of IZ_* flags
+ */
 void brw_wm_lookup_iz( GLuint line_aa,
   GLuint lookup,
   struct brw_wm_prog_key *key )

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: increase BRW_EU_MAX_INSN

2009-05-12 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 5590798f6d338e93ae6bee82ba5224568237ec18
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5590798f6d338e93ae6bee82ba5224568237ec18

Author: Brian Paul 
Date:   Tue May 12 14:07:51 2009 -0600

i965: increase BRW_EU_MAX_INSN

---

 src/mesa/drivers/dri/i965/brw_eu.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_eu.h 
b/src/mesa/drivers/dri/i965/brw_eu.h
index 62c98bd..bc7756c 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.h
+++ b/src/mesa/drivers/dri/i965/brw_eu.h
@@ -97,7 +97,7 @@ struct brw_glsl_call;
 
 
 #define BRW_EU_MAX_INSN_STACK 5
-#define BRW_EU_MAX_INSN 4000
+#define BRW_EU_MAX_INSN 1
 
 struct brw_compile {
struct brw_instruction store[BRW_EU_MAX_INSN];

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: enable additional code in emit_fb_write()

2009-05-12 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 10c4a10b979bddd099287dec5b69243c2ade8ade
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=10c4a10b979bddd099287dec5b69243c2ade8ade

Author: Brian Paul 
Date:   Tue May 12 14:08:52 2009 -0600

i965: enable additional code in emit_fb_write()

Not 100% sure this is right, but the invalid assertion is fixed...

---

 src/mesa/drivers/dri/i965/brw_wm_glsl.c |   21 ++---
 1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_glsl.c 
b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
index 2b2df73..23caf59 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_glsl.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
@@ -814,27 +814,26 @@ static void emit_fb_write(struct brw_wm_compile *c,
 }
 
 if (c->key.dest_depth_reg) {
-GLuint comp = c->key.dest_depth_reg / 2;
-GLuint off = c->key.dest_depth_reg % 2;
+const GLuint comp = c->key.dest_depth_reg / 2;
+const GLuint off = c->key.dest_depth_reg % 2;
 
-assert(comp == 1);
-assert(off == 0);
-#if 0
-/* XXX do we need this code?   comp always 1, off always 0, it seems */
 if (off != 0) {
+/* XXX this code needs review/testing */
+struct brw_reg arg1_0 = get_src_reg(c, inst, 1, comp);
+struct brw_reg arg1_1 = get_src_reg(c, inst, 1, comp+1);
+
 brw_push_insn_state(p);
 brw_set_compression_control(p, BRW_COMPRESSION_NONE);
 
-brw_MOV(p, brw_message_reg(nr), offset(arg1[comp],1));
+brw_MOV(p, brw_message_reg(nr), offset(arg1_0, 1));
 /* 2nd half? */
-brw_MOV(p, brw_message_reg(nr+1), arg1[comp+1]);
+brw_MOV(p, brw_message_reg(nr+1), arg1_1);
 brw_pop_insn_state(p);
 }
 else
-#endif
 {
-   struct brw_reg src =  get_src_reg(c, inst, 1, 1);
-   brw_MOV(p, brw_message_reg(nr), src);
+struct brw_reg src =  get_src_reg(c, inst, 1, 1);
+brw_MOV(p, brw_message_reg(nr), src);
 }
 nr += 2;
}

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (gallium-0.1): util: Detect MALLOC(0).

2009-05-12 Thread Jose Fonseca
Module: Mesa
Branch: gallium-0.1
Commit: 3022b9805fd67881885558976a585638e63bce04
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3022b9805fd67881885558976a585638e63bce04

Author: José Fonseca 
Date:   Tue May 12 23:13:35 2009 +0100

util: Detect MALLOC(0).

---

 src/gallium/auxiliary/util/p_debug_mem.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/util/p_debug_mem.c 
b/src/gallium/auxiliary/util/p_debug_mem.c
index 250fd60..6aff62e 100644
--- a/src/gallium/auxiliary/util/p_debug_mem.c
+++ b/src/gallium/auxiliary/util/p_debug_mem.c
@@ -121,6 +121,8 @@ debug_malloc(const char *file, unsigned line, const char 
*function,
struct debug_memory_header *hdr;
struct debug_memory_footer *ftr;

+   assert(size);
+   
hdr = real_malloc(sizeof(*hdr) + size + sizeof(*ftr));
if(!hdr) {
   debug_printf("%s:%u:%s: out of memory when trying to allocate %lu 
bytes\n",

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit