From 4b6972366aa62678c46af972ec0f9467912d4002 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Fri, 5 Jan 2024 10:50:24 +0100 Subject: [PATCH] panfrost: pass reduced primitive type instead of points We're soon going to have to check for other primitive-types, like lines. So let's pass the reduced primitive type here instead. Reviewed-by: Boris Brezillon Part-of: --- src/gallium/drivers/panfrost/pan_cmdstream.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index a2feed16efa..920efee4983 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -2885,7 +2885,8 @@ panfrost_direct_draw(struct panfrost_batch *batch, } static bool -panfrost_compatible_batch_state(struct panfrost_batch *batch, bool points) +panfrost_compatible_batch_state(struct panfrost_batch *batch, + enum mesa_prim reduced_prim) { /* Only applies on Valhall */ if (PAN_ARCH < 9) @@ -2900,7 +2901,7 @@ panfrost_compatible_batch_state(struct panfrost_batch *batch, bool points) /* gl_PointCoord orientation only matters when drawing points, but * provoking vertex doesn't matter for points. */ - if (points) + if (reduced_prim == MESA_PRIM_POINTS) return pan_tristate_set(&batch->sprite_coord_origin, coord); else return pan_tristate_set(&batch->first_provoking_vertex, first); @@ -2941,12 +2942,12 @@ panfrost_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info, if (unlikely(batch->draw_count > 10000)) batch = panfrost_get_fresh_batch_for_fbo(ctx, "Too many draws"); - bool points = (info->mode == MESA_PRIM_POINTS); + enum mesa_prim reduced_prim = u_reduced_prim(info->mode); - if (unlikely(!panfrost_compatible_batch_state(batch, points))) { + if (unlikely(!panfrost_compatible_batch_state(batch, reduced_prim))) { batch = panfrost_get_fresh_batch_for_fbo(ctx, "State change"); - ASSERTED bool succ = panfrost_compatible_batch_state(batch, points); + ASSERTED bool succ = panfrost_compatible_batch_state(batch, reduced_prim); assert(succ && "must be able to set state for a fresh batch"); }