draw: fix tess eval pipeline statistics.

The number of invocations wasn't getting incremented correctly.

Fixes: 202bc38ce9 ("draw: collect tessellation invocations statistics")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7597>
(cherry picked from commit ce07c52b82)
This commit is contained in:
Dave Airlie 2020-11-13 17:15:53 +10:00 committed by Dylan Baker
parent e5327be5ac
commit ee3ed20f3d
2 changed files with 5 additions and 4 deletions

View file

@ -859,7 +859,7 @@
"description": "draw: fix tess eval pipeline statistics.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "202bc38ce9e3e52cea1448f22882d17c7e5e9a90"
},

View file

@ -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),