st/mesa: remove st_vp_variant::num_inputs
authorMarek Olšák <marek.olsak@amd.com>
Thu, 28 Nov 2019 03:30:22 +0000 (22:30 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 10 Dec 2019 02:09:28 +0000 (21:09 -0500)
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/mesa/state_tracker/st_atom_array.c
src/mesa/state_tracker/st_program.c
src/mesa/state_tracker/st_program.h

index 9dafbb01b79eb07a8b5bc677f310fed8ef9a5b6b..96b9bd33291161e57d45009e4edc1e7820669d04 100644 (file)
@@ -568,7 +568,7 @@ st_update_array(struct st_context *st)
    st_setup_current(st, vp, vp_variant, velements, vbuffer, &num_vbuffers);
 
    /* Set the array into cso */
-   num_velements = vp_variant->num_inputs;
+   num_velements = vp->num_inputs + vp_variant->key.passthrough_edgeflags;
    set_vertex_attribs(st, vbuffer, num_vbuffers, velements, num_velements);
 
    /* Unreference uploaded buffer resources. */
index 12b588d01936fe173c57186bd771272e94f974db..28ee36efeef18e3ee26635459adaef2ebe41dc46 100644 (file)
@@ -583,7 +583,6 @@ st_create_vp_variant(struct st_context *st,
    struct gl_program_parameter_list *params = stvp->Base.Parameters;
 
    vpv->key = *key;
-   vpv->num_inputs = ((struct st_vertex_program*)stvp)->num_inputs;
 
    state.stream_output = stvp->state.stream_output;
 
@@ -598,7 +597,6 @@ st_create_vp_variant(struct st_context *st,
       }
       if (key->passthrough_edgeflags) {
          NIR_PASS_V(state.ir.nir, nir_lower_passthrough_edgeflags);
-         vpv->num_inputs++;
          finalize = true;
       }
 
@@ -670,11 +668,9 @@ st_create_vp_variant(struct st_context *st,
       if (tokens) {
          tgsi_free_tokens(state.tokens);
          state.tokens = tokens;
-
-         if (key->passthrough_edgeflags)
-            vpv->num_inputs++;
-      } else
+      } else {
          fprintf(stderr, "mesa: cannot emulate deprecated features\n");
+      }
    }
 
    if (key->lower_depth_clamp) {
@@ -726,7 +722,8 @@ st_get_vp_variant(struct st_context *st,
       if (vpv) {
          vpv->base.st = key->st;
 
-         for (unsigned index = 0; index < vpv->num_inputs; ++index) {
+         unsigned num_inputs = stvp->num_inputs + key->passthrough_edgeflags;
+         for (unsigned index = 0; index < num_inputs; ++index) {
             unsigned attr = stvp->index_to_input[index];
             if (attr == ST_DOUBLE_ATTRIB_PLACEHOLDER)
                continue;
index 65c1577e03c334f92b947ce7d0536e9f6026769f..d4d37b1ebab483c2ad0ae517748eeac948ab9c93 100644 (file)
@@ -211,9 +211,6 @@ struct st_vp_variant
     */
    struct st_common_variant_key key;
 
-   /** similar to that in st_vertex_program, but with edgeflags info too */
-   GLuint num_inputs;
-
    /** Bitfield of VERT_BIT_* bits of mesa vertex processing inputs */
    GLbitfield vert_attrib_mask;
 };