draw: emit so primitives before ending empty pipeline.

There may be non-stream 0 emitted primitives that have to be processed.

Fixes:
KHR-GL42.transform_feedback_overflow_query_ARB.multiple-streams-one-buffer-per-stream
KHR-GL42.transform_feedback_overflow_query_ARB.multiple-streams-multiple-buffers-per-stream

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
This commit is contained in:
Dave Airlie 2020-06-19 14:37:19 +10:00
parent 59c8fff7e4
commit 7d82bb0e41
1 changed files with 4 additions and 3 deletions

View File

@ -722,6 +722,10 @@ llvm_pipeline_generic(struct draw_pt_middle_end *middle,
}
}
}
/* stream output needs to be done before clipping */
draw_pt_so_emit( fpme->so_emit, gshader ? gshader->num_vertex_streams : 1, vert_info, prim_info );
if (prim_info->count == 0) {
debug_printf("GS/IA didn't emit any vertices!\n");
@ -733,9 +737,6 @@ llvm_pipeline_generic(struct draw_pt_middle_end *middle,
return;
}
/* stream output needs to be done before clipping */
draw_pt_so_emit( fpme->so_emit, gshader ? gshader->num_vertex_streams : 1, vert_info, prim_info );
draw_stats_clipper_primitives(draw, prim_info);
/*