From 60c448faea54a56047202204c486b8d399429909 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 19 Sep 2013 13:37:03 -0400 Subject: [PATCH] llvmpipe: count c_primitives before discarding null prims MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We need to count the clipper primitives before the rasterizer discards one it considers to be null. Signed-off-by: Zack Rusin Reviewed-by: José Fonseca Reviewed-by: Roland Scheidegger --- src/gallium/drivers/llvmpipe/lp_setup_tri.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_setup_tri.c b/src/gallium/drivers/llvmpipe/lp_setup_tri.c index da9967ad3f1..051ffa09860 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup_tri.c +++ b/src/gallium/drivers/llvmpipe/lp_setup_tri.c @@ -252,7 +252,6 @@ do_triangle_ccw(struct lp_setup_context *setup, const float (*v2)[4], boolean frontfacing ) { - struct llvmpipe_context *lp_context = (struct llvmpipe_context *)setup->pipe; struct lp_scene *scene = setup->scene; const struct lp_setup_variant_key *key = &setup->setup.variant->key; struct lp_rast_triangle *tri; @@ -340,11 +339,6 @@ do_triangle_ccw(struct lp_setup_context *setup, LP_COUNT(nr_tris); - if (lp_context->active_statistics_queries && - !llvmpipe_rasterization_disabled(lp_context)) { - lp_context->pipeline_statistics.c_primitives++; - } - /* Setup parameter interpolants: */ setup->setup.variant->jit_function( v0, @@ -803,7 +797,6 @@ static void retry_triangle_ccw( struct lp_setup_context *setup, } } - /** * Calculate fixed position data for a triangle */ @@ -1102,11 +1095,17 @@ static void triangle_both( struct lp_setup_context *setup, const float (*v2)[4] ) { struct fixed_position position; + struct llvmpipe_context *lp_context = (struct llvmpipe_context *)setup->pipe; if (setup->subdivide_large_triangles && check_subdivide_triangle(setup, v0, v1, v2, triangle_both)) return; + if (lp_context->active_statistics_queries && + !llvmpipe_rasterization_disabled(lp_context)) { + lp_context->pipeline_statistics.c_primitives++; + } + calc_fixed_position(setup, &position, v0, v1, v2); if (0) { -- 2.30.2