From 67b90113a60b1f9a59f6348c783d889bd63b7d68 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Fri, 8 Aug 2025 20:14:31 +0200 Subject: [PATCH] llvmpipe: Fix wrong GS invocation count when using instanced GS Each invocation obviously counts toward the total GS invocation count. Reviewed-by: Brian Paul Part-of: --- src/gallium/auxiliary/draw/draw_gs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c index 20feeb5a7cc..85d38465819 100644 --- a/src/gallium/auxiliary/draw/draw_gs.c +++ b/src/gallium/auxiliary/draw/draw_gs.c @@ -71,6 +71,7 @@ draw_gs_get_input_index(int semantic, int index, static inline bool draw_gs_should_flush(struct draw_geometry_shader *shader) { + /* TODO: should not have to switch to scalar mode for instanced GS */ return (shader->fetched_prim_count == shader->vector_length || shader->num_invocations > 1); } @@ -421,7 +422,7 @@ gs_flush(struct draw_geometry_shader *shader) unsigned input_primitives = shader->fetched_prim_count; if (shader->draw->collect_statistics) { - shader->draw->statistics.gs_invocations += input_primitives; + shader->draw->statistics.gs_invocations += input_primitives * shader->num_invocations; } assert(input_primitives > 0 &&