diff options
author | Alyssa Rosenzweig <[email protected]> | 2020-03-20 12:38:53 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-03-22 03:32:35 +0000 |
commit | 9213b2520cdafefbb83f8f495281b0db419f85a8 (patch) | |
tree | bb060a8638bc394f8f6b888df40f31d639f98483 /src/panfrost | |
parent | c57ac9d1368e83ce001be4439c73473529e48135 (diff) |
pan/bi: Add store_channels property
It can't be inferred from the usual writemask since stores don't write
to a register destination.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4276>
Diffstat (limited to 'src/panfrost')
-rw-r--r-- | src/panfrost/bifrost/bi_print.c | 2 | ||||
-rw-r--r-- | src/panfrost/bifrost/bifrost_compile.c | 3 | ||||
-rw-r--r-- | src/panfrost/bifrost/compiler.h | 3 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c index 2a03b3cab5d..f06cff849d3 100644 --- a/src/panfrost/bifrost/bi_print.c +++ b/src/panfrost/bifrost/bi_print.c @@ -345,6 +345,8 @@ bi_print_instruction(bi_instruction *ins, FILE *fp) fprintf(fp, ".%s", bi_cond_name(ins->csel_cond)); else if (ins->type == BI_BLEND) fprintf(fp, ".loc%u", ins->blend_location); + else if (ins->type == BI_STORE || ins->type == BI_STORE_VAR) + fprintf(fp, ".v%u", ins->store_channels); if (ins->dest) bi_print_alu_type(ins->dest_type, fp); diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 25bb4ab9c58..3d7bbfbba63 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -194,7 +194,8 @@ bi_emit_st_vary(bi_context *ctx, nir_intrinsic_instr *instr) .swizzle = { { 0, 1, 2, 3 }, { 0 }, { 1 }, { 2} - } + }, + .store_channels = 4, /* TODO: WRITEMASK */ }; bi_emit(ctx, address); diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h index ee868f75d92..b09bd536729 100644 --- a/src/panfrost/bifrost/compiler.h +++ b/src/panfrost/bifrost/compiler.h @@ -261,6 +261,9 @@ typedef struct { /* For BLEND -- the location 0-7 */ unsigned blend_location; + + /* For STORE, STORE_VAR -- channel count */ + unsigned store_channels; }; } bi_instruction; |