draw: fix segfaults with aaline and aapoint stages disabled
authorMarek Olšák <marek.olsak@amd.com>
Tue, 27 Aug 2013 19:57:41 +0000 (21:57 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 30 Aug 2013 23:34:29 +0000 (01:34 +0200)
There are drivers not using these optional stages.

Broken by a3ae5dc7dd5c2f8893f86a920247e690e550ebd4.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/draw/draw_context.c

index d1fac0c6c1d8d39782eb9eeaf11bcaed1a90e788..641dd82ee28af51ef9c711a52a8ac70c1c42bd1d 100644 (file)
@@ -564,8 +564,10 @@ draw_prepare_shader_outputs(struct draw_context *draw)
    draw_remove_extra_vertex_attribs(draw);
    draw_prim_assembler_prepare_outputs(draw->ia);
    draw_unfilled_prepare_outputs(draw, draw->pipeline.unfilled);
-   draw_aapoint_prepare_outputs(draw, draw->pipeline.aapoint);
-   draw_aaline_prepare_outputs(draw, draw->pipeline.aaline);
+   if (draw->pipeline.aapoint)
+      draw_aapoint_prepare_outputs(draw, draw->pipeline.aapoint);
+   if (draw->pipeline.aaline)
+      draw_aaline_prepare_outputs(draw, draw->pipeline.aaline);
 }
 
 /**