From 7089a4c59f20311f841a66e927cb06106ae4e70b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 19 Oct 2022 18:21:47 -0400 Subject: [PATCH] st/mesa: move setting draw_needs_minmax_index into st_update_array_templ This removes several parameters from setup_array that become unused. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/mesa/state_tracker/st_atom.h | 3 +-- src/mesa/state_tracker/st_atom_array.cpp | 38 ++++++++++++------------------- src/mesa/state_tracker/st_draw_feedback.c | 4 +--- 3 files changed, 16 insertions(+), 29 deletions(-) diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h index 010f2e5..58874bd 100644 --- a/src/mesa/state_tracker/st_atom.h +++ b/src/mesa/state_tracker/st_atom.h @@ -69,8 +69,7 @@ st_setup_arrays(struct st_context *st, const struct gl_vertex_program *vp, const struct st_common_variant *vp_variant, struct cso_velems_state *velements, - struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers, - bool *has_user_vertex_buffers); + struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers); void st_setup_current_user(struct st_context *st, diff --git a/src/mesa/state_tracker/st_atom_array.cpp b/src/mesa/state_tracker/st_atom_array.cpp index 351f40e..8cf91b7 100644 --- a/src/mesa/state_tracker/st_atom_array.cpp +++ b/src/mesa/state_tracker/st_atom_array.cpp @@ -79,22 +79,14 @@ setup_arrays(struct st_context *st, const struct gl_vertex_array_object *vao, const GLbitfield dual_slot_inputs, const GLbitfield inputs_read, - const GLbitfield nonzero_divisor_attribs, const GLbitfield enabled_attribs, - const GLbitfield enabled_user_attribs, struct cso_velems_state *velements, - struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers, - bool *has_user_vertex_buffers) + struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers) { struct gl_context *ctx = st->ctx; /* Process attribute array data. */ GLbitfield mask = inputs_read & enabled_attribs; - GLbitfield userbuf_attribs = inputs_read & enabled_user_attribs; - - *has_user_vertex_buffers = userbuf_attribs != 0; - st->draw_needs_minmax_index = - (userbuf_attribs & ~nonzero_divisor_attribs) != 0; if (vao->IsDynamic) { while (mask) { @@ -183,16 +175,14 @@ st_setup_arrays(struct st_context *st, const struct gl_vertex_program *vp, const struct st_common_variant *vp_variant, struct cso_velems_state *velements, - struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers, - bool *has_user_vertex_buffers) + struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers) { struct gl_context *ctx = st->ctx; setup_arrays (st, ctx->Array._DrawVAO, vp->Base.DualSlotInputs, - vp_variant->vert_attrib_mask, _mesa_draw_nonzero_divisor_bits(ctx), - _mesa_draw_array_bits(ctx), _mesa_draw_user_array_bits(ctx), - velements, vbuffer, num_vbuffers, has_user_vertex_buffers); + vp_variant->vert_attrib_mask, _mesa_draw_array_bits(ctx), + velements, vbuffer, num_vbuffers); } /* ALWAYS_INLINE helps the compiler realize that most of the parameters are @@ -317,19 +307,21 @@ st_update_array_templ(struct st_context *st) const struct st_common_variant *vp_variant = st->vp_variant; const GLbitfield inputs_read = vp_variant->vert_attrib_mask; const GLbitfield dual_slot_inputs = vp->Base.DualSlotInputs; + const GLbitfield userbuf_attribs = inputs_read & _mesa_draw_user_array_bits(ctx); + bool uses_user_vertex_buffers = userbuf_attribs != 0; + + st->draw_needs_minmax_index = + (userbuf_attribs & ~_mesa_draw_nonzero_divisor_bits(ctx)) != 0; struct pipe_vertex_buffer vbuffer[PIPE_MAX_ATTRIBS]; unsigned num_vbuffers = 0; struct cso_velems_state velements; - bool uses_user_vertex_buffers; /* ST_NEW_VERTEX_ARRAYS */ /* Setup arrays */ setup_arrays - (st, ctx->Array._DrawVAO, dual_slot_inputs, - inputs_read, _mesa_draw_nonzero_divisor_bits(ctx), - _mesa_draw_array_bits(ctx), _mesa_draw_user_array_bits(ctx), - &velements, vbuffer, &num_vbuffers, &uses_user_vertex_buffers); + (st, ctx->Array._DrawVAO, dual_slot_inputs, inputs_read, + _mesa_draw_array_bits(ctx), &velements, vbuffer, &num_vbuffers); /* _NEW_CURRENT_ATTRIB */ /* Setup zero-stride attribs. */ @@ -407,13 +399,11 @@ st_create_gallium_vertex_state(struct gl_context *ctx, struct pipe_vertex_buffer vbuffer[PIPE_MAX_ATTRIBS]; unsigned num_vbuffers = 0; struct cso_velems_state velements; - bool uses_user_vertex_buffers; - setup_arrays(st, vao, dual_slot_inputs, inputs_read, 0, - inputs_read, 0, &velements, vbuffer, &num_vbuffers, - &uses_user_vertex_buffers); + setup_arrays(st, vao, dual_slot_inputs, inputs_read, + inputs_read, &velements, vbuffer, &num_vbuffers); - if (num_vbuffers != 1 || uses_user_vertex_buffers) { + if (num_vbuffers != 1) { assert(!"this should never happen with display lists"); return NULL; } diff --git a/src/mesa/state_tracker/st_draw_feedback.c b/src/mesa/state_tracker/st_draw_feedback.c index af0202e..070af57 100644 --- a/src/mesa/state_tracker/st_draw_feedback.c +++ b/src/mesa/state_tracker/st_draw_feedback.c @@ -148,9 +148,7 @@ st_feedback_draw_vbo(struct gl_context *ctx, /* Must setup these after state validation! */ /* Setup arrays */ - bool uses_user_vertex_buffers; - st_setup_arrays(st, vp, vp_variant, &velements, vbuffers, &num_vbuffers, - &uses_user_vertex_buffers); + st_setup_arrays(st, vp, vp_variant, &velements, vbuffers, &num_vbuffers); /* Setup current values as userspace arrays */ st_setup_current_user(st, vp, vp_variant, &velements, vbuffers, &num_vbuffers); -- 2.7.4