[Mesa-dev] [PATCH] st/mesa: Handle st_framebuffer_create returning NULL

Nicolai Hähnle nhaehnle at gmail.com
Thu Jul 13 10:54:50 UTC 2017


On 13.07.2017 09:21, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
> 
> st_framebuffer_create returns NULL if stfbi == NULL or
> st_framebuffer_add_renderbuffer returns false for the colour buffer.
> 
> Fixes Xorg crashing on startup using glamor on radeonsi.
> 
> Fixes: 147d7fb772a7 ("st/mesa: add a winsys buffers list in st_context")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101775
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>


> ---
>   src/mesa/state_tracker/st_manager.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
> index de16a3a2cf..348b456c4d 100644
> --- a/src/mesa/state_tracker/st_manager.c
> +++ b/src/mesa/state_tracker/st_manager.c
> @@ -802,10 +802,12 @@ st_framebuffer_reuse_or_create(struct st_context *st,
>      if (stfb == NULL) {
>         cur = st_framebuffer_create(st, stfbi);
>   
> -      /* add to the context's winsys buffers list */
> -      LIST_ADD(&cur->head, &st->winsys_buffers);
> +      if (cur) {
> +         /* add to the context's winsys buffers list */
> +         LIST_ADD(&cur->head, &st->winsys_buffers);
>   
> -      st_framebuffer_reference(&stfb, cur);
> +         st_framebuffer_reference(&stfb, cur);
> +      }
>      }
>   
>      return stfb;
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list