Mesa (master): pan/mdg: Identify barrier out-of-order field
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Aug 19 12:19:22 UTC 2020
Module: Mesa
Branch: master
Commit: 14e774929ecebbaf9a9c014ff3b47b68f7064439
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=14e774929ecebbaf9a9c014ff3b47b68f7064439
Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date: Thu Aug 13 17:14:58 2020 -0400
pan/mdg: Identify barrier out-of-order field
All barrier types are implied regardless, this is an optimization for
out-of-order.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6321>
---
src/panfrost/midgard/disassemble.c | 14 ++------------
src/panfrost/midgard/midgard.h | 15 ++++-----------
src/panfrost/midgard/midgard_compile.c | 5 -----
3 files changed, 6 insertions(+), 28 deletions(-)
diff --git a/src/panfrost/midgard/disassemble.c b/src/panfrost/midgard/disassemble.c
index 4e54f280c84..ac5179edd35 100644
--- a/src/panfrost/midgard/disassemble.c
+++ b/src/panfrost/midgard/disassemble.c
@@ -1391,18 +1391,8 @@ print_texture_barrier(FILE *fp, uint32_t *word)
if (barrier->zero5)
fprintf(fp, "/* zero4 = 0x%" PRIx64 " */ ", barrier->zero5);
-
- /* Control barriers are always implied, so include for obviousness */
- fprintf(fp, " control");
-
- if (barrier->buffer)
- fprintf(fp, " | buffer");
-
- if (barrier->shared)
- fprintf(fp, " | shared");
-
- if (barrier->stack)
- fprintf(fp, " | stack");
+ if (barrier->out_of_order)
+ fprintf(fp, ".ooo%u", barrier->out_of_order);
fprintf(fp, "\n");
}
diff --git a/src/panfrost/midgard/midgard.h b/src/panfrost/midgard/midgard.h
index 0aac96cf6e2..7d9e7e13614 100644
--- a/src/panfrost/midgard/midgard.h
+++ b/src/panfrost/midgard/midgard.h
@@ -657,9 +657,6 @@ enum mali_sampler_type {
MALI_SAMPLER_SIGNED = 0x3, /* isampler */
};
-#define MIDGARD_BARRIER_BUFFER (1 << 0)
-#define MIDGARD_BARRIER_SHARED (1 << 1)
-
typedef struct
__attribute__((__packed__))
{
@@ -722,10 +719,8 @@ __attribute__((__packed__))
unsigned swizzle : 8;
- /* For barriers, control barriers are implied regardless, but these
- * bits also enable memory barriers of various types. For regular
- * textures, these indicate how many bundles after this texture op may
- * be executed in parallel with this op. We may execute only ALU and
+ /* These indicate how many bundles after this texture op may be
+ * executed in parallel with this op. We may execute only ALU and
* ld/st in parallel (not other textures), and obviously there cannot
* be any dependency (the blob appears to forbid even accessing other
* channels of a given texture register). */
@@ -801,10 +796,8 @@ __attribute__((__packed__))
unsigned zero2 : 14;
unsigned zero3 : 24;
- unsigned buffer : 1;
- unsigned shared : 1;
- unsigned stack : 1;
- unsigned zero4 : 5;
+ unsigned out_of_order : 4;
+ unsigned zero4 : 4;
uint64_t zero5;
} midgard_texture_barrier_word;
diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index 592e4dc70e4..d8d1852f5e2 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -1570,11 +1570,6 @@ emit_control_barrier(compiler_context *ctx)
.dest = ~0,
.src = { ~0, ~0, ~0, ~0 },
.op = TEXTURE_OP_BARRIER,
- .texture = {
- /* TODO: optimize */
- .out_of_order = MIDGARD_BARRIER_BUFFER |
- MIDGARD_BARRIER_SHARED ,
- }
};
emit_mir_instruction(ctx, ins);
More information about the mesa-commit
mailing list