Mesa (master): spirv: Handle instruction aliases in vtn_gather_types

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 24 06:43:33 UTC 2020


Module: Mesa
Branch: master
Commit: 5620c3efd85f42a1301d63d55195704ee8365e5e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5620c3efd85f42a1301d63d55195704ee8365e5e

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Tue Apr 21 21:54:56 2020 -0700

spirv: Handle instruction aliases in vtn_gather_types

Same solution as done in spirv_info generation.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4682>

---

 src/compiler/spirv/vtn_gather_types_c.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/compiler/spirv/vtn_gather_types_c.py b/src/compiler/spirv/vtn_gather_types_c.py
index 7b42e95cc35..d30a91d2b7a 100644
--- a/src/compiler/spirv/vtn_gather_types_c.py
+++ b/src/compiler/spirv/vtn_gather_types_c.py
@@ -29,7 +29,13 @@ from sys import stdout
 from mako.template import Template
 
 def find_result_types(spirv):
+    seen = set()
     for inst in spirv['instructions']:
+        # Handle aliases by choosing the first one in the grammar.
+        if inst['opcode'] in seen:
+            continue
+        seen.add(inst['opcode'])
+
         name = inst['opname']
 
         if 'operands' not in inst:



More information about the mesa-commit mailing list