aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2020-06-19 14:37:19 +1000
committerDave Airlie <[email protected]>2020-07-08 06:06:04 +1000
commit7d82bb0e41dbfb706d86c030779de31316f8cd7e (patch)
treefd7cb64432b68b1fb590655402503a307ad904bb
parent59c8fff7e4798731ce8672f2de929170ff6c805f (diff)
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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5555>
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
index d403e81c224..d9a5862e442 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
@@ -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);
/*