diff --git a/.pick_status.json b/.pick_status.json index 870a36ce8fe..d90867c10cd 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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" }, 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),