Added ray flags, primitive culling flags, queries

This commit is contained in:
Torosdagli
2020-03-03 18:01:57 -05:00
committed by Daniel Koch
parent 7da3c47f79
commit 91474f3cd5
11 changed files with 1264 additions and 5 deletions
+589 -4
View File
@@ -4501,8 +4501,8 @@
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR", "RayQueryProvisionalKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing", "SPV_KHR_ray_query" ],
"version" : "None"
},
{
@@ -4512,10 +4512,467 @@
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "RayTracingNV" , "RayTracingProvisionalKHR" ],
"extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
"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",
@@ -7016,6 +7473,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",
@@ -10181,6 +10699,20 @@
"extensions" : [ "SPV_KHR_float_controls" ],
"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,
@@ -10629,6 +11161,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",
+74
View File
@@ -864,6 +864,8 @@ namespace Spv
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -934,6 +936,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,
@@ -1286,6 +1336,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,
@@ -1467,6 +1524,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,
}
}
}
+97
View File
@@ -864,6 +864,8 @@ typedef enum SpvCapability_ {
SpvCapabilitySignedZeroInfNanPreserve = 4466,
SpvCapabilityRoundingModeRTE = 4467,
SpvCapabilityRoundingModeRTZ = 4468,
SpvCapabilityRayQueryProvisionalKHR = 4471,
SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
SpvCapabilityFloat16ImageAMD = 5008,
SpvCapabilityImageGatherBiasLodAMD = 5009,
SpvCapabilityFragmentMaskAMD = 5010,
@@ -935,6 +937,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,
@@ -1286,6 +1335,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,
@@ -1467,6 +1523,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;
@@ -1844,6 +1917,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;
+98
View File
@@ -860,6 +860,8 @@ enum Capability {
CapabilitySignedZeroInfNanPreserve = 4466,
CapabilityRoundingModeRTE = 4467,
CapabilityRoundingModeRTZ = 4468,
CapabilityRayQueryProvisionalKHR = 4471,
CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
CapabilityFloat16ImageAMD = 5008,
CapabilityImageGatherBiasLodAMD = 5009,
CapabilityFragmentMaskAMD = 5010,
@@ -931,6 +933,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,
@@ -1282,6 +1331,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,
@@ -1463,6 +1519,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,
};
@@ -1840,6 +1913,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;
@@ -2008,6 +2105,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
+98
View File
@@ -860,6 +860,8 @@ enum class Capability : unsigned {
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -931,6 +933,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,
@@ -1282,6 +1331,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,
@@ -1463,6 +1519,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,
};
@@ -1840,6 +1913,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;
@@ -2008,6 +2105,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
+72 -1
View File
@@ -857,6 +857,8 @@
"SignedZeroInfNanPreserve": 4466,
"RoundingModeRTE": 4467,
"RoundingModeRTZ": 4468,
"RayQueryProvisionalKHR": 4471,
"RayTraversalPrimitiveCullingProvisionalKHR": 4478,
"Float16ImageAMD": 5008,
"ImageGatherBiasLodAMD": 5009,
"FragmentMaskAMD": 5010,
@@ -927,6 +929,51 @@
"SubgroupAvcMotionEstimationChromaINTEL": 5698
}
},
{
"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",
@@ -1282,6 +1329,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,
@@ -1462,7 +1516,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
}
}
]
+69
View File
@@ -822,6 +822,8 @@ spv = {
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -892,6 +894,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,
@@ -1243,6 +1288,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,
@@ -1424,6 +1476,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,
},
}
+69
View File
@@ -822,6 +822,8 @@ spv = {
'SignedZeroInfNanPreserve' : 4466,
'RoundingModeRTE' : 4467,
'RoundingModeRTZ' : 4468,
'RayQueryProvisionalKHR' : 4471,
'RayTraversalPrimitiveCullingProvisionalKHR' : 4478,
'Float16ImageAMD' : 5008,
'ImageGatherBiasLodAMD' : 5009,
'FragmentMaskAMD' : 5010,
@@ -892,6 +894,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,
@@ -1243,6 +1288,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,
@@ -1424,6 +1476,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,
},
}
+74
View File
@@ -867,6 +867,8 @@ enum Capability : uint
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
RayTraversalPrimitiveCullingProvisionalKHR = 4478,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
@@ -937,6 +939,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,
@@ -1289,6 +1339,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,
@@ -1470,6 +1527,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,
}
+20
View File
@@ -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);
}
}
}
+4
View File
@@ -83,6 +83,10 @@ enum OperandClass {
OperandKernelEnqueueFlags,
OperandKernelProfilingInfo,
OperandCapability,
OperandRayFlags,
OperandRayQueryIntersection,
OperandRayQueryCommittedIntersectionType,
OperandRayQueryCandidateIntersectionType,
OperandOpcode,