From 3541d11cabd489bfa898ce2da631efab9870979b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Petit?= <kevin.petit@arm.com>
Date: Wed, 13 May 2026 16:59:08 +0100
Subject: [PATCH 12/26] Add NonSemanticGraphDebugInfo instruction set (#591)

Change-Id: Ibd080a73abc630fbd2b3068f9c22ab8c0e01c806

Signed-off-by: Kevin Petit <kevin.petit@arm.com>
---
 BUILD.bazel                                   |  6 ++++
 .../unified1/NonSemanticGraphDebugInfo.h      | 28 +++++++++++++++
 ...t.nonsemantic.graph.debuginfo.grammar.json | 35 +++++++++++++++++++
 tools/buildHeaders/bin/makeExtinstHeaders.py  |  1 +
 4 files changed, 70 insertions(+)
 create mode 100644 include/spirv/unified1/NonSemanticGraphDebugInfo.h
 create mode 100644 include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json

diff --git a/BUILD.bazel b/BUILD.bazel
index badf2c1..61ef7e8 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -138,6 +138,11 @@ filegroup(
     srcs = ["include/spirv/unified1/extinst.arm.motion-engine.100.grammar.json"],
 )
 
+filegroup(
+    name = "spirv_ext_inst_non_semantic_graph_debuginfo_grammar_unified1",
+    srcs = ["include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json"],
+)
+
 cc_library(
     name = "spirv_common_headers",
     hdrs = [
@@ -152,6 +157,7 @@ cc_library(
         "include/spirv/unified1/NonSemanticClspvReflection.h",
         "include/spirv/unified1/NonSemanticDebugBreak.h",
         "include/spirv/unified1/NonSemanticDebugPrintf.h",
+        "include/spirv/unified1/NonSemanticGraphDebugInfo.h",
         "include/spirv/unified1/NonSemanticShaderDebugInfo.h",
         "include/spirv/unified1/NonSemanticShaderDebugInfo100.h",
         "include/spirv/unified1/NonSemanticVkspReflection.h",
diff --git a/include/spirv/unified1/NonSemanticGraphDebugInfo.h b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
new file mode 100644
index 0000000..3046842
--- /dev/null
+++ b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
@@ -0,0 +1,28 @@
+// SPDX-FileCopyrightText: 2022-2026 Arm Ltd.
+// SPDX-License-Identifier: MIT
+
+#ifndef SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
+#define SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+    NonSemanticGraphDebugInfoRevision = 1,
+    NonSemanticGraphDebugInfoRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticGraphDebugInfoInstructions {
+    NonSemanticGraphDebugInfoDebugGraph = 1,
+    NonSemanticGraphDebugInfoDebugOperation = 2,
+    NonSemanticGraphDebugInfoDebugTensor = 3,
+    NonSemanticGraphDebugInfoInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
diff --git a/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
new file mode 100644
index 0000000..b740775
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
@@ -0,0 +1,35 @@
+{
+  "copyright": [
+    "SPDX-FileCopyrightText: 2022-2026 Arm Ltd.",
+    "SPDX-License-Identifier: MIT"
+  ],
+  "revision" : 1,
+  "instructions" : [
+    {
+      "opname" : "DebugGraph",
+      "opcode" : 1,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Graph" },
+        { "kind" : "IdRef", "name" : "Name" }
+      ]
+    },
+    {
+      "opname" : "DebugOperation",
+      "opcode" : 2,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "DebugGraph" },
+        { "kind" : "IdRef", "name" : "Name" },
+        { "kind" : "IdRef", "name" : "Instructions", "quantifier" : "*" }
+      ]
+    },
+    {
+      "opname" : "DebugTensor",
+      "opcode" : 3,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Tensor" },
+        { "kind" : "IdRef", "name" : "Name" },
+        { "kind" : "IdRef", "name" : "Index", "quantifier" : "?" }
+      ]
+    }
+  ]
+}
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
index e5fd640..1c9fbfd 100755
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -31,3 +31,4 @@ mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json
 mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json')
 mk_extinst('TOSA', 'extinst.tosa.001000.1.grammar.json', 'TOSA.001000.1')
 mk_extinst('ArmMotionEngine', 'extinst.arm.motion-engine.100.grammar.json', 'ArmMotionEngine.100')
+mk_extinst('NonSemanticGraphDebugInfo', 'extinst.nonsemantic.graph.debuginfo.grammar.json')
-- 
2.54.0

