struct draw_vertex_shader *vs = draw->vs.vertex_shader;
struct draw_geometry_shader *gs = draw->gs.geometry_shader;
const unsigned out_prim = gs ? gs->output_primitive :
- u_assembled_primitive(in_prim);
+ u_assembled_prim(in_prim);
/* Add one to num_outputs because the pipeline occasionally tags on
* an additional texcoord, eg for AA lines.
draw_pt_post_vs_prepare( fpme->post_vs,
- draw->clip_xy,
- draw->clip_z,
- draw->clip_user,
+ draw->clip_xy,
+ draw->clip_z,
+ draw->clip_user,
draw->guard_band_xy,
draw->identity_viewport,
draw->rasterizer->clip_halfz,
assert(0);
return;
}
+
if (draw->collect_statistics) {
draw->statistics.ia_vertices += fetch_info->count;
draw->statistics.ia_primitives +=
- u_decomposed_prims_for_vertices(prim_info->prim, fetch_info->count);
+ u_decomposed_prims_for_vertices(prim_info->prim, prim_info->count);
draw->statistics.vs_invocations += fetch_info->count;
}
}
}
}
+ if (prim_info->count == 0) {
+ debug_printf("GS/IA didn't emit any vertices!\n");
+
+ FREE(vert_info->verts);
+ if (free_prim_info) {
+ FREE(prim_info->primitive_lengths);
+ }
+ return;
+ }
/* stream output needs to be done before clipping */
draw_pt_so_emit( fpme->so_emit, vert_info, prim_info );