[Mesa-dev] [PATCH] llvmpipe: fix crash when not all attachments are populated in a fb
Jose Fonseca
jfonseca at vmware.com
Fri May 30 09:38:00 PDT 2014
----- Original Message -----
> From: Roland Scheidegger <sroland at vmware.com>
>
> Framebuffers can have NULL attachments since a while. llvmpipe handled
> that properly for lp_rast_shade_quads_mask but it seems the change didn't
> make it to lp_rast_shade_tile.
> This fixes piglit fbo-drawbuffers-none test (though I need to increase
> the FB_SIZE from 32 to 256 so the tris cover some tiles fully).
> https://bugs.freedesktop.org/show_bug.cgi?id=79421
>
> Cc: "10.1 10.2" <mesa-stable at lists.freedesktop.org>
> ---
> src/gallium/drivers/llvmpipe/lp_rast.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c
> b/src/gallium/drivers/llvmpipe/lp_rast.c
> index d50ee48..f7c5b03 100644
> --- a/src/gallium/drivers/llvmpipe/lp_rast.c
> +++ b/src/gallium/drivers/llvmpipe/lp_rast.c
> @@ -312,9 +312,15 @@ lp_rast_shade_tile(struct lp_rasterizer_task *task,
>
> /* color buffer */
> for (i = 0; i < scene->fb.nr_cbufs; i++){
> - stride[i] = scene->cbufs[i].stride;
> - color[i] = lp_rast_get_unswizzled_color_block_pointer(task, i,
> tile_x + x,
> - tile_y +
> y, inputs->layer);
> + if (scene->fb.cbufs[i]) {
> + stride[i] = scene->cbufs[i].stride;
> + color[i] = lp_rast_get_unswizzled_color_block_pointer(task,
> i, tile_x + x,
> + tile_y
> + y, inputs->layer);
> + }
> + else {
> + stride[i] = 0;
> + color[i] = NULL;
> + }
> }
>
> /* depth buffer */
> --
> 1.9.1
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
More information about the mesa-dev
mailing list