Publish the headers for the clspv embedded reflection non-semantic extended instruction set (#164)

* Clspv non-semantic reflection instruction set
* Version 1
This commit is contained in:
alan-baker 2020-07-29 14:23:29 -04:00 committed by GitHub
parent 76afa63974
commit 96013f32b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 311 additions and 0 deletions

View File

@ -0,0 +1,73 @@
// Copyright (c) 2020 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and/or associated documentation files (the
// "Materials"), to deal in the Materials without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Materials, and to
// permit persons to whom the Materials are furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Materials.
//
// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
// https://www.khronos.org/registry/
//
// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
//
#ifndef SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
#define SPIRV_UNIFIED1_NonSemanticClspvReflection_H_
#ifdef __cplusplus
extern "C" {
#endif
enum {
NonSemanticClspvReflectionRevision = 1,
NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
};
enum NonSemanticClspvReflectionInstructions {
NonSemanticClspvReflectionKernel = 1,
NonSemanticClspvReflectionArgumentInfo = 2,
NonSemanticClspvReflectionArgumentStorageBuffer = 3,
NonSemanticClspvReflectionArgumentUniform = 4,
NonSemanticClspvReflectionArgumentPodStorageBuffer = 5,
NonSemanticClspvReflectionArgumentPodUniform = 6,
NonSemanticClspvReflectionArgumentPodPushConstant = 7,
NonSemanticClspvReflectionArgumentSampledImage = 8,
NonSemanticClspvReflectionArgumentStorageImage = 9,
NonSemanticClspvReflectionArgumentSampler = 10,
NonSemanticClspvReflectionArgumentWorkgroup = 11,
NonSemanticClspvReflectionSpecConstantWorkgroupSize = 12,
NonSemanticClspvReflectionSpecConstantGlobalOffset = 13,
NonSemanticClspvReflectionSpecConstantWorkDim = 14,
NonSemanticClspvReflectionPushConstantGlobalOffset = 15,
NonSemanticClspvReflectionPushConstantEnqueuedLocalSize = 16,
NonSemanticClspvReflectionPushConstantGlobalSize = 17,
NonSemanticClspvReflectionPushConstantRegionOffset = 18,
NonSemanticClspvReflectionPushConstantNumWorkgroups = 19,
NonSemanticClspvReflectionPushConstantRegionGroupOffset = 20,
NonSemanticClspvReflectionConstantDataStorageBuffer = 21,
NonSemanticClspvReflectionConstantDataUniform = 22,
NonSemanticClspvReflectionLiteralSampler = 23,
NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
};
#ifdef __cplusplus
}
#endif
#endif // SPIRV_UNIFIED1_NonSemanticClspvReflection_H_

View File

@ -0,0 +1,237 @@
{
"revision" : 1,
"instructions" : [
{
"opname" : "Kernel",
"opcode" : 1,
"operands" : [
{ "kind" : "IdRef", "name" : "Kernel" },
{ "kind" : "IdRef", "name" : "Name" }
]
},
{
"opname" : "ArgumentInfo",
"opcode" : 2,
"operands" : [
{ "kind" : "IdRef", "name" : "Name" },
{ "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" },
{ "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" },
{ "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" },
{ "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentStorageBuffer",
"opcode" : 3,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentUniform",
"opcode" : 4,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentPodStorageBuffer",
"opcode" : 5,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentPodUniform",
"opcode" : 6,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentPodPushConstant",
"opcode" : 7,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentSampledImage",
"opcode" : 8,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentStorageImage",
"opcode" : 9,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentSampler",
"opcode" : 10,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "ArgumentWorkgroup",
"opcode" : 11,
"operands" : [
{ "kind" : "IdRef", "name" : "Decl" },
{ "kind" : "IdRef", "name" : "Ordinal" },
{ "kind" : "IdRef", "name" : "SpecId" },
{ "kind" : "IdRef", "name" : "ElemSize" },
{ "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
]
},
{
"opname" : "SpecConstantWorkgroupSize",
"opcode" : 12,
"operands" : [
{ "kind" : "IdRef", "name" : "X" },
{ "kind" : "IdRef", "name" : "Y" },
{ "kind" : "IdRef", "name" : "Z" }
]
},
{
"opname" : "SpecConstantGlobalOffset",
"opcode" : 13,
"operands" : [
{ "kind" : "IdRef", "name" : "X" },
{ "kind" : "IdRef", "name" : "Y" },
{ "kind" : "IdRef", "name" : "Z" }
]
},
{
"opname" : "SpecConstantWorkDim",
"opcode" : 14,
"operands" : [
{ "kind" : "IdRef", "name" : "Dim" }
]
},
{
"opname" : "PushConstantGlobalOffset",
"opcode" : 15,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "PushConstantEnqueuedLocalSize",
"opcode" : 16,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "PushConstantGlobalSize",
"opcode" : 17,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "PushConstantRegionOffset",
"opcode" : 18,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "PushConstantNumWorkgroups",
"opcode" : 19,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "PushConstantRegionGroupOffset",
"opcode" : 20,
"operands" : [
{ "kind" : "IdRef", "name" : "Offset" },
{ "kind" : "IdRef", "name" : "Size" }
]
},
{
"opname" : "ConstantDataStorageBuffer",
"opcode" : 21,
"operands" : [
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "Data" }
]
},
{
"opname" : "ConstantDataUniform",
"opcode" : 22,
"operands" : [
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "Data" }
]
},
{
"opname" : "LiteralSampler",
"opcode" : 23,
"operands" : [
{ "kind" : "IdRef", "name" : "DescriptorSet" },
{ "kind" : "IdRef", "name" : "Binding" },
{ "kind" : "IdRef", "name" : "Mask" }
]
},
{
"opname" : "PropertyRequiredWorkgroupSize",
"opcode" : 24,
"operands" : [
{ "kind" : "IdRef", "name" : "Kernel" },
{ "kind" : "IdRef", "name" : "X" },
{ "kind" : "IdRef", "name" : "Y" },
{ "kind" : "IdRef", "name" : "Z" }
]
}
]
}

View File

@ -25,3 +25,4 @@ mk_extinst('AMD_shader_ballot', 'extinst.spv-amd-shader-ballot.grammar.json')
mk_extinst('AMD_shader_explicit_vertex_parameter', 'extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json')
mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json')
mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')