From ce07c52b825903e698b63bc608d7ddb8cb578cd6 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 13 Nov 2020 17:15:53 +1000 Subject: [PATCH] draw: fix tess eval pipeline statistics. The number of invocations wasn't getting incremented correctly. Fixes: 202bc38ce9e3 ("draw: collect tessellation invocations statistics") Reviewed-by: Roland Scheidegger Part-of: --- src/gallium/auxiliary/draw/draw_tess.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_tess.c b/src/gallium/auxiliary/draw/draw_tess.c index 07d5ef960f7..a0fa3e8b51d 100644 --- a/src/gallium/auxiliary/draw/draw_tess.c +++ b/src/gallium/auxiliary/draw/draw_tess.c @@ -350,9 +350,6 @@ int draw_tess_eval_shader_run(struct draw_tess_eval_shader *shader, shader->input_vertex_stride = input_stride; shader->input_info = input_info; - if (shader->draw->collect_statistics) { - shader->draw->statistics.ds_invocations += input_prim->primitive_count; - } #ifdef LLVM_AVAILABLE struct pipe_tessellation_factors factors; struct pipe_tessellator_data data = { 0 }; @@ -394,6 +391,10 @@ int draw_tess_eval_shader_run(struct draw_tess_eval_shader *shader, output += vert_start * vertex_size; llvm_tes_run(shader, i, num_input_vertices_per_patch, &data, &factors, (struct vertex_header *)output); + if (shader->draw->collect_statistics) { + shader->draw->statistics.ds_invocations += data.num_domain_points; + } + uint32_t prim_len = u_prim_vertex_count(output_prims->prim)->min; output_prims->primitive_count += data.num_indices / prim_len; output_prims->primitive_lengths = REALLOC(output_prims->primitive_lengths, prim_start * sizeof(uint32_t),