draw: Work around an invalid write.
authorChia-I Wu <olv@lunarg.com>
Fri, 25 Jun 2010 10:32:41 +0000 (18:32 +0800)
committerChia-I Wu <olv@lunarg.com>
Fri, 25 Jun 2010 15:17:18 +0000 (23:17 +0800)
SSE vertex shader does not seem to honor the execution mask.  Pad the
output array as a workaround.

src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c

index 24c538b099c9750ba90b8e328430f04ec729da74..121dfc414a474330808f46e71b135eba6173d5f4 100644 (file)
@@ -184,7 +184,7 @@ static void draw_vertex_shader_run(struct draw_vertex_shader *vshader,
    output_verts->count = input_verts->count;
    output_verts->verts =
       (struct vertex_header *)MALLOC(output_verts->vertex_size *
-                                     output_verts->count);
+                                     align(output_verts->count, 4));
 
    vshader->run_linear(vshader,
                        (const float (*)[4])input_verts->verts->data,