aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Kessenich <johnkslang@users.noreply.github.com>2020-03-17 07:49:00 -0600
committerGitHub <noreply@github.com>2020-03-17 07:49:00 -0600
commitf8bf11a0253a32375c32cad92c841237b96696c0 (patch)
treee729c6213e25b97de8bb591a8dcb7019877184ee
parent9e8e6aff3bcad8968c0da816da36b2367b53b7c2 (diff)
parentfdbc0d1c436e2e25fd07ab8455172e37bad65a13 (diff)
downloadplatform_external_shaderc_spirv-headers-f8bf11a0253a32375c32cad92c841237b96696c0.tar.gz
platform_external_shaderc_spirv-headers-f8bf11a0253a32375c32cad92c841237b96696c0.tar.bz2
platform_external_shaderc_spirv-headers-f8bf11a0253a32375c32cad92c841237b96696c0.zip
Merge pull request #149 from dgkoch/prov_ray_tracing
Add SPV_KHR_ray_{tracing,query} to headers
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json978
-rw-r--r--include/spirv/unified1/spirv.cs111
-rw-r--r--include/spirv/unified1/spirv.h134
-rw-r--r--include/spirv/unified1/spirv.hpp135
-rw-r--r--include/spirv/unified1/spirv.hpp11135
-rw-r--r--include/spirv/unified1/spirv.json112
-rw-r--r--include/spirv/unified1/spirv.lua106
-rw-r--r--include/spirv/unified1/spirv.py106
-rw-r--r--include/spirv/unified1/spv.d111
-rw-r--r--tools/buildHeaders/header.cpp4
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp22
-rw-r--r--tools/buildHeaders/jsonToSpirv.h6
12 files changed, 1884 insertions, 76 deletions
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 45bac52..824ae4b 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -1,6 +1,6 @@
{
"copyright" : [
- "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "Copyright (c) 2014-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\"),",
@@ -4400,26 +4400,54 @@
{ "kind" : "IdRef", "name" : "'Hit'" },
{ "kind" : "IdRef", "name" : "'HitKind'" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpReportIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 5334,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Hit'" },
+ { "kind" : "IdRef", "name" : "'HitKind'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"opname" : "OpIgnoreIntersectionNV",
"class" : "Reserved",
"opcode" : 5335,
-
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpIgnoreIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 5335,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"opname" : "OpTerminateRayNV",
"class" : "Reserved",
"opcode" : 5336,
-
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTerminateRayKHR",
+ "class" : "Reserved",
+ "opcode" : 5336,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
@@ -4440,8 +4468,30 @@
{ "kind" : "IdRef", "name" : "'Ray Tmax'" },
{ "kind" : "IdRef", "name" : "'PayloadId'" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTraceRayKHR",
+ "class" : "Reserved",
+ "opcode" : 5337,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'Accel'" },
+ { "kind" : "IdRef", "name" : "'Ray Flags'" },
+ { "kind" : "IdRef", "name" : "'Cull Mask'" },
+ { "kind" : "IdRef", "name" : "'SBT Offset'" },
+ { "kind" : "IdRef", "name" : "'SBT Stride'" },
+ { "kind" : "IdRef", "name" : "'Miss Index'" },
+ { "kind" : "IdRef", "name" : "'Ray Origin'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+ { "kind" : "IdRef", "name" : "'Ray Direction'" },
+ { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+ { "kind" : "IdRef", "name" : "'PayloadId'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
@@ -4451,11 +4501,479 @@
"operands" : [
{ "kind" : "IdResult" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
"version" : "None"
},
{
+ "opname" : "OpTypeAccelerationStructureKHR",
+ "class" : "Reserved",
+ "opcode" : 5341,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeRayQueryProvisionalKHR",
+ "class" : "Reserved",
+ "opcode" : 4472,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryInitializeKHR",
+ "class" : "Reserved",
+ "opcode" : 4473,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Accel'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayFlags'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'CullMask'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayOrigin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMin'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayDirection'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayTMax'"
+ }
+
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryTerminateKHR",
+ "class" : "Reserved",
+ "opcode" : 4474,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGenerateIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4475,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'HitT'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryConfirmIntersectionKHR",
+ "class" : "Reserved",
+ "opcode" : 4476,
+ "operands" : [
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryProceedKHR",
+ "class" : "Reserved",
+ "opcode" : 4477,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTypeKHR",
+ "class" : "Reserved",
+ "opcode" : 4479,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayTMinKHR",
+ "class" : "Reserved",
+ "opcode" : 6016,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetRayFlagsKHR",
+ "class" : "Reserved",
+ "opcode" : 6017,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionTKHR",
+ "class" : "Reserved",
+ "opcode" : 6018,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6019,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceIdKHR",
+ "class" : "Reserved",
+ "opcode" : 6020,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
+ "class" : "Reserved",
+ "opcode" : 6021,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionGeometryIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6022,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionPrimitiveIndexKHR",
+ "class" : "Reserved",
+ "opcode" : 6023,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionBarycentricsKHR",
+ "class" : "Reserved",
+ "opcode" : 6024,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionFrontFaceKHR",
+ "class" : "Reserved",
+ "opcode" : 6025,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+ "class" : "Reserved",
+ "opcode" : 6026,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6027,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6028,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetWorldRayDirectionKHR",
+ "class" : "Reserved",
+ "opcode" : 6029,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+
+ {
+ "opname" : "OpRayQueryGetWorldRayOriginKHR",
+ "class" : "Reserved",
+ "opcode" : 6030,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionObjectToWorldKHR",
+ "class" : "Reserved",
+ "opcode" : 6031,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRayQueryGetIntersectionWorldToObjectKHR",
+ "class" : "Reserved",
+ "opcode" : 6032,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ {
+ "kind" : "IdRef",
+ "name" : "'RayQuery'"
+ },
+ {
+ "kind" : "IdRef",
+ "name" : "'Intersection'"
+ }
+ ],
+ "capabilities" : [ "RayQueryProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpExecuteCallableNV",
"class" : "Reserved",
"opcode" : 5344,
@@ -4464,8 +4982,21 @@
{ "kind" : "IdRef", "name" : "'SBT Index'" },
{ "kind" : "IdRef", "name" : "'Callable DataId'" }
],
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpExecuteCallableKHR",
+ "class" : "Reserved",
+ "opcode" : 5344,
+ "operands" : [
+
+ { "kind" : "IdRef", "name" : "'SBT Index'" },
+ { "kind" : "IdRef", "name" : "'Callable DataId'" }
+ ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
@@ -6943,6 +7474,67 @@
]
},
{
+ "category" : "BitEnum",
+ "kind" : "RayFlags",
+ "enumerants" : [
+ {
+ "enumerant" : "NoneKHR",
+ "value" : "0x0000",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "OpaqueKHR",
+ "value" : "0x0001",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "NoOpaqueKHR",
+ "value" : "0x0002",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "TerminateOnFirstHitKHR",
+ "value" : "0x0004",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipClosestHitShaderKHR",
+ "value" : "0x0008",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullBackFacingTrianglesKHR",
+ "value" : "0x0010",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullFrontFacingTrianglesKHR",
+ "value" : "0x0020",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullOpaqueKHR",
+ "value" : "0x0040",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "CullNoOpaqueKHR",
+ "value" : "0x0080",
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipTrianglesKHR",
+ "value" : "0x0100",
+ "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "SkipAABBsKHR",
+ "value" : "0x0200",
+ "capabilities" : [ "RayTraversalPrimitiveCullingProvisionalKHR" ]
+ }
+ ]
+ },
+ {
"category" : "ValueEnum",
"kind" : "SourceLanguage",
"enumerants" : [
@@ -7026,37 +7618,73 @@
{
"enumerant" : "RayGenerationNV",
"value" : 5313,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGenerationKHR",
+ "value" : 5313,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "IntersectionNV",
"value" : 5314,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IntersectionKHR",
+ "value" : 5314,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "AnyHitNV",
"value" : 5315,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AnyHitKHR",
+ "value" : 5315,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "ClosestHitNV",
"value" : 5316,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ClosestHitKHR",
+ "value" : 5316,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "MissNV",
"value" : 5317,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "MissKHR",
+ "value" : 5317,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "CallableNV",
"value" : 5318,
- "capabilities" : [ "RayTracingNV" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableKHR",
+ "value" : 5318,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
}
]
@@ -7581,43 +8209,85 @@
{
"enumerant" : "CallableDataNV",
"value" : 5328,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CallableDataKHR",
+ "value" : 5328,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingCallableDataNV",
"value" : 5329,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingCallableDataKHR",
+ "value" : 5329,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "RayPayloadNV",
"value" : 5338,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayPayloadKHR",
+ "value" : 5338,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "HitAttributeNV",
"value" : 5339,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitAttributeKHR",
+ "value" : 5339,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayPayloadNV",
"value" : 5342,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayPayloadKHR",
+ "value" : 5342,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
"enumerant" : "ShaderRecordBufferNV",
"value" : 5343,
- "extensions" : [ "SPV_NV_ray_tracing" ],
- "capabilities" : [ "RayTracingNV" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ShaderRecordBufferKHR",
+ "value" : 5343,
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"version" : "None"
},
{
@@ -8735,7 +9405,7 @@
{
"enumerant" : "PrimitiveId",
"value" : 7,
- "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV" ]
+ "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingProvisionalKHR" ]
},
{
"enumerant" : "InvocationId",
@@ -9193,99 +9863,204 @@
{
"enumerant" : "LaunchIdNV",
"value" : 5319,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchIdKHR",
+ "value" : 5319,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "LaunchSizeNV",
"value" : 5320,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LaunchSizeKHR",
+ "value" : 5320,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayOriginNV",
"value" : 5321,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayOriginKHR",
+ "value" : 5321,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldRayDirectionNV",
"value" : 5322,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldRayDirectionKHR",
+ "value" : 5322,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayOriginNV",
"value" : 5323,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayOriginKHR",
+ "value" : 5323,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectRayDirectionNV",
"value" : 5324,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectRayDirectionKHR",
+ "value" : 5324,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTminNV",
"value" : 5325,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTminKHR",
+ "value" : 5325,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "RayTmaxNV",
"value" : 5326,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTmaxKHR",
+ "value" : 5326,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "InstanceCustomIndexNV",
"value" : 5327,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "InstanceCustomIndexKHR",
+ "value" : 5327,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "ObjectToWorldNV",
"value" : 5330,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ObjectToWorldKHR",
+ "value" : 5330,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "WorldToObjectNV",
"value" : 5331,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorldToObjectKHR",
+ "value" : 5331,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "HitTNV",
"value" : 5332,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitTKHR",
+ "value" : 5332,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "HitKindNV",
"value" : 5333,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HitKindKHR",
+ "value" : 5333,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
"enumerant" : "IncomingRayFlagsNV",
"value" : 5351,
- "capabilities" : [ "RayTracingNV" ],
- "extensions" : [ "SPV_NV_ray_tracing" ],
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IncomingRayFlagsKHR",
+ "value" : 5351,
+ "capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayGeometryIndexKHR",
+ "value" : 5352,
+ "capabilities" : [ "RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
"version" : "None"
},
{
@@ -9353,6 +10128,11 @@
"value" : 5,
"capabilities" : [ "VulkanMemoryModel" ],
"version" : "1.5"
+ },
+ {
+ "enumerant" : "ShaderCallKHR",
+ "value" : 6,
+ "capabilities" : [ "RayTracingProvisionalKHR" ]
}
]
},
@@ -9925,6 +10705,20 @@
"version" : "1.4"
},
{
+ "enumerant" : "RayQueryProvisionalKHR",
+ "value" : 4471,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_query" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RayTraversalPrimitiveCullingProvisionalKHR",
+ "value" : 4478,
+ "capabilities" : [ "RayQueryProvisionalKHR","RayTracingProvisionalKHR" ],
+ "extensions" : [ "SPV_KHR_ray_query","SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "Float16ImageAMD",
"value" : 5008,
"capabilities" : [ "Shader" ],
@@ -10273,6 +11067,13 @@
"version" : "None"
},
{
+ "enumerant" : "RayTracingProvisionalKHR",
+ "value" : 5353,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_ray_tracing" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "CooperativeMatrixNV",
"value" : 5357,
"capabilities" : [ "Shader" ],
@@ -10366,6 +11167,59 @@
]
},
{
+ "category" : "ValueEnum",
+ "kind" : "RayQueryIntersection",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCommittedIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCommittedIntersectionNoneKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionTriangleKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCommittedIntersectionGeneratedKHR",
+ "value" : 2,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "RayQueryCandidateIntersectionType",
+ "enumerants" : [
+ {
+ "enumerant" : "RayQueryCandidateIntersectionTriangleKHR",
+ "value" : 0,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ },
+ {
+ "enumerant" : "RayQueryCandidateIntersectionAABBKHR",
+ "value" : 1,
+ "capabilities" : [ "RayQueryProvisionalKHR" ]
+ }
+ ]
+ },
+ {
"category" : "Id",
"kind" : "IdResultType",
"doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 705aa59..c5ddff9 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -74,11 +74,17 @@ namespace Spv
Kernel = 6,
TaskNV = 5267,
MeshNV = 5268,
+ RayGenerationKHR = 5313,
RayGenerationNV = 5313,
+ IntersectionKHR = 5314,
IntersectionNV = 5314,
+ AnyHitKHR = 5315,
AnyHitNV = 5315,
+ ClosestHitKHR = 5316,
ClosestHitNV = 5316,
+ MissKHR = 5317,
MissNV = 5317,
+ CallableKHR = 5318,
CallableNV = 5318,
}
@@ -175,11 +181,17 @@ namespace Spv
AtomicCounter = 10,
Image = 11,
StorageBuffer = 12,
+ CallableDataKHR = 5328,
CallableDataNV = 5328,
+ IncomingCallableDataKHR = 5329,
IncomingCallableDataNV = 5329,
+ RayPayloadKHR = 5338,
RayPayloadNV = 5338,
+ HitAttributeKHR = 5339,
HitAttributeNV = 5339,
+ IncomingRayPayloadKHR = 5342,
IncomingRayPayloadNV = 5342,
+ ShaderRecordBufferKHR = 5343,
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
@@ -556,20 +568,35 @@ namespace Spv
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ LaunchIdKHR = 5319,
LaunchIdNV = 5319,
+ LaunchSizeKHR = 5320,
LaunchSizeNV = 5320,
+ WorldRayOriginKHR = 5321,
WorldRayOriginNV = 5321,
+ WorldRayDirectionKHR = 5322,
WorldRayDirectionNV = 5322,
+ ObjectRayOriginKHR = 5323,
ObjectRayOriginNV = 5323,
+ ObjectRayDirectionKHR = 5324,
ObjectRayDirectionNV = 5324,
+ RayTminKHR = 5325,
RayTminNV = 5325,
+ RayTmaxKHR = 5326,
RayTmaxNV = 5326,
+ InstanceCustomIndexKHR = 5327,
InstanceCustomIndexNV = 5327,
+ ObjectToWorldKHR = 5330,
ObjectToWorldNV = 5330,
+ WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
WarpsPerSMNV = 5374,
SMCountNV = 5375,
WarpIDNV = 5376,
@@ -712,6 +739,7 @@ namespace Spv
Invocation = 4,
QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
}
public enum GroupOperation
@@ -837,6 +865,8 @@ namespace Spv
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -890,6 +920,7 @@ namespace Spv
PhysicalStorageBufferAddresses = 5347,
PhysicalStorageBufferAddressesEXT = 5347,
ComputeDerivativeGroupLinearNV = 5350,
+ RayTracingProvisionalKHR = 5353,
CooperativeMatrixNV = 5357,
FragmentShaderSampleInterlockEXT = 5363,
FragmentShaderShadingRateInterlockEXT = 5372,
@@ -906,6 +937,54 @@ namespace Spv
SubgroupAvcMotionEstimationChromaINTEL = 5698,
}
+ public enum RayFlagsShift
+ {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ }
+
+ public enum RayFlagsMask
+ {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ }
+
+ public enum RayQueryIntersection
+ {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ }
+
+ public enum RayQueryCommittedIntersectionType
+ {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ }
+
+ public enum RayQueryCandidateIntersectionType
+ {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ }
+
public enum Op
{
OpNop = 0,
@@ -1258,6 +1337,13 @@ namespace Spv
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1272,11 +1358,17 @@ namespace Spv
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
@@ -1433,6 +1525,23 @@ namespace Spv
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
}
}
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 53928a4..92b34c3 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1,5 +1,5 @@
/*
-** Copyright (c) 2014-2019 The Khronos Group Inc.
+** Copyright (c) 2014-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"),
@@ -82,11 +82,17 @@ typedef enum SpvExecutionModel_ {
SpvExecutionModelKernel = 6,
SpvExecutionModelTaskNV = 5267,
SpvExecutionModelMeshNV = 5268,
+ SpvExecutionModelRayGenerationKHR = 5313,
SpvExecutionModelRayGenerationNV = 5313,
+ SpvExecutionModelIntersectionKHR = 5314,
SpvExecutionModelIntersectionNV = 5314,
+ SpvExecutionModelAnyHitKHR = 5315,
SpvExecutionModelAnyHitNV = 5315,
+ SpvExecutionModelClosestHitKHR = 5316,
SpvExecutionModelClosestHitNV = 5316,
+ SpvExecutionModelMissKHR = 5317,
SpvExecutionModelMissNV = 5317,
+ SpvExecutionModelCallableKHR = 5318,
SpvExecutionModelCallableNV = 5318,
SpvExecutionModelMax = 0x7fffffff,
} SpvExecutionModel;
@@ -183,11 +189,17 @@ typedef enum SpvStorageClass_ {
SpvStorageClassAtomicCounter = 10,
SpvStorageClassImage = 11,
SpvStorageClassStorageBuffer = 12,
+ SpvStorageClassCallableDataKHR = 5328,
SpvStorageClassCallableDataNV = 5328,
+ SpvStorageClassIncomingCallableDataKHR = 5329,
SpvStorageClassIncomingCallableDataNV = 5329,
+ SpvStorageClassRayPayloadKHR = 5338,
SpvStorageClassRayPayloadNV = 5338,
+ SpvStorageClassHitAttributeKHR = 5339,
SpvStorageClassHitAttributeNV = 5339,
+ SpvStorageClassIncomingRayPayloadKHR = 5342,
SpvStorageClassIncomingRayPayloadNV = 5342,
+ SpvStorageClassShaderRecordBufferKHR = 5343,
SpvStorageClassShaderRecordBufferNV = 5343,
SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349,
@@ -562,20 +574,35 @@ typedef enum SpvBuiltIn_ {
SpvBuiltInFragmentSizeNV = 5292,
SpvBuiltInFragInvocationCountEXT = 5293,
SpvBuiltInInvocationsPerPixelNV = 5293,
+ SpvBuiltInLaunchIdKHR = 5319,
SpvBuiltInLaunchIdNV = 5319,
+ SpvBuiltInLaunchSizeKHR = 5320,
SpvBuiltInLaunchSizeNV = 5320,
+ SpvBuiltInWorldRayOriginKHR = 5321,
SpvBuiltInWorldRayOriginNV = 5321,
+ SpvBuiltInWorldRayDirectionKHR = 5322,
SpvBuiltInWorldRayDirectionNV = 5322,
+ SpvBuiltInObjectRayOriginKHR = 5323,
SpvBuiltInObjectRayOriginNV = 5323,
+ SpvBuiltInObjectRayDirectionKHR = 5324,
SpvBuiltInObjectRayDirectionNV = 5324,
+ SpvBuiltInRayTminKHR = 5325,
SpvBuiltInRayTminNV = 5325,
+ SpvBuiltInRayTmaxKHR = 5326,
SpvBuiltInRayTmaxNV = 5326,
+ SpvBuiltInInstanceCustomIndexKHR = 5327,
SpvBuiltInInstanceCustomIndexNV = 5327,
+ SpvBuiltInObjectToWorldKHR = 5330,
SpvBuiltInObjectToWorldNV = 5330,
+ SpvBuiltInWorldToObjectKHR = 5331,
SpvBuiltInWorldToObjectNV = 5331,
+ SpvBuiltInHitTKHR = 5332,
SpvBuiltInHitTNV = 5332,
+ SpvBuiltInHitKindKHR = 5333,
SpvBuiltInHitKindNV = 5333,
+ SpvBuiltInIncomingRayFlagsKHR = 5351,
SpvBuiltInIncomingRayFlagsNV = 5351,
+ SpvBuiltInRayGeometryIndexKHR = 5352,
SpvBuiltInWarpsPerSMNV = 5374,
SpvBuiltInSMCountNV = 5375,
SpvBuiltInWarpIDNV = 5376,
@@ -713,6 +740,7 @@ typedef enum SpvScope_ {
SpvScopeInvocation = 4,
SpvScopeQueueFamily = 5,
SpvScopeQueueFamilyKHR = 5,
+ SpvScopeShaderCallKHR = 6,
SpvScopeMax = 0x7fffffff,
} SpvScope;
@@ -837,6 +865,8 @@ typedef enum SpvCapability_ {
SpvCapabilitySignedZeroInfNanPreserve = 4466,
SpvCapabilityRoundingModeRTE = 4467,
SpvCapabilityRoundingModeRTZ = 4468,
+ SpvCapabilityRayQueryProvisionalKHR = 4471,
+ SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010,
@@ -890,6 +920,7 @@ typedef enum SpvCapability_ {
SpvCapabilityPhysicalStorageBufferAddresses = 5347,
SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
+ SpvCapabilityRayTracingProvisionalKHR = 5353,
SpvCapabilityCooperativeMatrixNV = 5357,
SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
@@ -907,6 +938,53 @@ typedef enum SpvCapability_ {
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
+typedef enum SpvRayFlagsShift_ {
+ SpvRayFlagsOpaqueKHRShift = 0,
+ SpvRayFlagsNoOpaqueKHRShift = 1,
+ SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
+ SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
+ SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
+ SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
+ SpvRayFlagsCullOpaqueKHRShift = 6,
+ SpvRayFlagsCullNoOpaqueKHRShift = 7,
+ SpvRayFlagsSkipTrianglesKHRShift = 8,
+ SpvRayFlagsSkipAABBsKHRShift = 9,
+ SpvRayFlagsMax = 0x7fffffff,
+} SpvRayFlagsShift;
+
+typedef enum SpvRayFlagsMask_ {
+ SpvRayFlagsMaskNone = 0,
+ SpvRayFlagsOpaqueKHRMask = 0x00000001,
+ SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
+ SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
+ SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
+ SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
+ SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
+ SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
+ SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
+ SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
+ SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
+} SpvRayFlagsMask;
+
+typedef enum SpvRayQueryIntersection_ {
+ SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
+ SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
+ SpvRayQueryIntersectionMax = 0x7fffffff,
+} SpvRayQueryIntersection;
+
+typedef enum SpvRayQueryCommittedIntersectionType_ {
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
+ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
+ SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
+} SpvRayQueryCommittedIntersectionType;
+
+typedef enum SpvRayQueryCandidateIntersectionType_ {
+ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
+ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
+ SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
+} SpvRayQueryCandidateIntersectionType;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1258,6 +1336,13 @@ typedef enum SpvOp_ {
SpvOpSubgroupAnyKHR = 4429,
SpvOpSubgroupAllEqualKHR = 4430,
SpvOpSubgroupReadInvocationKHR = 4432,
+ SpvOpTypeRayQueryProvisionalKHR = 4472,
+ SpvOpRayQueryInitializeKHR = 4473,
+ SpvOpRayQueryTerminateKHR = 4474,
+ SpvOpRayQueryGenerateIntersectionKHR = 4475,
+ SpvOpRayQueryConfirmIntersectionKHR = 4476,
+ SpvOpRayQueryProceedKHR = 4477,
+ SpvOpRayQueryGetIntersectionTypeKHR = 4479,
SpvOpGroupIAddNonUniformAMD = 5000,
SpvOpGroupFAddNonUniformAMD = 5001,
SpvOpGroupFMinNonUniformAMD = 5002,
@@ -1272,11 +1357,17 @@ typedef enum SpvOp_ {
SpvOpImageSampleFootprintNV = 5283,
SpvOpGroupNonUniformPartitionNV = 5296,
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
+ SpvOpReportIntersectionKHR = 5334,
SpvOpReportIntersectionNV = 5334,
+ SpvOpIgnoreIntersectionKHR = 5335,
SpvOpIgnoreIntersectionNV = 5335,
+ SpvOpTerminateRayKHR = 5336,
SpvOpTerminateRayNV = 5336,
SpvOpTraceNV = 5337,
+ SpvOpTraceRayKHR = 5337,
+ SpvOpTypeAccelerationStructureKHR = 5341,
SpvOpTypeAccelerationStructureNV = 5341,
+ SpvOpExecuteCallableKHR = 5344,
SpvOpExecuteCallableNV = 5344,
SpvOpTypeCooperativeMatrixNV = 5358,
SpvOpCooperativeMatrixLoadNV = 5359,
@@ -1433,6 +1524,23 @@ typedef enum SpvOp_ {
SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ SpvOpRayQueryGetRayTMinKHR = 6016,
+ SpvOpRayQueryGetRayFlagsKHR = 6017,
+ SpvOpRayQueryGetIntersectionTKHR = 6018,
+ SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
+ SpvOpRayQueryGetWorldRayOriginKHR = 6030,
+ SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
SpvOpMax = 0x7fffffff,
} SpvOp;
@@ -1810,6 +1918,30 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeRayQueryProvisionalKHR: *hasResult = true; *hasResultType = false; break;
+ case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index ae99957..9f98683 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -78,11 +78,17 @@ enum ExecutionModel {
ExecutionModelKernel = 6,
ExecutionModelTaskNV = 5267,
ExecutionModelMeshNV = 5268,
+ ExecutionModelRayGenerationKHR = 5313,
ExecutionModelRayGenerationNV = 5313,
+ ExecutionModelIntersectionKHR = 5314,
ExecutionModelIntersectionNV = 5314,
+ ExecutionModelAnyHitKHR = 5315,
ExecutionModelAnyHitNV = 5315,
+ ExecutionModelClosestHitKHR = 5316,
ExecutionModelClosestHitNV = 5316,
+ ExecutionModelMissKHR = 5317,
ExecutionModelMissNV = 5317,
+ ExecutionModelCallableKHR = 5318,
ExecutionModelCallableNV = 5318,
ExecutionModelMax = 0x7fffffff,
};
@@ -179,11 +185,17 @@ enum StorageClass {
StorageClassAtomicCounter = 10,
StorageClassImage = 11,
StorageClassStorageBuffer = 12,
+ StorageClassCallableDataKHR = 5328,
StorageClassCallableDataNV = 5328,
+ StorageClassIncomingCallableDataKHR = 5329,
StorageClassIncomingCallableDataNV = 5329,
+ StorageClassRayPayloadKHR = 5338,
StorageClassRayPayloadNV = 5338,
+ StorageClassHitAttributeKHR = 5339,
StorageClassHitAttributeNV = 5339,
+ StorageClassIncomingRayPayloadKHR = 5342,
StorageClassIncomingRayPayloadNV = 5342,
+ StorageClassShaderRecordBufferKHR = 5343,
StorageClassShaderRecordBufferNV = 5343,
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
@@ -558,20 +570,35 @@ enum BuiltIn {
BuiltInFragmentSizeNV = 5292,
BuiltInFragInvocationCountEXT = 5293,
BuiltInInvocationsPerPixelNV = 5293,
+ BuiltInLaunchIdKHR = 5319,
BuiltInLaunchIdNV = 5319,
+ BuiltInLaunchSizeKHR = 5320,
BuiltInLaunchSizeNV = 5320,
+ BuiltInWorldRayOriginKHR = 5321,
BuiltInWorldRayOriginNV = 5321,
+ BuiltInWorldRayDirectionKHR = 5322,
BuiltInWorldRayDirectionNV = 5322,
+ BuiltInObjectRayOriginKHR = 5323,
BuiltInObjectRayOriginNV = 5323,
+ BuiltInObjectRayDirectionKHR = 5324,
BuiltInObjectRayDirectionNV = 5324,
+ BuiltInRayTminKHR = 5325,
BuiltInRayTminNV = 5325,
+ BuiltInRayTmaxKHR = 5326,
BuiltInRayTmaxNV = 5326,
+ BuiltInInstanceCustomIndexKHR = 5327,
BuiltInInstanceCustomIndexNV = 5327,
+ BuiltInObjectToWorldKHR = 5330,
BuiltInObjectToWorldNV = 5330,
+ BuiltInWorldToObjectKHR = 5331,
BuiltInWorldToObjectNV = 5331,
+ BuiltInHitTKHR = 5332,
BuiltInHitTNV = 5332,
+ BuiltInHitKindKHR = 5333,
BuiltInHitKindNV = 5333,
+ BuiltInIncomingRayFlagsKHR = 5351,
BuiltInIncomingRayFlagsNV = 5351,
+ BuiltInRayGeometryIndexKHR = 5352,
BuiltInWarpsPerSMNV = 5374,
BuiltInSMCountNV = 5375,
BuiltInWarpIDNV = 5376,
@@ -709,6 +736,7 @@ enum Scope {
ScopeInvocation = 4,
ScopeQueueFamily = 5,
ScopeQueueFamilyKHR = 5,
+ ScopeShaderCallKHR = 6,
ScopeMax = 0x7fffffff,
};
@@ -833,6 +861,8 @@ enum Capability {
CapabilitySignedZeroInfNanPreserve = 4466,
CapabilityRoundingModeRTE = 4467,
CapabilityRoundingModeRTZ = 4468,
+ CapabilityRayQueryProvisionalKHR = 4471,
+ CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
CapabilityFloat16ImageAMD = 5008,
CapabilityImageGatherBiasLodAMD = 5009,
CapabilityFragmentMaskAMD = 5010,
@@ -886,6 +916,7 @@ enum Capability {
CapabilityPhysicalStorageBufferAddresses = 5347,
CapabilityPhysicalStorageBufferAddressesEXT = 5347,
CapabilityComputeDerivativeGroupLinearNV = 5350,
+ CapabilityRayTracingProvisionalKHR = 5353,
CapabilityCooperativeMatrixNV = 5357,
CapabilityFragmentShaderSampleInterlockEXT = 5363,
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
@@ -903,6 +934,53 @@ enum Capability {
CapabilityMax = 0x7fffffff,
};
+enum RayFlagsShift {
+ RayFlagsOpaqueKHRShift = 0,
+ RayFlagsNoOpaqueKHRShift = 1,
+ RayFlagsTerminateOnFirstHitKHRShift = 2,
+ RayFlagsSkipClosestHitShaderKHRShift = 3,
+ RayFlagsCullBackFacingTrianglesKHRShift = 4,
+ RayFlagsCullFrontFacingTrianglesKHRShift = 5,
+ RayFlagsCullOpaqueKHRShift = 6,
+ RayFlagsCullNoOpaqueKHRShift = 7,
+ RayFlagsSkipTrianglesKHRShift = 8,
+ RayFlagsSkipAABBsKHRShift = 9,
+ RayFlagsMax = 0x7fffffff,
+};
+
+enum RayFlagsMask {
+ RayFlagsMaskNone = 0,
+ RayFlagsOpaqueKHRMask = 0x00000001,
+ RayFlagsNoOpaqueKHRMask = 0x00000002,
+ RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
+ RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
+ RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
+ RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
+ RayFlagsCullOpaqueKHRMask = 0x00000040,
+ RayFlagsCullNoOpaqueKHRMask = 0x00000080,
+ RayFlagsSkipTrianglesKHRMask = 0x00000100,
+ RayFlagsSkipAABBsKHRMask = 0x00000200,
+};
+
+enum RayQueryIntersection {
+ RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
+ RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
+ RayQueryIntersectionMax = 0x7fffffff,
+};
+
+enum RayQueryCommittedIntersectionType {
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
+ RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
+};
+
+enum RayQueryCandidateIntersectionType {
+ RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
+ RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1254,6 +1332,13 @@ enum Op {
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1268,11 +1353,17 @@ enum Op {
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
@@ -1429,6 +1520,23 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpMax = 0x7fffffff,
};
@@ -1806,6 +1914,30 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case OpTypeRayQueryProvisionalKHR: *hasResult = true; *hasResultType = false; break;
+ case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
@@ -1974,6 +2106,7 @@ inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask
inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 34ee3b4..406ba19 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -78,11 +78,17 @@ enum class ExecutionModel : unsigned {
Kernel = 6,
TaskNV = 5267,
MeshNV = 5268,
+ RayGenerationKHR = 5313,
RayGenerationNV = 5313,
+ IntersectionKHR = 5314,
IntersectionNV = 5314,
+ AnyHitKHR = 5315,
AnyHitNV = 5315,
+ ClosestHitKHR = 5316,
ClosestHitNV = 5316,
+ MissKHR = 5317,
MissNV = 5317,
+ CallableKHR = 5318,
CallableNV = 5318,
Max = 0x7fffffff,
};
@@ -179,11 +185,17 @@ enum class StorageClass : unsigned {
AtomicCounter = 10,
Image = 11,
StorageBuffer = 12,
+ CallableDataKHR = 5328,
CallableDataNV = 5328,
+ IncomingCallableDataKHR = 5329,
IncomingCallableDataNV = 5329,
+ RayPayloadKHR = 5338,
RayPayloadNV = 5338,
+ HitAttributeKHR = 5339,
HitAttributeNV = 5339,
+ IncomingRayPayloadKHR = 5342,
IncomingRayPayloadNV = 5342,
+ ShaderRecordBufferKHR = 5343,
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
@@ -558,20 +570,35 @@ enum class BuiltIn : unsigned {
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ LaunchIdKHR = 5319,
LaunchIdNV = 5319,
+ LaunchSizeKHR = 5320,
LaunchSizeNV = 5320,
+ WorldRayOriginKHR = 5321,
WorldRayOriginNV = 5321,
+ WorldRayDirectionKHR = 5322,
WorldRayDirectionNV = 5322,
+ ObjectRayOriginKHR = 5323,
ObjectRayOriginNV = 5323,
+ ObjectRayDirectionKHR = 5324,
ObjectRayDirectionNV = 5324,
+ RayTminKHR = 5325,
RayTminNV = 5325,
+ RayTmaxKHR = 5326,
RayTmaxNV = 5326,
+ InstanceCustomIndexKHR = 5327,
InstanceCustomIndexNV = 5327,
+ ObjectToWorldKHR = 5330,
ObjectToWorldNV = 5330,
+ WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
WarpsPerSMNV = 5374,
SMCountNV = 5375,
WarpIDNV = 5376,
@@ -709,6 +736,7 @@ enum class Scope : unsigned {
Invocation = 4,
QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
Max = 0x7fffffff,
};
@@ -833,6 +861,8 @@ enum class Capability : unsigned {
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -886,6 +916,7 @@ enum class Capability : unsigned {
PhysicalStorageBufferAddresses = 5347,
PhysicalStorageBufferAddressesEXT = 5347,
ComputeDerivativeGroupLinearNV = 5350,
+ RayTracingProvisionalKHR = 5353,
CooperativeMatrixNV = 5357,
FragmentShaderSampleInterlockEXT = 5363,
FragmentShaderShadingRateInterlockEXT = 5372,
@@ -903,6 +934,53 @@ enum class Capability : unsigned {
Max = 0x7fffffff,
};
+enum class RayFlagsShift : unsigned {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ Max = 0x7fffffff,
+};
+
+enum class RayFlagsMask : unsigned {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+};
+
+enum class RayQueryIntersection : unsigned {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ Max = 0x7fffffff,
+};
+
+enum class RayQueryCommittedIntersectionType : unsigned {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ Max = 0x7fffffff,
+};
+
+enum class RayQueryCandidateIntersectionType : unsigned {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ Max = 0x7fffffff,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -1254,6 +1332,13 @@ enum class Op : unsigned {
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1268,11 +1353,17 @@ enum class Op : unsigned {
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
@@ -1429,6 +1520,23 @@ enum class Op : unsigned {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
Max = 0x7fffffff,
};
@@ -1806,6 +1914,30 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeRayQueryProvisionalKHR: *hasResult = true; *hasResultType = false; break;
+ case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
+ case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
@@ -1974,6 +2106,7 @@ inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask
inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
} // end namespace spv
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index b08a1a5..d372beb 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -6,7 +6,7 @@
"Comment":
[
[
- "Copyright (c) 2014-2019 The Khronos Group Inc.",
+ "Copyright (c) 2014-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\"),",
@@ -88,11 +88,17 @@
"Kernel": 6,
"TaskNV": 5267,
"MeshNV": 5268,
+ "RayGenerationKHR": 5313,
"RayGenerationNV": 5313,
+ "IntersectionKHR": 5314,
"IntersectionNV": 5314,
+ "AnyHitKHR": 5315,
"AnyHitNV": 5315,
+ "ClosestHitKHR": 5316,
"ClosestHitNV": 5316,
+ "MissKHR": 5317,
"MissNV": 5317,
+ "CallableKHR": 5318,
"CallableNV": 5318
}
},
@@ -201,11 +207,17 @@
"AtomicCounter": 10,
"Image": 11,
"StorageBuffer": 12,
+ "CallableDataKHR": 5328,
"CallableDataNV": 5328,
+ "IncomingCallableDataKHR": 5329,
"IncomingCallableDataNV": 5329,
+ "RayPayloadKHR": 5338,
"RayPayloadNV": 5338,
+ "HitAttributeKHR": 5339,
"HitAttributeNV": 5339,
+ "IncomingRayPayloadKHR": 5342,
"IncomingRayPayloadNV": 5342,
+ "ShaderRecordBufferKHR": 5343,
"ShaderRecordBufferNV": 5343,
"PhysicalStorageBuffer": 5349,
"PhysicalStorageBufferEXT": 5349
@@ -591,20 +603,35 @@
"FragmentSizeNV": 5292,
"FragInvocationCountEXT": 5293,
"InvocationsPerPixelNV": 5293,
+ "LaunchIdKHR": 5319,
"LaunchIdNV": 5319,
+ "LaunchSizeKHR": 5320,
"LaunchSizeNV": 5320,
+ "WorldRayOriginKHR": 5321,
"WorldRayOriginNV": 5321,
+ "WorldRayDirectionKHR": 5322,
"WorldRayDirectionNV": 5322,
+ "ObjectRayOriginKHR": 5323,
"ObjectRayOriginNV": 5323,
+ "ObjectRayDirectionKHR": 5324,
"ObjectRayDirectionNV": 5324,
+ "RayTminKHR": 5325,
"RayTminNV": 5325,
+ "RayTmaxKHR": 5326,
"RayTmaxNV": 5326,
+ "InstanceCustomIndexKHR": 5327,
"InstanceCustomIndexNV": 5327,
+ "ObjectToWorldKHR": 5330,
"ObjectToWorldNV": 5330,
+ "WorldToObjectKHR": 5331,
"WorldToObjectNV": 5331,
+ "HitTKHR": 5332,
"HitTNV": 5332,
+ "HitKindKHR": 5333,
"HitKindNV": 5333,
+ "IncomingRayFlagsKHR": 5351,
"IncomingRayFlagsNV": 5351,
+ "RayGeometryIndexKHR": 5352,
"WarpsPerSMNV": 5374,
"SMCountNV": 5375,
"WarpIDNV": 5376,
@@ -698,7 +725,8 @@
"Subgroup": 3,
"Invocation": 4,
"QueueFamily": 5,
- "QueueFamilyKHR": 5
+ "QueueFamilyKHR": 5,
+ "ShaderCallKHR": 6
}
},
{
@@ -830,6 +858,8 @@
"SignedZeroInfNanPreserve": 4466,
"RoundingModeRTE": 4467,
"RoundingModeRTZ": 4468,
+ "RayQueryProvisionalKHR": 4471,
+ "RayTraversalPrimitiveCullingProvisionalKHR": 4478,
"Float16ImageAMD": 5008,
"ImageGatherBiasLodAMD": 5009,
"FragmentMaskAMD": 5010,
@@ -883,6 +913,7 @@
"PhysicalStorageBufferAddresses": 5347,
"PhysicalStorageBufferAddressesEXT": 5347,
"ComputeDerivativeGroupLinearNV": 5350,
+ "RayTracingProvisionalKHR": 5353,
"CooperativeMatrixNV": 5357,
"FragmentShaderSampleInterlockEXT": 5363,
"FragmentShaderShadingRateInterlockEXT": 5372,
@@ -900,6 +931,51 @@
}
},
{
+ "Name": "RayFlags",
+ "Type": "Bit",
+ "Values":
+ {
+ "OpaqueKHR": 0,
+ "NoOpaqueKHR": 1,
+ "TerminateOnFirstHitKHR": 2,
+ "SkipClosestHitShaderKHR": 3,
+ "CullBackFacingTrianglesKHR": 4,
+ "CullFrontFacingTrianglesKHR": 5,
+ "CullOpaqueKHR": 6,
+ "CullNoOpaqueKHR": 7,
+ "SkipTrianglesKHR": 8,
+ "SkipAABBsKHR": 9
+ }
+ },
+ {
+ "Name": "RayQueryIntersection",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCandidateIntersectionKHR": 0,
+ "RayQueryCommittedIntersectionKHR": 1
+ }
+ },
+ {
+ "Name": "RayQueryCommittedIntersectionType",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCommittedIntersectionNoneKHR": 0,
+ "RayQueryCommittedIntersectionTriangleKHR": 1,
+ "RayQueryCommittedIntersectionGeneratedKHR": 2
+ }
+ },
+ {
+ "Name": "RayQueryCandidateIntersectionType",
+ "Type": "Value",
+ "Values":
+ {
+ "RayQueryCandidateIntersectionTriangleKHR": 0,
+ "RayQueryCandidateIntersectionAABBKHR": 1
+ }
+ },
+ {
"Name": "Op",
"Type": "Value",
"Values":
@@ -1254,6 +1330,13 @@
"OpSubgroupAnyKHR": 4429,
"OpSubgroupAllEqualKHR": 4430,
"OpSubgroupReadInvocationKHR": 4432,
+ "OpTypeRayQueryProvisionalKHR": 4472,
+ "OpRayQueryInitializeKHR": 4473,
+ "OpRayQueryTerminateKHR": 4474,
+ "OpRayQueryGenerateIntersectionKHR": 4475,
+ "OpRayQueryConfirmIntersectionKHR": 4476,
+ "OpRayQueryProceedKHR": 4477,
+ "OpRayQueryGetIntersectionTypeKHR": 4479,
"OpGroupIAddNonUniformAMD": 5000,
"OpGroupFAddNonUniformAMD": 5001,
"OpGroupFMinNonUniformAMD": 5002,
@@ -1268,11 +1351,17 @@
"OpImageSampleFootprintNV": 5283,
"OpGroupNonUniformPartitionNV": 5296,
"OpWritePackedPrimitiveIndices4x8NV": 5299,
+ "OpReportIntersectionKHR": 5334,
"OpReportIntersectionNV": 5334,
+ "OpIgnoreIntersectionKHR": 5335,
"OpIgnoreIntersectionNV": 5335,
+ "OpTerminateRayKHR": 5336,
"OpTerminateRayNV": 5336,
"OpTraceNV": 5337,
+ "OpTraceRayKHR": 5337,
+ "OpTypeAccelerationStructureKHR": 5341,
"OpTypeAccelerationStructureNV": 5341,
+ "OpExecuteCallableKHR": 5344,
"OpExecuteCallableNV": 5344,
"OpTypeCooperativeMatrixNV": 5358,
"OpCooperativeMatrixLoadNV": 5359,
@@ -1428,7 +1517,24 @@
"OpSubgroupAvcSicGetIpeChromaModeINTEL": 5813,
"OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL": 5814,
"OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL": 5815,
- "OpSubgroupAvcSicGetInterRawSadsINTEL": 5816
+ "OpSubgroupAvcSicGetInterRawSadsINTEL": 5816,
+ "OpRayQueryGetRayTMinKHR": 6016,
+ "OpRayQueryGetRayFlagsKHR": 6017,
+ "OpRayQueryGetIntersectionTKHR": 6018,
+ "OpRayQueryGetIntersectionInstanceCustomIndexKHR": 6019,
+ "OpRayQueryGetIntersectionInstanceIdKHR": 6020,
+ "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR": 6021,
+ "OpRayQueryGetIntersectionGeometryIndexKHR": 6022,
+ "OpRayQueryGetIntersectionPrimitiveIndexKHR": 6023,
+ "OpRayQueryGetIntersectionBarycentricsKHR": 6024,
+ "OpRayQueryGetIntersectionFrontFaceKHR": 6025,
+ "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR": 6026,
+ "OpRayQueryGetIntersectionObjectRayDirectionKHR": 6027,
+ "OpRayQueryGetIntersectionObjectRayOriginKHR": 6028,
+ "OpRayQueryGetWorldRayDirectionKHR": 6029,
+ "OpRayQueryGetWorldRayOriginKHR": 6030,
+ "OpRayQueryGetIntersectionObjectToWorldKHR": 6031,
+ "OpRayQueryGetIntersectionWorldToObjectKHR": 6032
}
}
]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 27385db..3774a95 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2014-2019 The Khronos Group Inc.
+-- Copyright (c) 2014-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"),
@@ -68,11 +68,17 @@ spv = {
Kernel = 6,
TaskNV = 5267,
MeshNV = 5268,
+ RayGenerationKHR = 5313,
RayGenerationNV = 5313,
+ IntersectionKHR = 5314,
IntersectionNV = 5314,
+ AnyHitKHR = 5315,
AnyHitNV = 5315,
+ ClosestHitKHR = 5316,
ClosestHitNV = 5316,
+ MissKHR = 5317,
MissNV = 5317,
+ CallableKHR = 5318,
CallableNV = 5318,
},
@@ -165,11 +171,17 @@ spv = {
AtomicCounter = 10,
Image = 11,
StorageBuffer = 12,
+ CallableDataKHR = 5328,
CallableDataNV = 5328,
+ IncomingCallableDataKHR = 5329,
IncomingCallableDataNV = 5329,
+ RayPayloadKHR = 5338,
RayPayloadNV = 5338,
+ HitAttributeKHR = 5339,
HitAttributeNV = 5339,
+ IncomingRayPayloadKHR = 5342,
IncomingRayPayloadNV = 5342,
+ ShaderRecordBufferKHR = 5343,
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
@@ -530,20 +542,35 @@ spv = {
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ LaunchIdKHR = 5319,
LaunchIdNV = 5319,
+ LaunchSizeKHR = 5320,
LaunchSizeNV = 5320,
+ WorldRayOriginKHR = 5321,
WorldRayOriginNV = 5321,
+ WorldRayDirectionKHR = 5322,
WorldRayDirectionNV = 5322,
+ ObjectRayOriginKHR = 5323,
ObjectRayOriginNV = 5323,
+ ObjectRayDirectionKHR = 5324,
ObjectRayDirectionNV = 5324,
+ RayTminKHR = 5325,
RayTminNV = 5325,
+ RayTmaxKHR = 5326,
RayTmaxNV = 5326,
+ InstanceCustomIndexKHR = 5327,
InstanceCustomIndexNV = 5327,
+ ObjectToWorldKHR = 5330,
ObjectToWorldNV = 5330,
+ WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
WarpsPerSMNV = 5374,
SMCountNV = 5375,
WarpIDNV = 5376,
@@ -675,6 +702,7 @@ spv = {
Invocation = 4,
QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
},
GroupOperation = {
@@ -795,6 +823,8 @@ spv = {
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -848,6 +878,7 @@ spv = {
PhysicalStorageBufferAddresses = 5347,
PhysicalStorageBufferAddressesEXT = 5347,
ComputeDerivativeGroupLinearNV = 5350,
+ RayTracingProvisionalKHR = 5353,
CooperativeMatrixNV = 5357,
FragmentShaderSampleInterlockEXT = 5363,
FragmentShaderShadingRateInterlockEXT = 5372,
@@ -864,6 +895,49 @@ spv = {
SubgroupAvcMotionEstimationChromaINTEL = 5698,
},
+ RayFlagsShift = {
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+ },
+
+ RayFlagsMask = {
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+ },
+
+ RayQueryIntersection = {
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+ },
+
+ RayQueryCommittedIntersectionType = {
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+ },
+
+ RayQueryCandidateIntersectionType = {
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+ },
+
Op = {
OpNop = 0,
OpUndef = 1,
@@ -1215,6 +1289,13 @@ spv = {
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1229,11 +1310,17 @@ spv = {
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
@@ -1390,6 +1477,23 @@ spv = {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
},
}
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 6968e7b..a7344aa 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014-2019 The Khronos Group Inc.
+# Copyright (c) 2014-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"),
@@ -68,11 +68,17 @@ spv = {
'Kernel' : 6,
'TaskNV' : 5267,
'MeshNV' : 5268,
+ 'RayGenerationKHR' : 5313,
'RayGenerationNV' : 5313,
+ 'IntersectionKHR' : 5314,
'IntersectionNV' : 5314,
+ 'AnyHitKHR' : 5315,
'AnyHitNV' : 5315,
+ 'ClosestHitKHR' : 5316,
'ClosestHitNV' : 5316,
+ 'MissKHR' : 5317,
'MissNV' : 5317,
+ 'CallableKHR' : 5318,
'CallableNV' : 5318,
},
@@ -165,11 +171,17 @@ spv = {
'AtomicCounter' : 10,
'Image' : 11,
'StorageBuffer' : 12,
+ 'CallableDataKHR' : 5328,
'CallableDataNV' : 5328,
+ 'IncomingCallableDataKHR' : 5329,
'IncomingCallableDataNV' : 5329,
+ 'RayPayloadKHR' : 5338,
'RayPayloadNV' : 5338,
+ 'HitAttributeKHR' : 5339,
'HitAttributeNV' : 5339,
+ 'IncomingRayPayloadKHR' : 5342,
'IncomingRayPayloadNV' : 5342,
+ 'ShaderRecordBufferKHR' : 5343,
'ShaderRecordBufferNV' : 5343,
'PhysicalStorageBuffer' : 5349,
'PhysicalStorageBufferEXT' : 5349,
@@ -530,20 +542,35 @@ spv = {
'FragmentSizeNV' : 5292,
'FragInvocationCountEXT' : 5293,
'InvocationsPerPixelNV' : 5293,
+ 'LaunchIdKHR' : 5319,
'LaunchIdNV' : 5319,
+ 'LaunchSizeKHR' : 5320,
'LaunchSizeNV' : 5320,
+ 'WorldRayOriginKHR' : 5321,
'WorldRayOriginNV' : 5321,
+ 'WorldRayDirectionKHR' : 5322,
'WorldRayDirectionNV' : 5322,
+ 'ObjectRayOriginKHR' : 5323,
'ObjectRayOriginNV' : 5323,
+ 'ObjectRayDirectionKHR' : 5324,
'ObjectRayDirectionNV' : 5324,
+ 'RayTminKHR' : 5325,
'RayTminNV' : 5325,
+ 'RayTmaxKHR' : 5326,
'RayTmaxNV' : 5326,
+ 'InstanceCustomIndexKHR' : 5327,
'InstanceCustomIndexNV' : 5327,
+ 'ObjectToWorldKHR' : 5330,
'ObjectToWorldNV' : 5330,
+ 'WorldToObjectKHR' : 5331,
'WorldToObjectNV' : 5331,
+ 'HitTKHR' : 5332,
'HitTNV' : 5332,
+ 'HitKindKHR' : 5333,
'HitKindNV' : 5333,
+ 'IncomingRayFlagsKHR' : 5351,
'IncomingRayFlagsNV' : 5351,
+ 'RayGeometryIndexKHR' : 5352,
'WarpsPerSMNV' : 5374,
'SMCountNV' : 5375,
'WarpIDNV' : 5376,
@@ -675,6 +702,7 @@ spv = {
'Invocation' : 4,
'QueueFamily' : 5,
'QueueFamilyKHR' : 5,
+ 'ShaderCallKHR' : 6,
},
'GroupOperation' : {
@@ -795,6 +823,8 @@ spv = {
'SignedZeroInfNanPreserve' : 4466,
'RoundingModeRTE' : 4467,
'RoundingModeRTZ' : 4468,
+ 'RayQueryProvisionalKHR' : 4471,
+ 'RayTraversalPrimitiveCullingProvisionalKHR' : 4478,
'Float16ImageAMD' : 5008,
'ImageGatherBiasLodAMD' : 5009,
'FragmentMaskAMD' : 5010,
@@ -848,6 +878,7 @@ spv = {
'PhysicalStorageBufferAddresses' : 5347,
'PhysicalStorageBufferAddressesEXT' : 5347,
'ComputeDerivativeGroupLinearNV' : 5350,
+ 'RayTracingProvisionalKHR' : 5353,
'CooperativeMatrixNV' : 5357,
'FragmentShaderSampleInterlockEXT' : 5363,
'FragmentShaderShadingRateInterlockEXT' : 5372,
@@ -864,6 +895,49 @@ spv = {
'SubgroupAvcMotionEstimationChromaINTEL' : 5698,
},
+ 'RayFlagsShift' : {
+ 'OpaqueKHR' : 0,
+ 'NoOpaqueKHR' : 1,
+ 'TerminateOnFirstHitKHR' : 2,
+ 'SkipClosestHitShaderKHR' : 3,
+ 'CullBackFacingTrianglesKHR' : 4,
+ 'CullFrontFacingTrianglesKHR' : 5,
+ 'CullOpaqueKHR' : 6,
+ 'CullNoOpaqueKHR' : 7,
+ 'SkipTrianglesKHR' : 8,
+ 'SkipAABBsKHR' : 9,
+ },
+
+ 'RayFlagsMask' : {
+ 'MaskNone' : 0,
+ 'OpaqueKHR' : 0x00000001,
+ 'NoOpaqueKHR' : 0x00000002,
+ 'TerminateOnFirstHitKHR' : 0x00000004,
+ 'SkipClosestHitShaderKHR' : 0x00000008,
+ 'CullBackFacingTrianglesKHR' : 0x00000010,
+ 'CullFrontFacingTrianglesKHR' : 0x00000020,
+ 'CullOpaqueKHR' : 0x00000040,
+ 'CullNoOpaqueKHR' : 0x00000080,
+ 'SkipTrianglesKHR' : 0x00000100,
+ 'SkipAABBsKHR' : 0x00000200,
+ },
+
+ 'RayQueryIntersection' : {
+ 'RayQueryCandidateIntersectionKHR' : 0,
+ 'RayQueryCommittedIntersectionKHR' : 1,
+ },
+
+ 'RayQueryCommittedIntersectionType' : {
+ 'RayQueryCommittedIntersectionNoneKHR' : 0,
+ 'RayQueryCommittedIntersectionTriangleKHR' : 1,
+ 'RayQueryCommittedIntersectionGeneratedKHR' : 2,
+ },
+
+ 'RayQueryCandidateIntersectionType' : {
+ 'RayQueryCandidateIntersectionTriangleKHR' : 0,
+ 'RayQueryCandidateIntersectionAABBKHR' : 1,
+ },
+
'Op' : {
'OpNop' : 0,
'OpUndef' : 1,
@@ -1215,6 +1289,13 @@ spv = {
'OpSubgroupAnyKHR' : 4429,
'OpSubgroupAllEqualKHR' : 4430,
'OpSubgroupReadInvocationKHR' : 4432,
+ 'OpTypeRayQueryProvisionalKHR' : 4472,
+ 'OpRayQueryInitializeKHR' : 4473,
+ 'OpRayQueryTerminateKHR' : 4474,
+ 'OpRayQueryGenerateIntersectionKHR' : 4475,
+ 'OpRayQueryConfirmIntersectionKHR' : 4476,
+ 'OpRayQueryProceedKHR' : 4477,
+ 'OpRayQueryGetIntersectionTypeKHR' : 4479,
'OpGroupIAddNonUniformAMD' : 5000,
'OpGroupFAddNonUniformAMD' : 5001,
'OpGroupFMinNonUniformAMD' : 5002,
@@ -1229,11 +1310,17 @@ spv = {
'OpImageSampleFootprintNV' : 5283,
'OpGroupNonUniformPartitionNV' : 5296,
'OpWritePackedPrimitiveIndices4x8NV' : 5299,
+ 'OpReportIntersectionKHR' : 5334,
'OpReportIntersectionNV' : 5334,
+ 'OpIgnoreIntersectionKHR' : 5335,
'OpIgnoreIntersectionNV' : 5335,
+ 'OpTerminateRayKHR' : 5336,
'OpTerminateRayNV' : 5336,
'OpTraceNV' : 5337,
+ 'OpTraceRayKHR' : 5337,
+ 'OpTypeAccelerationStructureKHR' : 5341,
'OpTypeAccelerationStructureNV' : 5341,
+ 'OpExecuteCallableKHR' : 5344,
'OpExecuteCallableNV' : 5344,
'OpTypeCooperativeMatrixNV' : 5358,
'OpCooperativeMatrixLoadNV' : 5359,
@@ -1390,6 +1477,23 @@ spv = {
'OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL' : 5814,
'OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL' : 5815,
'OpSubgroupAvcSicGetInterRawSadsINTEL' : 5816,
+ 'OpRayQueryGetRayTMinKHR' : 6016,
+ 'OpRayQueryGetRayFlagsKHR' : 6017,
+ 'OpRayQueryGetIntersectionTKHR' : 6018,
+ 'OpRayQueryGetIntersectionInstanceCustomIndexKHR' : 6019,
+ 'OpRayQueryGetIntersectionInstanceIdKHR' : 6020,
+ 'OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR' : 6021,
+ 'OpRayQueryGetIntersectionGeometryIndexKHR' : 6022,
+ 'OpRayQueryGetIntersectionPrimitiveIndexKHR' : 6023,
+ 'OpRayQueryGetIntersectionBarycentricsKHR' : 6024,
+ 'OpRayQueryGetIntersectionFrontFaceKHR' : 6025,
+ 'OpRayQueryGetIntersectionCandidateAABBOpaqueKHR' : 6026,
+ 'OpRayQueryGetIntersectionObjectRayDirectionKHR' : 6027,
+ 'OpRayQueryGetIntersectionObjectRayOriginKHR' : 6028,
+ 'OpRayQueryGetWorldRayDirectionKHR' : 6029,
+ 'OpRayQueryGetWorldRayOriginKHR' : 6030,
+ 'OpRayQueryGetIntersectionObjectToWorldKHR' : 6031,
+ 'OpRayQueryGetIntersectionWorldToObjectKHR' : 6032,
},
}
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index ec5a161..2c76658 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1,5 +1,5 @@
/+
- + Copyright (c) 2014-2019 The Khronos Group Inc.
+ + Copyright (c) 2014-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"),
@@ -77,11 +77,17 @@ enum ExecutionModel : uint
Kernel = 6,
TaskNV = 5267,
MeshNV = 5268,
+ RayGenerationKHR = 5313,
RayGenerationNV = 5313,
+ IntersectionKHR = 5314,
IntersectionNV = 5314,
+ AnyHitKHR = 5315,
AnyHitNV = 5315,
+ ClosestHitKHR = 5316,
ClosestHitNV = 5316,
+ MissKHR = 5317,
MissNV = 5317,
+ CallableKHR = 5318,
CallableNV = 5318,
}
@@ -178,11 +184,17 @@ enum StorageClass : uint
AtomicCounter = 10,
Image = 11,
StorageBuffer = 12,
+ CallableDataKHR = 5328,
CallableDataNV = 5328,
+ IncomingCallableDataKHR = 5329,
IncomingCallableDataNV = 5329,
+ RayPayloadKHR = 5338,
RayPayloadNV = 5338,
+ HitAttributeKHR = 5339,
HitAttributeNV = 5339,
+ IncomingRayPayloadKHR = 5342,
IncomingRayPayloadNV = 5342,
+ ShaderRecordBufferKHR = 5343,
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
@@ -559,20 +571,35 @@ enum BuiltIn : uint
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
+ LaunchIdKHR = 5319,
LaunchIdNV = 5319,
+ LaunchSizeKHR = 5320,
LaunchSizeNV = 5320,
+ WorldRayOriginKHR = 5321,
WorldRayOriginNV = 5321,
+ WorldRayDirectionKHR = 5322,
WorldRayDirectionNV = 5322,
+ ObjectRayOriginKHR = 5323,
ObjectRayOriginNV = 5323,
+ ObjectRayDirectionKHR = 5324,
ObjectRayDirectionNV = 5324,
+ RayTminKHR = 5325,
RayTminNV = 5325,
+ RayTmaxKHR = 5326,
RayTmaxNV = 5326,
+ InstanceCustomIndexKHR = 5327,
InstanceCustomIndexNV = 5327,
+ ObjectToWorldKHR = 5330,
ObjectToWorldNV = 5330,
+ WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
+ HitTKHR = 5332,
HitTNV = 5332,
+ HitKindKHR = 5333,
HitKindNV = 5333,
+ IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
+ RayGeometryIndexKHR = 5352,
WarpsPerSMNV = 5374,
SMCountNV = 5375,
WarpIDNV = 5376,
@@ -715,6 +742,7 @@ enum Scope : uint
Invocation = 4,
QueueFamily = 5,
QueueFamilyKHR = 5,
+ ShaderCallKHR = 6,
}
enum GroupOperation : uint
@@ -840,6 +868,8 @@ enum Capability : uint
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
+ RayQueryProvisionalKHR = 4471,
+ RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -893,6 +923,7 @@ enum Capability : uint
PhysicalStorageBufferAddresses = 5347,
PhysicalStorageBufferAddressesEXT = 5347,
ComputeDerivativeGroupLinearNV = 5350,
+ RayTracingProvisionalKHR = 5353,
CooperativeMatrixNV = 5357,
FragmentShaderSampleInterlockEXT = 5363,
FragmentShaderShadingRateInterlockEXT = 5372,
@@ -909,6 +940,54 @@ enum Capability : uint
SubgroupAvcMotionEstimationChromaINTEL = 5698,
}
+enum RayFlagsShift : uint
+{
+ OpaqueKHR = 0,
+ NoOpaqueKHR = 1,
+ TerminateOnFirstHitKHR = 2,
+ SkipClosestHitShaderKHR = 3,
+ CullBackFacingTrianglesKHR = 4,
+ CullFrontFacingTrianglesKHR = 5,
+ CullOpaqueKHR = 6,
+ CullNoOpaqueKHR = 7,
+ SkipTrianglesKHR = 8,
+ SkipAABBsKHR = 9,
+}
+
+enum RayFlagsMask : uint
+{
+ MaskNone = 0,
+ OpaqueKHR = 0x00000001,
+ NoOpaqueKHR = 0x00000002,
+ TerminateOnFirstHitKHR = 0x00000004,
+ SkipClosestHitShaderKHR = 0x00000008,
+ CullBackFacingTrianglesKHR = 0x00000010,
+ CullFrontFacingTrianglesKHR = 0x00000020,
+ CullOpaqueKHR = 0x00000040,
+ CullNoOpaqueKHR = 0x00000080,
+ SkipTrianglesKHR = 0x00000100,
+ SkipAABBsKHR = 0x00000200,
+}
+
+enum RayQueryIntersection : uint
+{
+ RayQueryCandidateIntersectionKHR = 0,
+ RayQueryCommittedIntersectionKHR = 1,
+}
+
+enum RayQueryCommittedIntersectionType : uint
+{
+ RayQueryCommittedIntersectionNoneKHR = 0,
+ RayQueryCommittedIntersectionTriangleKHR = 1,
+ RayQueryCommittedIntersectionGeneratedKHR = 2,
+}
+
+enum RayQueryCandidateIntersectionType : uint
+{
+ RayQueryCandidateIntersectionTriangleKHR = 0,
+ RayQueryCandidateIntersectionAABBKHR = 1,
+}
+
enum Op : uint
{
OpNop = 0,
@@ -1261,6 +1340,13 @@ enum Op : uint
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpSubgroupReadInvocationKHR = 4432,
+ OpTypeRayQueryProvisionalKHR = 4472,
+ OpRayQueryInitializeKHR = 4473,
+ OpRayQueryTerminateKHR = 4474,
+ OpRayQueryGenerateIntersectionKHR = 4475,
+ OpRayQueryConfirmIntersectionKHR = 4476,
+ OpRayQueryProceedKHR = 4477,
+ OpRayQueryGetIntersectionTypeKHR = 4479,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1275,11 +1361,17 @@ enum Op : uint
OpImageSampleFootprintNV = 5283,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
+ OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
+ OpIgnoreIntersectionKHR = 5335,
OpIgnoreIntersectionNV = 5335,
+ OpTerminateRayKHR = 5336,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
+ OpTraceRayKHR = 5337,
+ OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
+ OpExecuteCallableKHR = 5344,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
@@ -1436,6 +1528,23 @@ enum Op : uint
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpRayQueryGetRayTMinKHR = 6016,
+ OpRayQueryGetRayFlagsKHR = 6017,
+ OpRayQueryGetIntersectionTKHR = 6018,
+ OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
+ OpRayQueryGetIntersectionInstanceIdKHR = 6020,
+ OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
+ OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
+ OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
+ OpRayQueryGetIntersectionBarycentricsKHR = 6024,
+ OpRayQueryGetIntersectionFrontFaceKHR = 6025,
+ OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
+ OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
+ OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
+ OpRayQueryGetWorldRayDirectionKHR = 6029,
+ OpRayQueryGetWorldRayOriginKHR = 6030,
+ OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
+ OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
}
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index 0f65291..7e8f668 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -169,7 +169,7 @@ namespace {
}
const std::string TPrinter::DocCopyright =
- "Copyright (c) 2014-2019 The Khronos Group Inc.\n"
+ "Copyright (c) 2014-2020 The Khronos Group Inc.\n"
"\n"
"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
"of this software and/or associated documentation files (the \"Materials\"),\n"
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index 1d01649..5cca0b9 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -77,6 +77,10 @@ EnumValues ScopeParams;
EnumValues KernelEnqueueFlagsParams;
EnumValues KernelProfilingInfoParams;
EnumValues CapabilityParams;
+EnumValues RayFlagsParams;
+EnumValues RayQueryIntersectionParams;
+EnumValues RayQueryCommittedIntersectionTypeParams;
+EnumValues RayQueryCandidateIntersectionTypeParams;
std::pair<bool, std::string> ReadFile(const std::string& path)
{
@@ -203,6 +207,14 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandFunction;
} else if (operandKind == "MemoryAccess") {
type = OperandMemoryOperands;
+ } else if (operandKind == "RayFlags") {
+ type = OperandRayFlags;
+ } else if (operandKind == "RayQueryIntersection") {
+ type = OperandRayQueryIntersection;
+ } else if (operandKind == "RayQueryCommittedIntersectionType") {
+ type = OperandRayQueryCommittedIntersectionType;
+ } else if (operandKind == "RayQueryCandidateIntersectionType") {
+ type = OperandRayQueryCandidateIntersectionType;
}
if (type == OperandNone) {
@@ -463,6 +475,14 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandKernelEnqueueFlags, &KernelEnqueueFlagsParams, operandEnum, category);
} else if (enumName == "KernelProfilingInfo") {
establishOperandClass(enumName, OperandKernelProfilingInfo, &KernelProfilingInfoParams, operandEnum, category);
+ } else if (enumName == "RayFlags") {
+ establishOperandClass(enumName, OperandRayFlags, &RayFlagsParams, operandEnum, category);
+ } else if (enumName == "RayQueryIntersection") {
+ establishOperandClass(enumName, OperandRayQueryIntersection, &RayQueryIntersectionParams, operandEnum, category);
+ } else if (enumName == "RayQueryCommittedIntersectionType") {
+ establishOperandClass(enumName, OperandRayQueryCommittedIntersectionType, &RayQueryCommittedIntersectionTypeParams, operandEnum, category);
+ } else if (enumName == "RayQueryCandidateIntersectionType") {
+ establishOperandClass(enumName, OperandRayQueryCandidateIntersectionType, &RayQueryCandidateIntersectionTypeParams, operandEnum, category);
}
}
}
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index e64faa1..9a5eafd 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -84,6 +84,10 @@ enum OperandClass {
OperandKernelEnqueueFlags,
OperandKernelProfilingInfo,
OperandCapability,
+ OperandRayFlags,
+ OperandRayQueryIntersection,
+ OperandRayQueryCommittedIntersectionType,
+ OperandRayQueryCandidateIntersectionType,
OperandOpcode,