From 69c0f564d56ec63c3078deb5d8b4c686a83b02aa Mon Sep 17 00:00:00 2001 From: "Wlodarczyk, Bertrand" Date: Mon, 7 Oct 2024 12:15:28 +0200 Subject: [PATCH] Allow DebugTypePointer BaseType argument substitution by DebugInfoNone This update addresses the DebugTypePointer instruction, which represents pointer types in the SPIR-V NonSemantic.Shader.DebugInfo.100 standard. Currently, the instruction requires a defined Base Type argument to comply with the standard. This requirement complicates the implementation of pointers to abstract types, such as void * in C, which represents type erasure, since these types do not have an available or defined Base Type. To accommodate such scenarios, the standard includes the DebugInfoNone instruction. This amendment allows for the substitution of the concrete Base Type argument in DebugTypePointer with DebugInfoNone, thereby simplifying the implementation process for abstract pointer types. --- nonsemantic/NonSemantic.Shader.DebugInfo.100.asciidoc | 3 ++- nonsemantic/NonSemantic.Shader.DebugInfo.100.html | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nonsemantic/NonSemantic.Shader.DebugInfo.100.asciidoc b/nonsemantic/NonSemantic.Shader.DebugInfo.100.asciidoc index 2cd372c..67251e1 100644 --- a/nonsemantic/NonSemantic.Shader.DebugInfo.100.asciidoc +++ b/nonsemantic/NonSemantic.Shader.DebugInfo.100.asciidoc @@ -614,7 +614,8 @@ Describe a pointer or reference data type. + {result_type} + + 'Base Type' is the '' of a debugging instruction that represents the pointee - type. + + type. If the 'Base Type' is not defined or not available in source program, + this operand must refer to <>. + + 'Storage Class' is a 32-bit integer *OpConstant* containing the class of the memory where the object pointed to is allocated. Possible values of this operand are described in the diff --git a/nonsemantic/NonSemantic.Shader.DebugInfo.100.html b/nonsemantic/NonSemantic.Shader.DebugInfo.100.html index b833228..5293491 100644 --- a/nonsemantic/NonSemantic.Shader.DebugInfo.100.html +++ b/nonsemantic/NonSemantic.Shader.DebugInfo.100.html @@ -1309,7 +1309,8 @@

Type instructions

Result Type must be OpTypeVoid.

Base Type is the <id> of a debugging instruction that represents the pointee - type.
+type. If the the Base Type is not specified or not available in source program, this operand must refer to + DebugInfoNone.

Storage Class is a 32-bit integer OpConstant containing the class of the memory where the object pointed to is allocated. Possible values of this operand are described in the @@ -3323,4 +3324,4 @@

Revision History

- \ No newline at end of file +