diff options
author | Zack Rusin <[email protected]> | 2013-09-19 13:37:03 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-09-25 19:41:02 -0400 |
commit | 60c448faea54a56047202204c486b8d399429909 (patch) | |
tree | 65aefe4db18a4addb6fccfc744be46be9f85131d /src/gallium/drivers/llvmpipe | |
parent | 1291e833e70f79bc7fb53846c25de7309075ea10 (diff) |
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 <[email protected]>
Reviewed-by: José Fonseca <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium/drivers/llvmpipe')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_tri.c | 13 |
1 files 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) { |