summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQiang Yu <yuq825@gmail.com>2017-10-20 22:15:29 +0800
committerQiang Yu <yuq825@gmail.com>2017-10-21 12:30:27 +0800
commit815d243346bd8a368d37e26104ec2a60e8e5c670 (patch)
tree5f6d35a74f72480d682aa7412a83f28702f45545
parent3088305de418cab9b3ee1e84ed1379d989ed66a2 (diff)
lima/ppir: support max
Signed-off-by: Qiang Yu <yuq825@gmail.com>
-rw-r--r--src/gallium/drivers/lima/ir/pp/codegen.c3
-rw-r--r--src/gallium/drivers/lima/ir/pp/instr.c1
-rw-r--r--src/gallium/drivers/lima/ir/pp/nir.c1
-rw-r--r--src/gallium/drivers/lima/ir/pp/node.c4
4 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/lima/ir/pp/codegen.c b/src/gallium/drivers/lima/ir/pp/codegen.c
index 99d809ecf3..f86b39e45f 100644
--- a/src/gallium/drivers/lima/ir/pp/codegen.c
+++ b/src/gallium/drivers/lima/ir/pp/codegen.c
@@ -113,6 +113,9 @@ static void ppir_codegen_encode_vec_mul(ppir_node *node, void *code)
case ppir_op_mov:
f->op = ppir_codegen_vec4_mul_op_mov;
break;
+ case ppir_op_max:
+ f->op = ppir_codegen_vec4_mul_op_max;
+ break;
default:
break;
}
diff --git a/src/gallium/drivers/lima/ir/pp/instr.c b/src/gallium/drivers/lima/ir/pp/instr.c
index 90b862502e..568f26d3e7 100644
--- a/src/gallium/drivers/lima/ir/pp/instr.c
+++ b/src/gallium/drivers/lima/ir/pp/instr.c
@@ -119,6 +119,7 @@ bool ppir_instr_insert_node(ppir_instr *instr, ppir_node *node)
switch (node->op) {
case ppir_op_mov:
case ppir_op_mul:
+ case ppir_op_max:
instr->slots[PPIR_INSTR_SLOT_ALU_VEC_MUL] = node;
break;
diff --git a/src/gallium/drivers/lima/ir/pp/nir.c b/src/gallium/drivers/lima/ir/pp/nir.c
index fed7c031d8..c1a18c7882 100644
--- a/src/gallium/drivers/lima/ir/pp/nir.c
+++ b/src/gallium/drivers/lima/ir/pp/nir.c
@@ -133,6 +133,7 @@ static int nir_to_ppir_opcodes[nir_num_opcodes] = {
[nir_op_frsq] = ppir_op_rsqrt,
[nir_op_flog2] = ppir_op_log2,
[nir_op_fexp2] = ppir_op_exp2,
+ [nir_op_fmax] = ppir_op_max,
};
static ppir_node *ppir_emit_alu(ppir_compiler *comp, nir_alu_instr *instr)
diff --git a/src/gallium/drivers/lima/ir/pp/node.c b/src/gallium/drivers/lima/ir/pp/node.c
index b04a07b8d1..ac19de8103 100644
--- a/src/gallium/drivers/lima/ir/pp/node.c
+++ b/src/gallium/drivers/lima/ir/pp/node.c
@@ -80,6 +80,10 @@ const ppir_op_info ppir_op_infos[] = {
.name = "exp2",
.type = ppir_node_type_alu,
},
+ [ppir_op_max] = {
+ .name = "max",
+ .type = ppir_node_type_alu,
+ },
[ppir_op_load_varying] = {
.name = "ld_var",
.type = ppir_node_type_load,