[Mesa-dev] [PATCH] softpipe: fix softpipe_delete_fs_state() failed assertion

Jose Fonseca jfonseca at vmware.com
Fri Aug 10 12:10:13 PDT 2012


Looks good to me.

Jose

----- Original Message -----
> The var!=softpipe->fs_variant assertion was failing because we
> weren't
> nulling the softpipe->fs_variant pointer when binding a new shader.
> Since softpipe->fs_variant depends on the current fs, it's of no use
> when a new FS is bound.
> 
> Fixes http://bugs.freedesktop.org/show_bug.cgi?id=53318
> 
> Note: This is a candidate for the 8.0 branch.
> ---
>  src/gallium/drivers/softpipe/sp_state_shader.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gallium/drivers/softpipe/sp_state_shader.c
> b/src/gallium/drivers/softpipe/sp_state_shader.c
> index 910d4ba..1e64431 100644
> --- a/src/gallium/drivers/softpipe/sp_state_shader.c
> +++ b/src/gallium/drivers/softpipe/sp_state_shader.c
> @@ -158,8 +158,10 @@ softpipe_bind_fs_state(struct pipe_context
> *pipe, void *fs)
>  
>     softpipe->fs = fs;
>  
> -   if (fs == NULL)
> -      softpipe->fs_variant = NULL;
> +   /* This depends on the current fragment shader and must always be
> +    * re-validated before use.
> +    */
> +   softpipe->fs_variant = NULL;
>  
>     if (state)
>        draw_bind_fragment_shader(softpipe->draw,
> --
> 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