diff options
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt_emit.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_pt_emit.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_emit.c b/src/gallium/auxiliary/draw/draw_pt_emit.c index 942ddc4d7bc..b3d3546402d 100644 --- a/src/gallium/auxiliary/draw/draw_pt_emit.c +++ b/src/gallium/auxiliary/draw/draw_pt_emit.c @@ -33,6 +33,7 @@ #include "draw/draw_pt.h" #include "translate/translate.h" #include "translate/translate_cache.h" +#include "util/u_prim.h" struct pt_emit { struct draw_context *draw; @@ -179,6 +180,12 @@ draw_pt_emit(struct pt_emit *emit, i < prim_info->primitive_count; start += prim_info->primitive_lengths[i], i++) { + if (draw->collect_statistics) { + draw->statistics.c_invocations += + u_decomposed_prims_for_vertices(prim_info->prim, + prim_info->primitive_lengths[i]); + } + render->draw_elements(render, elts + start, prim_info->primitive_lengths[i]); @@ -252,11 +259,17 @@ draw_pt_emit_linear(struct pt_emit *emit, i < prim_info->primitive_count; start += prim_info->primitive_lengths[i], i++) { + if (draw->collect_statistics) { + draw->statistics.c_invocations += + u_decomposed_prims_for_vertices(prim_info->prim, + prim_info->primitive_lengths[i]); + } + render->draw_arrays(render, start, prim_info->primitive_lengths[i]); } - + render->release_vertices(render); return; |