From 94570e87bd7702816158ce49a612e4b4e278f7f4 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 20 May 2020 16:25:28 +0200 Subject: [PATCH] aco: add support for bias/lod with texture gather Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- .../compiler/aco_instruction_selection.cpp | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index fa9937dabe9..9f97e1fc647 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8821,14 +8821,34 @@ void visit_tex(isel_context *ctx, nir_tex_instr *instr) } if (instr->op == nir_texop_tg4) { - if (has_offset) { - opcode = aco_opcode::image_gather4_lz_o; - if (has_compare) + if (has_offset) { /* image_gather4_*_o */ + if (has_compare) { opcode = aco_opcode::image_gather4_c_lz_o; + if (has_lod) + opcode = aco_opcode::image_gather4_c_l_o; + if (has_bias) + opcode = aco_opcode::image_gather4_c_b_o; + } else { + opcode = aco_opcode::image_gather4_lz_o; + if (has_lod) + opcode = aco_opcode::image_gather4_l_o; + if (has_bias) + opcode = aco_opcode::image_gather4_b_o; + } } else { - opcode = aco_opcode::image_gather4_lz; - if (has_compare) + if (has_compare) { opcode = aco_opcode::image_gather4_c_lz; + if (has_lod) + opcode = aco_opcode::image_gather4_c_l; + if (has_bias) + opcode = aco_opcode::image_gather4_c_b; + } else { + opcode = aco_opcode::image_gather4_lz; + if (has_lod) + opcode = aco_opcode::image_gather4_l; + if (has_bias) + opcode = aco_opcode::image_gather4_b; + } } } else if (instr->op == nir_texop_lod) { opcode = aco_opcode::image_get_lod; -- 2.30.2