diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2018-01-08 10:46:16 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-01-08 13:22:17 -0800 |
commit | 22980f941e67fc66a25b5bb28b2bfa3dbef80e75 (patch) | |
tree | 99a49e996d2ea247312a202551656171e8f2370b | |
parent | 08a5f4412aa505011a9cb80b9e9ed8eb90469613 (diff) |
spirv: Import 1.2 rev 3 headers and grammar from Khronos
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/compiler/spirv/spirv.core.grammar.json | 568 | ||||
-rw-r--r-- | src/compiler/spirv/spirv.h | 27 |
2 files changed, 431 insertions, 164 deletions
diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json index e2950dd97bb..47ca1c56006 100644 --- a/src/compiler/spirv/spirv.core.grammar.json +++ b/src/compiler/spirv/spirv.core.grammar.json @@ -26,7 +26,7 @@ ], "magic_number" : "0x07230203", "major_version" : 1, - "minor_version" : 2, + "minor_version" : 3, "revision" : 1, "instructions" : [ { @@ -2410,7 +2410,7 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, @@ -2434,7 +2434,7 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, @@ -2446,7 +2446,7 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, @@ -2458,7 +2458,7 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, @@ -2470,7 +2470,7 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], "capabilities" : [ "Groups" ] }, @@ -2886,7 +2886,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version" : "None" }, { "opname" : "OpImageSparseSampleProjExplicitLod", @@ -2898,7 +2899,8 @@ { "kind" : "IdRef", "name" : "'Coordinate'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version" : "None" }, { "opname" : "OpImageSparseSampleProjDrefImplicitLod", @@ -2911,7 +2913,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands", "quantifier" : "?" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version" : "None" }, { "opname" : "OpImageSparseSampleProjDrefExplicitLod", @@ -2924,7 +2927,8 @@ { "kind" : "IdRef", "name" : "'D~ref~'" }, { "kind" : "ImageOperands" } ], - "capabilities" : [ "SparseResidency" ] + "capabilities" : [ "SparseResidency" ], + "version" : "None" }, { "opname" : "OpImageSparseFetch", @@ -3018,9 +3022,10 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "IdRef", "name" : "'Pointer'" } + { "kind" : "IdRef", "name" : "'Pointer'" } ], - "capabilities" : [ "Addresses" ] + "capabilities" : [ "Addresses" ], + "version" : "1.1" }, { "opname" : "OpTypePipeStorage", @@ -3028,7 +3033,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "PipeStorage" ] + "capabilities" : [ "PipeStorage" ], + "version" : "1.1" }, { "opname" : "OpConstantPipeStorage", @@ -3040,7 +3046,8 @@ { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" }, { "kind" : "LiteralInteger", "name" : "'Capacity'" } ], - "capabilities" : [ "PipeStorage" ] + "capabilities" : [ "PipeStorage" ], + "version" : "1.1" }, { "opname" : "OpCreatePipeFromPipeStorage", @@ -3048,9 +3055,10 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "IdRef", "name" : "'Pipe Storage'" } + { "kind" : "IdRef", "name" : "'Pipe Storage'" } ], - "capabilities" : [ "PipeStorage" ] + "capabilities" : [ "PipeStorage" ], + "version" : "1.1" }, { "opname" : "OpGetKernelLocalSizeForSubgroupCount", @@ -3058,13 +3066,14 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "IdRef", "name" : "'Subgroup Count'" }, - { "kind" : "IdRef", "name" : "'Invoke'" }, - { "kind" : "IdRef", "name" : "'Param'" }, - { "kind" : "IdRef", "name" : "'Param Size'" }, - { "kind" : "IdRef", "name" : "'Param Align'" } + { "kind" : "IdRef", "name" : "'Subgroup Count'" }, + { "kind" : "IdRef", "name" : "'Invoke'" }, + { "kind" : "IdRef", "name" : "'Param'" }, + { "kind" : "IdRef", "name" : "'Param Size'" }, + { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "SubgroupDispatch" ] + "capabilities" : [ "SubgroupDispatch" ], + "version" : "1.1" }, { "opname" : "OpGetKernelMaxNumSubgroups", @@ -3072,12 +3081,13 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "IdRef", "name" : "'Invoke'" }, - { "kind" : "IdRef", "name" : "'Param'" }, - { "kind" : "IdRef", "name" : "'Param Size'" }, - { "kind" : "IdRef", "name" : "'Param Align'" } + { "kind" : "IdRef", "name" : "'Invoke'" }, + { "kind" : "IdRef", "name" : "'Param'" }, + { "kind" : "IdRef", "name" : "'Param Size'" }, + { "kind" : "IdRef", "name" : "'Param Align'" } ], - "capabilities" : [ "SubgroupDispatch" ] + "capabilities" : [ "SubgroupDispatch" ], + "version" : "1.1" }, { "opname" : "OpTypeNamedBarrier", @@ -3085,7 +3095,8 @@ "operands" : [ { "kind" : "IdResult" } ], - "capabilities" : [ "NamedBarrier" ] + "capabilities" : [ "NamedBarrier" ], + "version" : "1.1" }, { "opname" : "OpNamedBarrierInitialize", @@ -3093,42 +3104,47 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "IdRef", "name" : "'Subgroup Count'" } + { "kind" : "IdRef", "name" : "'Subgroup Count'" } ], - "capabilities" : [ "NamedBarrier" ] + "capabilities" : [ "NamedBarrier" ], + "version" : "1.1" }, { "opname" : "OpMemoryNamedBarrier", "opcode" : 329, "operands" : [ - { "kind" : "IdRef", "name" : "'Named Barrier'" }, - { "kind" : "IdScope", "name" : "'Memory'" }, + { "kind" : "IdRef", "name" : "'Named Barrier'" }, + { "kind" : "IdScope", "name" : "'Memory'" }, { "kind" : "IdMemorySemantics", "name" : "'Semantics'" } ], - "capabilities" : [ "NamedBarrier" ] + "capabilities" : [ "NamedBarrier" ], + "version" : "1.1" }, { "opname" : "OpModuleProcessed", "opcode" : 330, "operands" : [ { "kind" : "LiteralString", "name" : "'Process'" } - ] + ], + "version" : "1.1" }, { "opname" : "OpExecutionModeId", "opcode" : 331, "operands" : [ - { "kind" : "IdRef", "name" : "'Entry Point'" }, - { "kind" : "ExecutionMode", "name" : "'Mode'" } - ] + { "kind" : "IdRef", "name" : "'Entry Point'" }, + { "kind" : "ExecutionMode", "name" : "'Mode'" } + ], + "version" : "1.2" }, { "opname" : "OpDecorateId", "opcode" : 332, "operands" : [ - { "kind" : "IdRef", "name" : "'Target'" }, + { "kind" : "IdRef", "name" : "'Target'" }, { "kind" : "Decoration" } - ] + ], + "version" : "1.2" }, { "opname" : "OpSubgroupBallotKHR", @@ -3189,7 +3205,8 @@ { "kind" : "IdRef", "name" : "'Value'" }, { "kind" : "IdRef", "name" : "'Index'" } ], - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "opname" : "OpGroupIAddNonUniformAMD", @@ -3201,7 +3218,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupFAddNonUniformAMD", @@ -3213,7 +3231,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupFMinNonUniformAMD", @@ -3223,9 +3242,10 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupUMinNonUniformAMD", @@ -3237,7 +3257,8 @@ { "kind" : "GroupOperation", "name" : "'Operation'" }, { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupSMinNonUniformAMD", @@ -3247,9 +3268,10 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupFMaxNonUniformAMD", @@ -3259,9 +3281,10 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupUMaxNonUniformAMD", @@ -3271,9 +3294,10 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" }, { "opname" : "OpGroupSMaxNonUniformAMD", @@ -3283,9 +3307,129 @@ { "kind" : "IdResult" }, { "kind" : "IdScope", "name" : "'Execution'" }, { "kind" : "GroupOperation", "name" : "'Operation'" }, - { "kind" : "IdRef", "name" : "X" } + { "kind" : "IdRef", "name" : "'X'" } ], - "capabilities" : [ "Groups" ] + "capabilities" : [ "Groups" ], + "version" : "None" + }, + { + "opname" : "OpFragmentMaskFetchAMD", + "opcode" : 5011, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Image'" }, + { "kind" : "IdRef", "name" : "'Coordinate'" } + ], + "capabilities" : [ "FragmentMaskAMD" ], + "version" : "None" + }, + { + "opname" : "OpFragmentFetchAMD", + "opcode" : 5012, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Image'" }, + { "kind" : "IdRef", "name" : "'Coordinate'" }, + { "kind" : "IdRef", "name" : "'Fragment Index'" } + ], + "capabilities" : [ "FragmentMaskAMD" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupShuffleINTEL", + "opcode" : 5571, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Data'" }, + { "kind" : "IdRef", "name" : "'InvocationId'" } + ], + "capabilities" : [ "SubgroupShuffleINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupShuffleDownINTEL", + "opcode" : 5572, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Current'" }, + { "kind" : "IdRef", "name" : "'Next'" }, + { "kind" : "IdRef", "name" : "'Delta'" } + ], + "capabilities" : [ "SubgroupShuffleINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupShuffleUpINTEL", + "opcode" : 5573, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Previous'" }, + { "kind" : "IdRef", "name" : "'Current'" }, + { "kind" : "IdRef", "name" : "'Delta'" } + ], + "capabilities" : [ "SubgroupShuffleINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupShuffleXorINTEL", + "opcode" : 5574, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Data'" }, + { "kind" : "IdRef", "name" : "'Value'" } + ], + "capabilities" : [ "SubgroupShuffleINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupBlockReadINTEL", + "opcode" : 5575, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Ptr'" } + ], + "capabilities" : [ "SubgroupBufferBlockIOINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupBlockWriteINTEL", + "opcode" : 5576, + "operands" : [ + { "kind" : "IdRef", "name" : "'Ptr'" }, + { "kind" : "IdRef", "name" : "'Data'" } + ], + "capabilities" : [ "SubgroupBufferBlockIOINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupImageBlockReadINTEL", + "opcode" : 5577, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Image'" }, + { "kind" : "IdRef", "name" : "'Coordinate'" } + ], + "capabilities" : [ "SubgroupImageBlockIOINTEL" ], + "version" : "None" + }, + { + "opname" : "OpSubgroupImageBlockWriteINTEL", + "opcode" : 5578, + "operands" : [ + { "kind" : "IdRef", "name" : "'Image'" }, + { "kind" : "IdRef", "name" : "'Coordinate'" }, + { "kind" : "IdRef", "name" : "'Data'" } + ], + "capabilities" : [ "SubgroupImageBlockIOINTEL" ], + "version" : "None" } ], "operand_kinds" : [ @@ -3430,15 +3574,16 @@ }, { "enumerant" : "DependencyInfinite", - "value" : "0x0004" + "value" : "0x0004", + "version" : "1.1" }, { "enumerant" : "DependencyLength", "value" : "0x0008", "parameters" : [ { "kind" : "LiteralInteger" } - ] - + ], + "version" : "1.1" } ] }, @@ -3856,12 +4001,14 @@ { "enumerant" : "Initializer", "value" : 33, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version" : "1.1" }, { "enumerant" : "Finalizer", "value" : 34, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version" : "1.1" }, { "enumerant" : "SubgroupSize", @@ -3869,7 +4016,8 @@ "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" } - ] + ], + "version" : "1.1" }, { "enumerant" : "SubgroupsPerWorkgroup", @@ -3877,7 +4025,8 @@ "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" } - ] + ], + "version" : "1.1" }, { "enumerant" : "SubgroupsPerWorkgroupId", @@ -3885,7 +4034,8 @@ "capabilities" : [ "SubgroupDispatch" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" } - ] + ], + "version" : "1.2" }, { "enumerant" : "LocalSizeId", @@ -3894,7 +4044,8 @@ { "kind" : "IdRef", "name" : "'x size'" }, { "kind" : "IdRef", "name" : "'y size'" }, { "kind" : "IdRef", "name" : "'z size'" } - ] + ], + "version" : "1.2" }, { "enumerant" : "LocalSizeHintId", @@ -3902,12 +4053,20 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Local Size Hint'" } - ] + ], + "version" : "1.2" }, { "enumerant" : "PostDepthCoverage", "value" : 4446, - "capabilities" : [ "SampleMaskPostDepthCoverage" ] + "capabilities" : [ "SampleMaskPostDepthCoverage" ], + "version" : "None" + }, + { + "enumerant" : "StencilRefReplacingEXT", + "value" : 5027, + "capabilities" : [ "StencilExportEXT" ], + "version" : "None" } ] }, @@ -3975,7 +4134,9 @@ "extensions" : [ "SPV_KHR_storage_buffer_storage_class", "SPV_KHR_variable_pointers" - ] + ], + "capabilities" : [ "Shader" ], + "version" : "None" } ] }, @@ -4473,47 +4634,19 @@ "enumerants" : [ { "enumerant" : "RTE", - "value" : 0, - "capabilities" : [ - "Kernel", - "StorageUniformBufferBlock16", - "StorageUniform16", - "StoragePushConstant16", - "StorageInputOutput16" - ] + "value" : 0 }, { "enumerant" : "RTZ", - "value" : 1, - "capabilities" : [ - "Kernel", - "StorageUniformBufferBlock16", - "StorageUniform16", - "StoragePushConstant16", - "StorageInputOutput16" - ] + "value" : 1 }, { "enumerant" : "RTP", - "value" : 2, - "capabilities" : [ - "Kernel", - "StorageUniformBufferBlock16", - "StorageUniform16", - "StoragePushConstant16", - "StorageInputOutput16" - ] + "value" : 2 }, { "enumerant" : "RTN", - "value" : 3, - "capabilities" : [ - "Kernel", - "StorageUniformBufferBlock16", - "StorageUniform16", - "StoragePushConstant16", - "StorageInputOutput16" - ] + "value" : 3 } ] }, @@ -4827,13 +4960,6 @@ { "enumerant" : "FPRoundingMode", "value" : 39, - "capabilities" : [ - "Kernel", - "StorageUniformBufferBlock16", - "StorageUniform16", - "StoragePushConstant16", - "StorageInputOutput16" - ], "parameters" : [ { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" } ] @@ -4882,7 +5008,8 @@ "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" } - ] + ], + "version" : "1.1" }, { "enumerant" : "AlignmentId", @@ -4890,7 +5017,8 @@ "capabilities" : [ "Kernel" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Alignment'" } - ] + ], + "version" : "1.2" }, { "enumerant" : "MaxByteOffsetId", @@ -4898,31 +5026,37 @@ "capabilities" : [ "Addresses" ], "parameters" : [ { "kind" : "IdRef", "name" : "'Max Byte Offset'" } - ] + ], + "version" : "1.2" }, { "enumerant" : "ExplicitInterpAMD", - "value" : 4999 + "value" : 4999, + "version" : "None" }, { "enumerant" : "OverrideCoverageNV", "value" : 5248, - "capabilities" : [ "SampleMaskOverrideCoverageNV" ] + "capabilities" : [ "SampleMaskOverrideCoverageNV" ], + "version" : "None" }, { "enumerant" : "PassthroughNV", "value" : 5250, - "capabilities" : [ "GeometryShaderPassthroughNV" ] + "capabilities" : [ "GeometryShaderPassthroughNV" ], + "version" : "None" }, { "enumerant" : "ViewportRelativeNV", "value" : 5252, - "capabilities" : [ "ShaderViewportMaskNV" ] + "capabilities" : [ "ShaderViewportMaskNV" ], + "version" : "None" }, { "enumerant" : "SecondaryViewportRelativeNV", "value" : 5256, "capabilities" : [ "ShaderStereoViewNV" ], + "version" : "None", "parameters" : [ { "kind" : "LiteralInteger", "name" : "'Offset'" } ] @@ -5031,7 +5165,7 @@ { "enumerant" : "SampleMask", "value" : 20, - "capabilities" : [ "SampleRateShading" ] + "capabilities" : [ "Shader" ] }, { "enumerant" : "FragDepth", @@ -5135,105 +5269,139 @@ { "enumerant" : "SubgroupEqMaskKHR", "value" : 4416, - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "enumerant" : "SubgroupGeMaskKHR", "value" : 4417, - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "enumerant" : "SubgroupGtMaskKHR", "value" : 4418, - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "enumerant" : "SubgroupLeMaskKHR", "value" : 4419, - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "enumerant" : "SubgroupLtMaskKHR", "value" : 4420, - "capabilities" : [ "SubgroupBallotKHR" ] + "capabilities" : [ "SubgroupBallotKHR" ], + "version" : "None" }, { "enumerant" : "BaseVertex", "value" : 4424, - "capabilities" : [ "DrawParameters" ] + "capabilities" : [ "DrawParameters" ], + "version" : "None" }, { "enumerant" : "BaseInstance", "value" : 4425, - "capabilities" : [ "DrawParameters" ] + "capabilities" : [ "DrawParameters" ], + "version" : "None" }, { "enumerant" : "DrawIndex", "value" : 4426, - "capabilities" : [ "DrawParameters" ] + "capabilities" : [ "DrawParameters" ], + "version" : "None" }, { "enumerant" : "DeviceIndex", "value" : 4438, - "capabilities" : [ "DeviceGroup" ] + "capabilities" : [ "DeviceGroup" ], + "version" : "None" }, { "enumerant" : "ViewIndex", "value" : 4440, - "capabilities" : [ "MultiView" ] + "capabilities" : [ "MultiView" ], + "version" : "None" }, { "enumerant" : "BaryCoordNoPerspAMD", - "value" : 4992 + "value" : 4992, + "version" : "None" }, { "enumerant" : "BaryCoordNoPerspCentroidAMD", - "value" : 4993 + "value" : 4993, + "version" : "None" }, { "enumerant" : "BaryCoordNoPerspSampleAMD", - "value" : 4994 + "value" : 4994, + "version" : "None" }, { "enumerant" : "BaryCoordSmoothAMD", - "value" : 4995 + "value" : 4995, + "version" : "None" }, { "enumerant" : "BaryCoordSmoothCentroidAMD", - "value" : 4996 + "value" : 4996, + "version" : "None" }, { "enumerant" : "BaryCoordSmoothSampleAMD", - "value" : 4997 + "value" : 4997, + "version" : "None" }, { "enumerant" : "BaryCoordPullModelAMD", - "value" : 4998 + "value" : 4998, + "version" : "None" + }, + { + "enumerant" : "FragStencilRefEXT", + "value" : 5014, + "capabilities" : [ "StencilExportEXT" ], + "version" : "None" }, { "enumerant" : "ViewportMaskNV", "value" : 5253, - "capabilities" : [ "ShaderViewportMaskNV" ] + "capabilities" : [ "ShaderViewportMaskNV" ], + "version" : "None" }, { "enumerant" : "SecondaryPositionNV", "value" : 5257, - "capabilities" : [ "ShaderStereoViewNV" ] + "capabilities" : [ "ShaderStereoViewNV" ], + "version" : "None" }, { "enumerant" : "SecondaryViewportMaskNV", "value" : 5258, - "capabilities" : [ "ShaderStereoViewNV" ] + "capabilities" : [ "ShaderStereoViewNV" ], + "version" : "None" }, { "enumerant" : "PositionPerViewNV", "value" : 5261, - "capabilities" : [ "PerViewAttributesNV" ] + "capabilities" : [ "PerViewAttributesNV" ], + "version" : "None" }, { "enumerant" : "ViewportMaskPerViewNV", "value" : 5262, - "capabilities" : [ "PerViewAttributesNV" ] + "capabilities" : [ "PerViewAttributesNV" ], + "version" : "None" + }, + { + "enumerant" : "FullyCoveredEXT", + "value" : 5264, + "capabilities" : [ "FragmentFullyCoveredEXT" ], + "version" : "None" } ] }, @@ -5581,42 +5749,51 @@ { "enumerant" : "SubgroupDispatch", "value" : 58, - "capabilities" : [ "DeviceEnqueue" ] + "capabilities" : [ "DeviceEnqueue" ], + "version" : "1.1" }, { "enumerant" : "NamedBarrier", "value" : 59, - "capabilities" : [ "Kernel" ] + "capabilities" : [ "Kernel" ], + "version" : "1.1" }, { "enumerant" : "PipeStorage", "value" : 60, - "capabilities" : [ "Pipes" ] + "capabilities" : [ "Pipes" ], + "version" : "1.1" }, { "enumerant" : "SubgroupBallotKHR", "value" : 4423, - "extensions" : [ "SPV_KHR_shader_ballot" ] + "extensions" : [ "SPV_KHR_shader_ballot" ], + "version" : "None" }, { "enumerant" : "DrawParameters", "value" : 4427, - "extensions" : [ "SPV_KHR_shader_draw_parameters" ] + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_KHR_shader_draw_parameters" ], + "version" : "None" }, { "enumerant" : "SubgroupVoteKHR", "value" : 4431, - "extensions" : [ "SPV_KHR_subgroup_vote" ] + "extensions" : [ "SPV_KHR_subgroup_vote" ], + "version" : "None" }, { "enumerant" : "StorageBuffer16BitAccess", "value" : 4433, - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "StorageUniformBufferBlock16", "value" : 4433, - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "UniformAndStorageBuffer16BitAccess", @@ -5625,7 +5802,8 @@ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "StorageUniform16", @@ -5634,92 +5812,160 @@ "StorageBuffer16BitAccess", "StorageUniformBufferBlock16" ], - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "StoragePushConstant16", "value" : 4435, - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "StorageInputOutput16", "value" : 4436, - "extensions" : [ "SPV_KHR_16bit_storage" ] + "extensions" : [ "SPV_KHR_16bit_storage" ], + "version" : "None" }, { "enumerant" : "DeviceGroup", "value" : 4437, - "extensions" : [ "SPV_KHR_device_group" ] + "version" : "None" }, { "enumerant" : "MultiView", "value" : 4439, "capabilities" : [ "Shader" ], - "extensions" : [ "SPV_KHR_multiview" ] + "extensions" : [ "SPV_KHR_multiview" ], + "version" : "None" }, { "enumerant" : "VariablePointersStorageBuffer", "value" : 4441, "capabilities" : [ "Shader" ], - "extensions" : [ "SPV_KHR_variable_pointers" ] + "extensions" : [ "SPV_KHR_variable_pointers" ], + "version" : "None" }, { "enumerant" : "VariablePointers", "value" : 4442, "capabilities" : [ "VariablePointersStorageBuffer" ], - "extensions" : [ "SPV_KHR_variable_pointers" ] + "extensions" : [ "SPV_KHR_variable_pointers" ], + "version" : "None" }, - { "enumerant" : "AtomicStorageOps", + { + "enumerant" : "AtomicStorageOps", "value" : 4445, - "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ] + "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ], + "version" : "None" }, { "enumerant" : "SampleMaskPostDepthCoverage", "value" : 4447, - "capabilities" : [ "SampleRateShading" ], - "extensions" : [ "SPV_KHR_post_depth_coverage" ] + "extensions" : [ "SPV_KHR_post_depth_coverage" ], + "version" : "None" }, { "enumerant" : "ImageGatherBiasLodAMD", "value" : 5009, "capabilities" : [ "Shader" ], - "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ] + "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ], + "version" : "None" + }, + { + "enumerant" : "FragmentMaskAMD", + "value" : 5010, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_AMD_shader_fragment_mask" ], + "version" : "None" + }, + { + "enumerant" : "StencilExportEXT", + "value" : 5013, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_EXT_shader_stencil_export" ], + "version" : "None" + }, + { + "enumerant" : "ImageReadWriteLodAMD", + "value" : 5015, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ], + "version" : "None" }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, "capabilities" : [ "SampleRateShading" ], - "extensions" : [ "SPV_NV_sample_mask_override_coverage" ] + "extensions" : [ "SPV_NV_sample_mask_override_coverage" ], + "version" : "None" }, { "enumerant" : "GeometryShaderPassthroughNV", "value" : 5251, "capabilities" : [ "Geometry" ], - "extensions" : [ "SPV_NV_geometry_shader_passthrough" ] + "extensions" : [ "SPV_NV_geometry_shader_passthrough" ], + "version" : "None" + }, + { + "enumerant" : "ShaderViewportIndexLayerEXT", + "value" : 5254, + "capabilities" : [ "MultiViewport" ], + "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ], + "version" : "None" }, { "enumerant" : "ShaderViewportIndexLayerNV", "value" : 5254, "capabilities" : [ "MultiViewport" ], - "extensions" : [ "SPV_NV_viewport_array2" ] + "extensions" : [ "SPV_NV_viewport_array2" ], + "version" : "None" }, { "enumerant" : "ShaderViewportMaskNV", "value" : 5255, "capabilities" : [ "ShaderViewportIndexLayerNV" ], - "extensions" : [ "SPV_NV_viewport_array2" ] + "extensions" : [ "SPV_NV_viewport_array2" ], + "version" : "None" }, { "enumerant" : "ShaderStereoViewNV", "value" : 5259, "capabilities" : [ "ShaderViewportMaskNV" ], - "extensions" : [ "SPV_NV_stereo_view_rendering" ] + "extensions" : [ "SPV_NV_stereo_view_rendering" ], + "version" : "None" }, { "enumerant" : "PerViewAttributesNV", "value" : 5260, "capabilities" : [ "MultiView" ], - "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ] + "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ], + "version" : "None" + }, + { + "enumerant" : "FragmentFullyCoveredEXT", + "value" : 5265, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_EXT_fragment_fully_covered" ], + "version" : "None" + }, + { + "enumerant" : "SubgroupShuffleINTEL", + "value" : 5568, + "extensions" : [ "SPV_INTEL_subgroups" ], + "version" : "None" + }, + { + "enumerant" : "SubgroupBufferBlockIOINTEL", + "value" : 5569, + "extensions" : [ "SPV_INTEL_subgroups" ], + "version" : "None" + }, + { + "enumerant" : "SubgroupImageBlockIOINTEL", + "value" : 5570, + "extensions" : [ "SPV_INTEL_subgroups" ], + "version" : "None" } ] }, diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h index 61559a1c9ca..233dc6d6916 100644 --- a/src/compiler/spirv/spirv.h +++ b/src/compiler/spirv/spirv.h @@ -1,5 +1,5 @@ /* -** Copyright (c) 2014-2017 The Khronos Group Inc. +** Copyright (c) 2014-2018 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"), @@ -51,11 +51,11 @@ typedef unsigned int SpvId; #define SPV_VERSION 0x10200 -#define SPV_REVISION 1 +#define SPV_REVISION 3 static const unsigned int SpvMagicNumber = 0x07230203; static const unsigned int SpvVersion = 0x00010200; -static const unsigned int SpvRevision = 1; +static const unsigned int SpvRevision = 3; static const unsigned int SpvOpCodeMask = 0xffff; static const unsigned int SpvWordCountShift = 16; @@ -134,6 +134,7 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeLocalSizeId = 38, SpvExecutionModeLocalSizeHintId = 39, SpvExecutionModePostDepthCoverage = 4446, + SpvExecutionModeStencilRefReplacingEXT = 5027, SpvExecutionModeMax = 0x7fffffff, } SpvExecutionMode; @@ -458,11 +459,13 @@ typedef enum SpvBuiltIn_ { SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, SpvBuiltInBaryCoordSmoothSampleAMD = 4997, SpvBuiltInBaryCoordPullModelAMD = 4998, + SpvBuiltInFragStencilRefEXT = 5014, SpvBuiltInViewportMaskNV = 5253, SpvBuiltInSecondaryPositionNV = 5257, SpvBuiltInSecondaryViewportMaskNV = 5258, SpvBuiltInPositionPerViewNV = 5261, SpvBuiltInViewportMaskPerViewNV = 5262, + SpvBuiltInFullyCoveredEXT = 5264, SpvBuiltInMax = 0x7fffffff, } SpvBuiltIn; @@ -661,12 +664,20 @@ typedef enum SpvCapability_ { SpvCapabilityAtomicStorageOps = 4445, SpvCapabilitySampleMaskPostDepthCoverage = 4447, SpvCapabilityImageGatherBiasLodAMD = 5009, + SpvCapabilityFragmentMaskAMD = 5010, + SpvCapabilityStencilExportEXT = 5013, + SpvCapabilityImageReadWriteLodAMD = 5015, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, + SpvCapabilityShaderViewportIndexLayerEXT = 5254, SpvCapabilityShaderViewportIndexLayerNV = 5254, SpvCapabilityShaderViewportMaskNV = 5255, SpvCapabilityShaderStereoViewNV = 5259, SpvCapabilityPerViewAttributesNV = 5260, + SpvCapabilityFragmentFullyCoveredEXT = 5265, + SpvCapabilitySubgroupShuffleINTEL = 5568, + SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, + SpvCapabilitySubgroupImageBlockIOINTEL = 5570, SpvCapabilityMax = 0x7fffffff, } SpvCapability; @@ -991,6 +1002,16 @@ typedef enum SpvOp_ { SpvOpGroupFMaxNonUniformAMD = 5005, SpvOpGroupUMaxNonUniformAMD = 5006, SpvOpGroupSMaxNonUniformAMD = 5007, + SpvOpFragmentMaskFetchAMD = 5011, + SpvOpFragmentFetchAMD = 5012, + SpvOpSubgroupShuffleINTEL = 5571, + SpvOpSubgroupShuffleDownINTEL = 5572, + SpvOpSubgroupShuffleUpINTEL = 5573, + SpvOpSubgroupShuffleXorINTEL = 5574, + SpvOpSubgroupBlockReadINTEL = 5575, + SpvOpSubgroupBlockWriteINTEL = 5576, + SpvOpSubgroupImageBlockReadINTEL = 5577, + SpvOpSubgroupImageBlockWriteINTEL = 5578, SpvOpMax = 0x7fffffff, } SpvOp; |