From 51bd3b22009469589718936debc7b60e1082df2d Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Fri, 6 Mar 2026 13:34:49 +0100 Subject: [PATCH] etnaviv: isa: Add unary texkill variant Split texkill_cond into texkill_unary (single source) and texkill_binary (two sources) variants. Update the compiler to use ISA_OPC_TEXKILL_UNARY for discard emission since it only uses a single source operand. Fixes: 081efcd68de ("etnaviv: isa: Split texkill into concrete bitset variants") Signed-off-by: Christian Gmeiner Part-of: --- src/etnaviv/isa/etnaviv.xml | 50 ++++++++++++++++++- .../etnaviv/etnaviv_compiler_nir_emit.c | 2 +- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/etnaviv/isa/etnaviv.xml b/src/etnaviv/isa/etnaviv.xml index ff74ff1bdd1..5309611a83c 100644 --- a/src/etnaviv/isa/etnaviv.xml +++ b/src/etnaviv/isa/etnaviv.xml @@ -417,6 +417,49 @@ SPDX-License-Identifier: MIT 000 + + + + + + + {INSTR_ALU_COND} {DST:align=18}, {SRC0}, void, void + + + + 1 + + + + + + + + + + + 0 + 000000000 + 00000000 + 0 + 0 + 000 + 000 + + + 0 + 000000000 + 00000000 + 0 + 0 + 000 + 000 + + + src->cond + + + @@ -1400,7 +1443,12 @@ SPDX-License-Identifier: MIT 0 - + + 010111 + 0 + + + 010111 0 diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c index 375aac62486..758052b3601 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c @@ -263,7 +263,7 @@ etna_emit_discard(struct etna_compile *c, struct etna_inst_src condition) } struct etna_inst inst = { - .opcode = ISA_OPC_TEXKILL, + .opcode = ISA_OPC_TEXKILL_UNARY, .cond = ISA_COND_NZ, .type = (c->info->halti < 2) ? ISA_TYPE_F32 : ISA_TYPE_U32, .src[0] = condition,