Mesa (master): pan/bi: Support automatic register format
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Nov 17 08:24:49 UTC 2020
Module: Mesa
Branch: master
Commit: aa2156f9493a67d8a00d168e3e11783c9bb4fa1a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa2156f9493a67d8a00d168e3e11783c9bb4fa1a
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date: Thu Nov 12 19:19:04 2020 +0100
pan/bi: Support automatic register format
Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7636>
---
src/panfrost/bifrost/gen_pack.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/panfrost/bifrost/gen_pack.py b/src/panfrost/bifrost/gen_pack.py
index e8ccf9ea12d..e9025ae3fbc 100644
--- a/src/panfrost/bifrost/gen_pack.py
+++ b/src/panfrost/bifrost/gen_pack.py
@@ -181,10 +181,16 @@ def pack_register_format(mod, opts, body, pack_exprs):
body.append('unsigned {}_temp = 0;'.format(mod))
first = True
+ auto = None
for i, op in enumerate(opts):
if op is None or op == 'reserved':
continue
+ if op == 'auto':
+ assert(auto == None)
+ auto = i
+ continue
+
t_else = 'else ' if not first else ''
first = False
nir_type = REGISTER_FORMATS.get(op)
@@ -193,7 +199,10 @@ def pack_register_format(mod, opts, body, pack_exprs):
body.append('{}if (ins->format == {}) {}_temp = {};'.format(t_else, nir_type, mod, i))
assert not first
- body.append('else unreachable("Could not pattern match register format");')
+ if auto is None:
+ body.append('else unreachable("Could not pattern match register format");')
+ else:
+ body.append('else {}_temp = {};'.format(mod, auto))
return mod + '_temp'
def pack_seg(mod, opts, body, pack_exprs):
More information about the mesa-commit
mailing list