mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
draw: don't crash if GS doesn't emit anything
Technically it's legal for geometry shader to not emit any vertices. It's silly, but perfectly legal, so lets make draw stop crashing if it happens. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
e56095dc2e
commit
d48054ff22
2 changed files with 18 additions and 0 deletions
|
|
@ -299,6 +299,15 @@ static void fetch_pipeline_generic( struct draw_pt_middle_end *middle,
|
|||
}
|
||||
}
|
||||
}
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -397,6 +397,15 @@ llvm_pipeline_generic( struct draw_pt_middle_end *middle,
|
|||
}
|
||||
}
|
||||
}
|
||||
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 );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue