Mesa (mesa_7_5_branch): glXChooseVisual: Only consider fbconfig if we can get the corresponding visual.
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
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
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
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()
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
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
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.
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.
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.
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.
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
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
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
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
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
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()
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).
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