mesa/st: handle vert_attrib_mask in nir case too
authorRob Clark <robdclark@gmail.com>
Tue, 15 May 2018 18:29:46 +0000 (14:29 -0400)
committerRob Clark <robdclark@gmail.com>
Tue, 15 May 2018 19:15:33 +0000 (15:15 -0400)
Note, actually fixes 9987a072cb, but the problems don't show up until
19a91841c3.

Fixes: 19a91841c3 st/mesa: Use Array._DrawVAO in st_atom_array.c.
Fixes: 9987a072cb st/mesa: Make the input_to_index array available.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
src/mesa/state_tracker/st_program.c

index a52c9f825690def8e970fc1e9a8c464c366dd26b..a7671b7fd1d86707010fc9990bdbf10c423d781e 100644 (file)
@@ -634,13 +634,6 @@ st_create_vp_variant(struct st_context *st,
          fprintf(stderr, "mesa: cannot emulate deprecated features\n");
    }
 
-   for (unsigned index = 0; index < vpv->num_inputs; ++index) {
-      unsigned attr = stvp->index_to_input[index];
-      if (attr == ST_DOUBLE_ATTRIB_PLACEHOLDER)
-         continue;
-      vpv->vert_attrib_mask |= 1u << attr;
-   }
-
    if (ST_DEBUG & DEBUG_TGSI) {
       tgsi_dump(vpv->tgsi.tokens, 0);
       debug_printf("\n");
@@ -672,6 +665,13 @@ st_get_vp_variant(struct st_context *st,
       /* create now */
       vpv = st_create_vp_variant(st, stvp, key);
       if (vpv) {
+          for (unsigned index = 0; index < vpv->num_inputs; ++index) {
+             unsigned attr = stvp->index_to_input[index];
+             if (attr == ST_DOUBLE_ATTRIB_PLACEHOLDER)
+                continue;
+             vpv->vert_attrib_mask |= 1u << attr;
+          }
+
          /* insert into list */
          vpv->next = stvp->variants;
          stvp->variants = vpv;