From 378da2c3ff585adf0e0280ad333e4ba5d0932131 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sat, 23 Apr 2022 15:41:13 +0200 Subject: [PATCH] etnaviv: Implement TXD Fill in support for TXD instruction which emits shader TEXLDD opcode. Signed-off-by: Marek Vasut Reviewed-by: Christian Gmeiner Reviewed-by: Lucas Stach Part-of: --- src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c | 2 ++ src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c | 1 + src/gallium/drivers/etnaviv/etnaviv_nir.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c index 4a23dc3f00f..ef8baf3f75c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c @@ -522,10 +522,12 @@ emit_tex(struct etna_compile *c, nir_tex_instr * tex) break; case nir_tex_src_bias: case nir_tex_src_lod: + case nir_tex_src_ddx: assert(!src1); src1 = &tex->src[i].src; break; case nir_tex_src_comparator: + case nir_tex_src_ddy: src2 = &tex->src[i].src; break; default: diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c index a6f9c5f7339..7d8c483298b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c @@ -212,6 +212,7 @@ etna_emit_tex(struct etna_compile *c, nir_texop op, unsigned texid, unsigned dst switch (op) { case nir_texop_tex: inst.opcode = INST_OPCODE_TEXLD; break; case nir_texop_txb: inst.opcode = INST_OPCODE_TEXLDB; break; + case nir_texop_txd: inst.opcode = INST_OPCODE_TEXLDD; break; case nir_texop_txl: inst.opcode = INST_OPCODE_TEXLDL; break; default: compile_error(c, "Unhandled NIR tex type: %d\n", op); diff --git a/src/gallium/drivers/etnaviv/etnaviv_nir.c b/src/gallium/drivers/etnaviv/etnaviv_nir.c index f27296eac30..57bc2bc8d59 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_nir.c +++ b/src/gallium/drivers/etnaviv/etnaviv_nir.c @@ -108,6 +108,8 @@ etna_lower_io(nir_shader *shader, struct etna_shader_variant *v) src1 = &tex->src[i].src; src1_idx = i; break; + case nir_tex_src_ddx: + case nir_tex_src_ddy: case nir_tex_src_comparator: break; default: