diff options
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_setup_point.c')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_point.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_point.c b/src/gallium/drivers/llvmpipe/lp_setup_point.c index 8cb6b83f916..2192789bd4c 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup_point.c +++ b/src/gallium/drivers/llvmpipe/lp_setup_point.c @@ -458,8 +458,7 @@ try_setup_point( struct lp_setup_context *setup, LP_COUNT(nr_tris); - if (lp_context->active_statistics_queries && - !llvmpipe_rasterization_disabled(lp_context)) { + if (lp_context->active_statistics_queries) { lp_context->pipeline_statistics.c_primitives++; } @@ -518,24 +517,33 @@ try_setup_point( struct lp_setup_context *setup, static void +lp_setup_point_discard(struct lp_setup_context *setup, + const float (*v0)[4]) +{ +} + +static void lp_setup_point(struct lp_setup_context *setup, const float (*v0)[4]) { - if (!try_setup_point( setup, v0 )) - { + if (!try_setup_point(setup, v0)) { if (!lp_setup_flush_and_restart(setup)) return; - if (!try_setup_point( setup, v0 )) + if (!try_setup_point(setup, v0)) return; } } void -lp_setup_choose_point( struct lp_setup_context *setup ) +lp_setup_choose_point(struct lp_setup_context *setup) { - setup->point = lp_setup_point; + if (setup->rasterizer_discard) { + setup->point = lp_setup_point_discard; + } else { + setup->point = lp_setup_point; + } } |