From: Zack Rusin Date: Thu, 19 Sep 2013 17:37:03 +0000 (-0400) Subject: llvmpipe: count c_primitives before discarding null prims X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=60c448faea54a56047202204c486b8d399429909;p=mesa.git llvmpipe: count c_primitives before discarding null prims 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 --- 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) {