diff options
Diffstat (limited to 'src/panfrost')
-rw-r--r-- | src/panfrost/bifrost/bi_pack.c | 16 | ||||
-rw-r--r-- | src/panfrost/bifrost/bifrost.h | 2 |
2 files changed, 18 insertions, 0 deletions
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 @@ -456,6 +456,20 @@ bi_pack_add_atest(bi_clause *clause, bi_instruction *ins, struct bi_registers *r } 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) { if (!bundle.add) @@ -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; |