[Mesa-dev] [PATCH] xlib: use _mesa_generate_mipmap() for mipmap generation, not meta

Jose Fonseca jfonseca at vmware.com
Tue Jan 29 03:58:01 PST 2013


Sounds good to me.

Jose

----- Original Message -----
> The swrast fragment program interpreter has trouble computing the
> right texture LOD because it doesn't have easy access to input
> derivatives.  This causes the GLSL-based meta generate mipmap code
> to fetch texels from the wrong mipmap level.
> 
> One possible fix would be to set the GL_TEXTURE_MIN/MAX_LOD
> parameters
> to limit sampling from the right level.  But let's just use the
> _mesa_generate_mipmap() fallback since it's a lot faster than using
> the fragment shader interpreter.
> 
> Fixes http://bugs.freedesktop.org/show_bug.cgi?id=54240
> 
> Note: This is a candidate for the 9.0 branch.
> ---
>  src/mesa/drivers/x11/xm_dd.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/src/mesa/drivers/x11/xm_dd.c
> b/src/mesa/drivers/x11/xm_dd.c
> index cdf06aa..cfbdeb5 100644
> --- a/src/mesa/drivers/x11/xm_dd.c
> +++ b/src/mesa/drivers/x11/xm_dd.c
> @@ -34,6 +34,7 @@
>  #include "main/colormac.h"
>  #include "main/fbobject.h"
>  #include "main/macros.h"
> +#include "main/mipmap.h"
>  #include "main/image.h"
>  #include "main/imports.h"
>  #include "main/mtypes.h"
> @@ -869,6 +870,8 @@ xmesa_init_driver_functions( XMesaVisual
> xmvisual,
>     driver->MapRenderbuffer = xmesa_MapRenderbuffer;
>     driver->UnmapRenderbuffer = xmesa_UnmapRenderbuffer;
>  
> +   driver->GenerateMipmap = _mesa_generate_mipmap;
> +
>  #if ENABLE_EXT_timer_query
>     driver->NewQueryObject = xmesa_new_query_object;
>     driver->BeginQuery = xmesa_begin_query;
> --
> 1.7.3.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list