lima/ppir: refactor texture code to simplify scheduler
[mesa.git] / src / gallium / drivers / lima / ir / pp / lower.c
index 11a0027c7688eeb4872f742fd096a99954c2323e..5854576121a126d62c692eebb4fdcbd29ae64236 100644 (file)
@@ -242,20 +242,7 @@ static bool ppir_lower_texture(ppir_block *block, ppir_node *node)
 {
    ppir_load_texture_node *load_tex = ppir_node_to_load_texture(node);
 
-   if (ppir_node_has_single_pred(node)) {
-      ppir_node *pred = ppir_node_first_pred(node);
-      if (pred->op == ppir_op_load_varying) {
-         /* If ldtex is the only successor of load_varying node
-          * we're good. Just change load_varying op type to load_coords.
-          */
-         if (ppir_node_has_single_succ(pred)) {
-            pred->op = ppir_op_load_coords;
-            return true;
-         }
-      }
-   }
-
-   /* Otherwise we need to create load_coords node */
+   /* Create load_coords node */
    ppir_load_node *load = ppir_node_create(block, ppir_op_load_coords, -1, 0);
    if (!load)
       return false;
@@ -264,19 +251,11 @@ static bool ppir_lower_texture(ppir_block *block, ppir_node *node)
    ppir_debug("%s create load_coords node %d for %d\n",
               __FUNCTION__, load->node.index, node->index);
 
-   ppir_dest *dest = &load->dest;
-   dest->type = ppir_target_ssa;
-   dest->ssa.num_components = load_tex->src_coords.ssa->num_components;
-   dest->ssa.live_in = INT_MAX;
-   dest->ssa.live_out = 0;
-   dest->write_mask = u_bit_consecutive(0, dest->ssa.num_components);
+   load->dest.type = ppir_target_pipeline;
+   load->dest.pipeline = ppir_pipeline_reg_discard;
 
    load->src = load_tex->src_coords;
 
-   ppir_src *src = &load_tex->src_coords;
-   src->type = ppir_target_ssa;
-   src->ssa = &dest->ssa;
-
    ppir_node_foreach_pred_safe(node, dep) {
       ppir_node *pred = dep->pred;
       ppir_node_remove_dep(dep);