From 352b1d9c311b1468857cce30191994586520ef46 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 17 Jun 2019 11:23:33 +0200 Subject: [PATCH] nir/lower_tex: Actually report when projector lowering happened The code considers that projector lowering was done even if it's not really the case. Change the project_src() prototype to return a bool encoding whether projector lowering happened or not and update the progress var accordingly in nir_lower_tex_block(). --- Changes in v2: * Add Jason R-b * Drop the part suggesting that nir_lower_rect() could be called in a do-while(progress) loop. Signed-off-by: Boris Brezillon Reviewed-by: Jason Ekstrand Reviewed-by: Alyssa Rosenzweig --- src/compiler/nir/nir_lower_tex.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/nir/nir_lower_tex.c b/src/compiler/nir/nir_lower_tex.c index 53719017a87..04ca8f88c25 100644 --- a/src/compiler/nir/nir_lower_tex.c +++ b/src/compiler/nir/nir_lower_tex.c @@ -39,13 +39,13 @@ #include "nir_builder.h" #include "nir_format_convert.h" -static void +static bool project_src(nir_builder *b, nir_tex_instr *tex) { /* Find the projector in the srcs list, if present. */ int proj_index = nir_tex_instr_src_index(tex, nir_tex_src_projector); if (proj_index < 0) - return; + return false; b->cursor = nir_before_instr(&tex->instr); @@ -100,6 +100,7 @@ project_src(nir_builder *b, nir_tex_instr *tex) } nir_tex_instr_remove_src(tex, proj_index); + return true; } static nir_ssa_def * @@ -1005,8 +1006,7 @@ nir_lower_tex_block(nir_block *block, nir_builder *b, * as clamping happens *after* projection: */ if (lower_txp || sat_mask) { - project_src(b, tex); - progress = true; + progress |= project_src(b, tex); } if ((tex->op == nir_texop_txf && options->lower_txf_offset) || -- 2.30.2