aux/draw: move draw param sanitization to end of function

this triggers more work if sanitizing no-ops the draw, but the rest of the
time it won't matter

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9844>
This commit is contained in:
Mike Blumenkrantz 2021-03-25 15:08:18 -04:00 committed by Marge Bot
parent 33f832e079
commit 8b9d454cef
1 changed files with 16 additions and 15 deletions

View File

@ -63,21 +63,6 @@ draw_pt_arrays(struct draw_context *draw,
struct draw_pt_middle_end *middle = NULL;
unsigned opt = 0;
/* Sanitize primitive length:
*/
{
unsigned first, incr;
if (prim == PIPE_PRIM_PATCHES) {
first = draw->pt.vertices_per_patch;
incr = draw->pt.vertices_per_patch;
} else
draw_pt_split_prim(prim, &first, &incr);
count = draw_pt_trim_count(count, first, incr);
if (count < first)
return TRUE;
}
if (!draw->force_passthrough) {
unsigned out_prim = prim;
@ -155,6 +140,22 @@ draw_pt_arrays(struct draw_context *draw,
draw->pt.rebind_parameters = FALSE;
}
/* Sanitize primitive length:
*/
{
unsigned first, incr;
if (prim == PIPE_PRIM_PATCHES) {
first = draw->pt.vertices_per_patch;
incr = draw->pt.vertices_per_patch;
} else
draw_pt_split_prim(prim, &first, &incr);
count = draw_pt_trim_count(count, first, incr);
if (count < first)
return TRUE;
}
frontend->run( frontend, start, count );
return TRUE;