gallium/ttn: Convert to using VARYING_SLOT_* / FRAG_RESULT_*.
[mesa.git] / src / gallium / drivers / vc4 / vc4_program.c
index e002983fdbb4446922b3143007f9e5762d51c16b..7d59a2f070211bb43e7b00d3cbe3aa17b57c147b 100644 (file)
@@ -1412,11 +1412,12 @@ ntq_setup_inputs(struct vc4_compile *c)
         for (unsigned i = 0; i < num_entries; i++) {
                 nir_variable *var = vars[i];
                 unsigned array_len = MAX2(glsl_get_length(var->type), 1);
-                /* XXX: map loc slots to semantics */
-                unsigned semantic_name = var->data.location;
-                unsigned semantic_index = var->data.index;
+                unsigned semantic_name, semantic_index;
                 unsigned loc = var->data.driver_location;
 
+                varying_slot_to_tgsi_semantic(var->data.location,
+                                              &semantic_name, &semantic_index);
+
                 assert(array_len == 1);
                 (void)array_len;
                 resize_qreg_array(c, &c->inputs, &c->inputs_array_size,
@@ -1448,11 +1449,17 @@ ntq_setup_outputs(struct vc4_compile *c)
 {
         foreach_list_typed(nir_variable, var, node, &c->s->outputs) {
                 unsigned array_len = MAX2(glsl_get_length(var->type), 1);
-                /* XXX: map loc slots to semantics */
-                unsigned semantic_name = var->data.location;
-                unsigned semantic_index = var->data.index;
+                unsigned semantic_name, semantic_index;
                 unsigned loc = var->data.driver_location * 4;
 
+                if (c->stage == QSTAGE_FRAG) {
+                        frag_result_to_tgsi_semantic(var->data.location,
+                                                     &semantic_name, &semantic_index);
+                } else {
+                        varying_slot_to_tgsi_semantic(var->data.location,
+                                                      &semantic_name, &semantic_index);
+                }
+
                 assert(array_len == 1);
                 (void)array_len;