lima: ppir: don't delete root ld_tex nodes without successors in current block
authorVasily Khoruzhick <anarsoul@gmail.com>
Sat, 25 Jan 2020 19:40:37 +0000 (11:40 -0800)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Jan 2020 01:45:29 +0000 (01:45 +0000)
We don't clone ld_tex nodes into each block anymore, so ld_tex may have
successors in another block.

Fixes: c8554f849e41 ("lima/ppir: don't clone texture loads")
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3564>

src/gallium/drivers/lima/ir/pp/lower.c

index 8fbbcb5dbb5b5fa362fb1976f458d68a368914e7..034425c97a7f9cf4821d65cbad23132419949259 100644 (file)
@@ -150,14 +150,9 @@ static bool ppir_lower_texture(ppir_block *block, ppir_node *node)
 {
    ppir_load_texture_node *load_tex = ppir_node_to_load_texture(node);
    ppir_dest *dest = ppir_node_get_dest(node);
-
-   if (ppir_node_is_root(node) && dest->type == ppir_target_ssa) {
-      ppir_node_delete(node);
-      return true;
-   }
-
    ppir_node *src_coords = ppir_node_get_src(node, 0)->node;
    ppir_load_node *load = NULL;
+
    if (src_coords && ppir_node_has_single_src_succ(src_coords) &&
        (src_coords->op == ppir_op_load_coords))
       load = ppir_node_to_load(src_coords);