[Mesa-dev] [PATCH] st/fbo: use pipe_surface_release instead of pipe_surface_reference

Roland Scheidegger sroland at vmware.com
Wed Oct 14 12:33:28 PDT 2015


Am 14.10.2015 um 18:03 schrieb Krzysztof A. Sobiecki:
> From: Krzysztof Sobiecki <sobkas at gmail.com>
> 
> pipe_surface_reference have problems with deleted contexts,
> so use of pipe_surface_release might be more appropriate.
> 
> Fixes Wasteland 2 Director's Cut crash on start.
> ---
>  src/mesa/state_tracker/st_cb_fbo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
> index ff703fa..2a2eb09 100644
> --- a/src/mesa/state_tracker/st_cb_fbo.c
> +++ b/src/mesa/state_tracker/st_cb_fbo.c
> @@ -456,7 +456,7 @@ st_update_renderbuffer_surface(struct st_context *st,
>        surf_tmpl.u.tex.first_layer = first_layer;
>        surf_tmpl.u.tex.last_layer = last_layer;
>  
> -      pipe_surface_reference(&strb->surface, NULL);
> +      pipe_surface_release(pipe, &strb->surface);
>  
>        strb->surface = pipe->create_surface(pipe, resource, &surf_tmpl);
>     }
> 

Sounds to me like the surface gets deleted in another context - since
surfaces are per context this is illegal.
So, in other words, you're exchanging one bug for another. Albeit this
might be preferable for now...

Roland



More information about the mesa-dev mailing list