From 73812999d92ed9812993f22a8807895d670fa4b8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 18 Mar 2020 23:12:38 -0400 Subject: [PATCH] pan/bi: Pack BI_BLEND MRT not yet supported to keep things easy. Signed-off-by: Alyssa Rosenzweig Tested-by: Marge Bot Part-of: --- src/panfrost/bifrost/bi_pack.c | 16 ++++++++++++++++ src/panfrost/bifrost/bifrost.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/panfrost/bifrost/bi_pack.c b/src/panfrost/bifrost/bi_pack.c index 705a43e3531..2494cb55cdd 100644 --- a/src/panfrost/bifrost/bi_pack.c +++ b/src/panfrost/bifrost/bi_pack.c @@ -455,6 +455,20 @@ bi_pack_add_atest(bi_clause *clause, bi_instruction *ins, struct bi_registers *r RETURN_PACKED(pack); } +static unsigned +bi_pack_add_blend(bi_instruction *ins, struct bi_registers *regs) +{ + struct bifrost_add_inst pack = { + .src0 = bi_get_src(ins, regs, 0, false), + .op = BIFROST_ADD_OP_BLEND + }; + + /* TODO: Pack location in uniform_const */ + assert(ins->blend_location == 0); + + RETURN_PACKED(pack); +} + static unsigned bi_pack_add(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs) { @@ -468,7 +482,9 @@ bi_pack_add(bi_clause *clause, bi_bundle bundle, struct bi_registers *regs) return bi_pack_add_atest(clause, bundle.add, regs); case BI_BRANCH: case BI_CMP: + return BIFROST_ADD_NOP; case BI_BLEND: + return bi_pack_add_blend(bundle.add, regs); case BI_BITWISE: case BI_CONVERT: case BI_DISCARD: diff --git a/src/panfrost/bifrost/bifrost.h b/src/panfrost/bifrost/bifrost.h index 9fb063c32af..dac4ad190dd 100644 --- a/src/panfrost/bifrost/bifrost.h +++ b/src/panfrost/bifrost/bifrost.h @@ -100,6 +100,8 @@ struct bifrost_fma_inst { unsigned op : 20; } __attribute__((packed)); +#define BIFROST_ADD_OP_BLEND (0x1952c) + struct bifrost_add_inst { unsigned src0 : 3; unsigned op : 17; -- 2.30.2