Update SPIR-V headers to latest

This commit is contained in:
baldurk
2023-01-17 14:15:08 +00:00
parent cfe4d08c81
commit 83c2b004c6
7 changed files with 2251 additions and 18 deletions
+3 -2
View File
@@ -62,7 +62,7 @@
<id value="9" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
<id value="10" vendor="AMD" comment="Contact Daniel Rakos, daniel.rakos@amd.com"/>
<id value="11" vendor="Intel" comment="Contact Alexey, alexey.bader@intel.com"/>
<id value="12" vendor="Imagination" comment="Contact James Jones"/>
<id value="12" vendor="Imagination" comment="Contact Stephen Clarke, stephen.clarke@imgtec.com"/>
<id value="13" vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, dneto@google.com"/>
<id value="14" vendor="Google" tool="spiregg" comment="Contact Lei Zhang, antiagainst@google.com"/>
<id value="15" vendor="Google" tool="rspirv" comment="Contact Lei Zhang, antiagainst@gmail.com"/>
@@ -86,7 +86,8 @@
<id value="33" vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
<id value="34" vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
<id value="35" vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
<unused start="36" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
<id value="36" vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
<unused start="37" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
</ids>
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -4754,6 +4754,461 @@
"extensions" : [ "SPV_KHR_shader_clock" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordHitMotionNV",
"class" : "Reserved",
"opcode" : 5249,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'" },
{ "kind" : "IdRef", "name" : "'InstanceId'" },
{ "kind" : "IdRef", "name" : "'PrimitiveId'" },
{ "kind" : "IdRef", "name" : "'GeometryIndex'" },
{ "kind" : "IdRef", "name" : "'Hit Kind'" },
{ "kind" : "IdRef", "name" : "'SBT Record Offset'" },
{ "kind" : "IdRef", "name" : "'SBT Record Stride'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" },
{ "kind" : "IdRef", "name" : "'Current Time'" },
{ "kind" : "IdRef", "name" : "'HitObject Attributes'" }
],
"capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordHitWithIndexMotionNV",
"class" : "Reserved",
"opcode" : 5250,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'" },
{ "kind" : "IdRef", "name" : "'InstanceId'" },
{ "kind" : "IdRef", "name" : "'PrimitiveId'" },
{ "kind" : "IdRef", "name" : "'GeometryIndex'" },
{ "kind" : "IdRef", "name" : "'Hit Kind'" },
{ "kind" : "IdRef", "name" : "'SBT Record Index'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" },
{ "kind" : "IdRef", "name" : "'Current Time'" },
{ "kind" : "IdRef", "name" : "'HitObject Attributes'" }
],
"capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordMissMotionNV",
"class" : "Reserved",
"opcode" : 5251,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'SBT Index'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" },
{ "kind" : "IdRef", "name" : "'Current Time'" }
],
"capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetWorldToObjectNV",
"class" : "Reserved",
"opcode" : 5252,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetObjectToWorldNV",
"class" : "Reserved",
"opcode" : 5253,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetObjectRayDirectionNV",
"class" : "Reserved",
"opcode" : 5254,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetObjectRayOriginNV",
"class" : "Reserved",
"opcode" : 5255,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectTraceRayMotionNV",
"class" : "Reserved",
"opcode" : 5256,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'"},
{ "kind" : "IdRef", "name" : "'RayFlags'"},
{ "kind" : "IdRef", "name" : "'Cullmask'"},
{ "kind" : "IdRef", "name" : "'SBT Record Offset'"},
{ "kind" : "IdRef", "name" : "'SBT Record Stride'"},
{ "kind" : "IdRef", "name" : "'Miss Index'"},
{ "kind" : "IdRef", "name" : "'Origin'"},
{ "kind" : "IdRef", "name" : "'TMin'"},
{ "kind" : "IdRef", "name" : "'Direction'"},
{ "kind" : "IdRef", "name" : "'TMax'"},
{ "kind" : "IdRef", "name" : "'Time'"},
{ "kind" : "IdRef", "name" : "'Payload'"}
],
"capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetShaderRecordBufferHandleNV",
"class" : "Reserved",
"opcode" : 5257,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetShaderBindingTableRecordIndexNV",
"class" : "Reserved",
"opcode" : 5258,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordEmptyNV",
"class" : "Reserved",
"opcode" : 5259,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectTraceRayNV",
"class" : "Reserved",
"opcode" : 5260,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'"},
{ "kind" : "IdRef", "name" : "'RayFlags'"},
{ "kind" : "IdRef", "name" : "'Cullmask'"},
{ "kind" : "IdRef", "name" : "'SBT Record Offset'"},
{ "kind" : "IdRef", "name" : "'SBT Record Stride'"},
{ "kind" : "IdRef", "name" : "'Miss Index'"},
{ "kind" : "IdRef", "name" : "'Origin'"},
{ "kind" : "IdRef", "name" : "'TMin'"},
{ "kind" : "IdRef", "name" : "'Direction'"},
{ "kind" : "IdRef", "name" : "'TMax'"},
{ "kind" : "IdRef", "name" : "'Payload'"}
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordHitNV",
"class" : "Reserved",
"opcode" : 5261,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'" },
{ "kind" : "IdRef", "name" : "'InstanceId'" },
{ "kind" : "IdRef", "name" : "'PrimitiveId'" },
{ "kind" : "IdRef", "name" : "'GeometryIndex'" },
{ "kind" : "IdRef", "name" : "'Hit Kind'" },
{ "kind" : "IdRef", "name" : "'SBT Record Offset'" },
{ "kind" : "IdRef", "name" : "'SBT Record Stride'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" },
{ "kind" : "IdRef", "name" : "'HitObject Attributes'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordHitWithIndexNV",
"class" : "Reserved",
"opcode" : 5262,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Acceleration Structure'" },
{ "kind" : "IdRef", "name" : "'InstanceId'" },
{ "kind" : "IdRef", "name" : "'PrimitiveId'" },
{ "kind" : "IdRef", "name" : "'GeometryIndex'" },
{ "kind" : "IdRef", "name" : "'Hit Kind'" },
{ "kind" : "IdRef", "name" : "'SBT Record Index'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" },
{ "kind" : "IdRef", "name" : "'HitObject Attributes'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectRecordMissNV",
"class" : "Reserved",
"opcode" : 5263,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'SBT Index'" },
{ "kind" : "IdRef", "name" : "'Origin'" },
{ "kind" : "IdRef", "name" : "'TMin'" },
{ "kind" : "IdRef", "name" : "'Direction'" },
{ "kind" : "IdRef", "name" : "'TMax'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectExecuteShaderNV",
"class" : "Reserved",
"opcode" : 5264,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Payload'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetCurrentTimeNV",
"class" : "Reserved",
"opcode" : 5265,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetAttributesNV",
"class" : "Reserved",
"opcode" : 5266,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "name" : "'Hit Object Attribute'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetHitKindNV",
"class" : "Reserved",
"opcode" : 5267,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetPrimitiveIndexNV",
"class" : "Reserved",
"opcode" : 5268,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetGeometryIndexNV",
"class" : "Reserved",
"opcode" : 5269,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetInstanceIdNV",
"class" : "Reserved",
"opcode" : 5270,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetInstanceCustomIndexNV",
"class" : "Reserved",
"opcode" : 5271,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetWorldRayDirectionNV",
"class" : "Reserved",
"opcode" : 5272,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetWorldRayOriginNV",
"class" : "Reserved",
"opcode" : 5273,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetRayTMaxNV",
"class" : "Reserved",
"opcode" : 5274,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectGetRayTMinNV",
"class" : "Reserved",
"opcode" : 5275,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectIsEmptyNV",
"class" : "Reserved",
"opcode" : 5276,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectIsHitNV",
"class" : "Reserved",
"opcode" : 5277,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpHitObjectIsMissNV",
"class" : "Reserved",
"opcode" : 5278,
"operands" : [
{ "kind" : "IdResultType"},
{ "kind" : "IdResult"},
{ "kind" : "IdRef", "name" : "'Hit Object'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpReorderThreadWithHitObjectNV",
"class" : "Reserved",
"opcode" : 5279,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hit Object'" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Hint'" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Bits'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpReorderThreadWithHintNV",
"class" : "Reserved",
"opcode" : 5280,
"operands" : [
{ "kind" : "IdRef", "name" : "'Hint'" },
{ "kind" : "IdRef", "name" : "'Bits'" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpTypeHitObjectNV",
"class" : "Reserved",
"opcode" : 5281,
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"opname" : "OpImageSampleFootprintNV",
"class" : "Image",
@@ -9020,7 +9475,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9030,7 +9484,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9040,7 +9493,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9050,7 +9502,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9060,7 +9511,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9070,7 +9520,6 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
@@ -9080,17 +9529,30 @@
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
},
{
"enumerant" : "NoFusionINTEL",
"value" : "0x800000",
"capabilities" : [ "FPGALoopControlsINTEL" ],
"version" : "None"
},
{
"enumerant" : "LoopCountINTEL",
"value" : "0x1000000",
"parameters" : [
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"version" : "None"
},
{
"enumerant" : "MaxReinvocationDelayINTEL",
"value" : "0x2000000",
"parameters" : [
{ "kind" : "LiteralInteger" }
],
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
}
]
@@ -10245,6 +10707,15 @@
"capabilities" : [ "FPGAKernelAttributesINTEL" ],
"version" : "None"
},
{
"enumerant" : "StreamingInterfaceINTEL",
"value" : 6154,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'StallFreeReturn'" }
],
"capabilities" : [ "FPGAKernelAttributesINTEL" ],
"version" : "None"
},
{
"enumerant" : "NamedBarrierCountINTEL",
"value" : 6417,
@@ -10422,6 +10893,12 @@
"capabilities" : [ "PhysicalStorageBufferAddresses" ],
"version" : "1.5"
},
{
"enumerant" : "HitObjectAttributeNV",
"value" : 5385,
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"enumerant" : "TaskPayloadWorkgroupEXT",
"value" : 5402,
@@ -11184,6 +11661,11 @@
"enumerant" : "NoReadWrite",
"value" : 7,
"capabilities" : [ "Kernel" ]
},
{
"enumerant" : "RuntimeAlignedINTEL",
"value" : 5940,
"capabilities" : [ "RuntimeAlignedAttributeINTEL" ]
}
]
},
@@ -11624,6 +12106,12 @@
"extensions" : [ "SPV_EXT_physical_storage_buffer" ],
"version" : "1.5"
},
{
"enumerant" : "HitObjectShaderRecordBufferNV",
"value" : 5386,
"capabilities" : [ "ShaderInvocationReorderNV" ],
"version" : "None"
},
{
"enumerant" : "BindlessSamplerNV",
"value" : 5398,
@@ -11929,6 +12417,16 @@
"capabilities" : [ "LoopFuseINTEL" ],
"version" : "None"
},
{
"enumerant" : "MathOpDSPModeINTEL",
"value" : 5909,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Mode'" },
{ "kind" : "LiteralInteger", "name" : "'Propagate'" }
],
"capabilities" : [ "FPGADSPControlINTEL" ],
"version" : "None"
},
{
"enumerant" : "AliasScopeINTEL",
"value" : 5914,
@@ -11947,6 +12445,33 @@
"capabilities" : [ "MemoryAccessAliasingINTEL" ],
"version" : "None"
},
{
"enumerant" : "InitiationIntervalINTEL",
"value" : 5917,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Cycles'" }
],
"capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
"version" : "None"
},
{
"enumerant" : "MaxConcurrencyINTEL",
"value" : 5918,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Invocations'" }
],
"capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
"version" : "None"
},
{
"enumerant" : "PipelineEnableINTEL",
"value" : 5919,
"parameters" : [
{ "kind" : "LiteralInteger", "name" : "'Enable'" }
],
"capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
"version" : "None"
},
{
"enumerant" : "BufferLocationINTEL",
"value" : 5921,
@@ -13923,6 +14448,13 @@
"extensions" : [ "SPV_EXT_opacity_micromap" ],
"version" : "None"
},
{
"enumerant" : "ShaderInvocationReorderNV",
"value" : 5383,
"capabilities" : [ "RayTracingKHR" ],
"extensions" : [ "SPV_NV_shader_invocation_reorder" ],
"version" : "None"
},
{
"enumerant" : "BindlessTextureNV",
"value" : 5390,
@@ -14124,12 +14656,24 @@
"extensions" : [ "SPV_INTEL_loop_fuse" ],
"version" : "None"
},
{
"enumerant" : "FPGADSPControlINTEL",
"value" : 5908,
"extensions" : [ "SPV_INTEL_fpga_dsp_control" ],
"version" : "None"
},
{
"enumerant" : "MemoryAccessAliasingINTEL",
"value" : 5910,
"extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
"version" : "None"
},
{
"enumerant" : "FPGAInvocationPipeliningAttributesINTEL",
"value" : 5916,
"extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ],
"version" : "None"
},
{
"enumerant" : "FPGABufferLocationINTEL",
"value" : 5920,
@@ -14148,6 +14692,12 @@
"extensions" : [ "SPV_INTEL_usm_storage_classes" ],
"version" : "None"
},
{
"enumerant" : "RuntimeAlignedAttributeINTEL",
"value" : 5939,
"extensions" : [ "SPV_INTEL_runtime_aligned" ],
"version" : "None"
},
{
"enumerant" : "IOPipesINTEL",
"value" : 5943,
@@ -3683,6 +3683,39 @@ void ThreadState::StepNext(ShaderDebugState *state, const rdcarray<ThreadState>
case Op::SamplerImageAddressingModeNV:
case Op::EmitMeshTasksEXT:
case Op::SetMeshOutputsEXT:
case Op::HitObjectRecordHitMotionNV:
case Op::HitObjectRecordHitWithIndexMotionNV:
case Op::HitObjectRecordMissMotionNV:
case Op::HitObjectGetWorldToObjectNV:
case Op::HitObjectGetObjectToWorldNV:
case Op::HitObjectGetObjectRayDirectionNV:
case Op::HitObjectGetObjectRayOriginNV:
case Op::HitObjectTraceRayMotionNV:
case Op::HitObjectGetShaderRecordBufferHandleNV:
case Op::HitObjectGetShaderBindingTableRecordIndexNV:
case Op::HitObjectRecordEmptyNV:
case Op::HitObjectTraceRayNV:
case Op::HitObjectRecordHitNV:
case Op::HitObjectRecordHitWithIndexNV:
case Op::HitObjectRecordMissNV:
case Op::HitObjectExecuteShaderNV:
case Op::HitObjectGetCurrentTimeNV:
case Op::HitObjectGetAttributesNV:
case Op::HitObjectGetHitKindNV:
case Op::HitObjectGetPrimitiveIndexNV:
case Op::HitObjectGetGeometryIndexNV:
case Op::HitObjectGetInstanceIdNV:
case Op::HitObjectGetInstanceCustomIndexNV:
case Op::HitObjectGetWorldRayDirectionNV:
case Op::HitObjectGetWorldRayOriginNV:
case Op::HitObjectGetRayTMaxNV:
case Op::HitObjectGetRayTMinNV:
case Op::HitObjectIsEmptyNV:
case Op::HitObjectIsHitNV:
case Op::HitObjectIsMissNV:
case Op::ReorderThreadWithHitObjectNV:
case Op::ReorderThreadWithHintNV:
case Op::TypeHitObjectNV:
{
RDCERR("Unsupported extension opcode used %s", ToStr(opdata.op).c_str());
@@ -627,6 +627,7 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
case Capability::RayTracingKHR:
case Capability::RayCullMaskKHR:
case Capability::RayTracingOpacityMicromapEXT:
case Capability::ShaderInvocationReorderNV:
{
supported = false;
break;
@@ -715,6 +716,9 @@ void Reflector::CheckDebuggable(bool &debuggable, rdcstr &debugStatus) const
case Capability::SplitBarrierINTEL:
case Capability::GroupUniformArithmeticKHR:
case Capability::CoreBuiltinsARM:
case Capability::FPGADSPControlINTEL:
case Capability::FPGAInvocationPipeliningAttributesINTEL:
case Capability::RuntimeAlignedAttributeINTEL:
case Capability::Max:
case Capability::Invalid:
{
+538 -1
View File
@@ -144,6 +144,8 @@ rdcstr DoStringise(const rdcspv::LoopControl &el)
STRINGISE_BITFIELD_CLASS_BIT(MaxInterleavingINTEL);
STRINGISE_BITFIELD_CLASS_BIT(SpeculatedIterationsINTEL);
STRINGISE_BITFIELD_CLASS_BIT(NoFusionINTEL);
STRINGISE_BITFIELD_CLASS_BIT(LoopCountINTEL);
STRINGISE_BITFIELD_CLASS_BIT(MaxReinvocationDelayINTEL);
}
END_BITFIELD_STRINGISE();
}
@@ -401,6 +403,7 @@ rdcstr DoStringise(const rdcspv::ExecutionMode &el)
STRINGISE_ENUM_CLASS(NoGlobalOffsetINTEL);
STRINGISE_ENUM_CLASS(NumSIMDWorkitemsINTEL);
STRINGISE_ENUM_CLASS(SchedulerTargetFmaxMhzINTEL);
STRINGISE_ENUM_CLASS(StreamingInterfaceINTEL);
STRINGISE_ENUM_CLASS(NamedBarrierCountINTEL);
}
END_ENUM_STRINGISE();
@@ -431,6 +434,7 @@ rdcstr DoStringise(const rdcspv::StorageClass &el)
STRINGISE_ENUM_CLASS(IncomingRayPayloadNV);
STRINGISE_ENUM_CLASS(ShaderRecordBufferNV);
STRINGISE_ENUM_CLASS(PhysicalStorageBuffer);
STRINGISE_ENUM_CLASS(HitObjectAttributeNV);
STRINGISE_ENUM_CLASS(TaskPayloadWorkgroupEXT);
STRINGISE_ENUM_CLASS(CodeSectionINTEL);
STRINGISE_ENUM_CLASS(DeviceOnlyINTEL);
@@ -688,6 +692,7 @@ rdcstr DoStringise(const rdcspv::FunctionParameterAttribute &el)
STRINGISE_ENUM_CLASS(NoCapture);
STRINGISE_ENUM_CLASS(NoWrite);
STRINGISE_ENUM_CLASS(NoReadWrite);
STRINGISE_ENUM_CLASS(RuntimeAlignedINTEL);
}
END_ENUM_STRINGISE();
}
@@ -758,6 +763,7 @@ rdcstr DoStringise(const rdcspv::Decoration &el)
STRINGISE_ENUM_CLASS(NonUniform);
STRINGISE_ENUM_CLASS(RestrictPointer);
STRINGISE_ENUM_CLASS(AliasedPointer);
STRINGISE_ENUM_CLASS(HitObjectShaderRecordBufferNV);
STRINGISE_ENUM_CLASS(BindlessSamplerNV);
STRINGISE_ENUM_CLASS(BindlessImageNV);
STRINGISE_ENUM_CLASS(BoundSamplerNV);
@@ -794,8 +800,12 @@ rdcstr DoStringise(const rdcspv::Decoration &el)
STRINGISE_ENUM_CLASS(PrefetchINTEL);
STRINGISE_ENUM_CLASS(StallEnableINTEL);
STRINGISE_ENUM_CLASS(FuseLoopsInFunctionINTEL);
STRINGISE_ENUM_CLASS(MathOpDSPModeINTEL);
STRINGISE_ENUM_CLASS(AliasScopeINTEL);
STRINGISE_ENUM_CLASS(NoAliasINTEL);
STRINGISE_ENUM_CLASS(InitiationIntervalINTEL);
STRINGISE_ENUM_CLASS(MaxConcurrencyINTEL);
STRINGISE_ENUM_CLASS(PipelineEnableINTEL);
STRINGISE_ENUM_CLASS(BufferLocationINTEL);
STRINGISE_ENUM_CLASS(IOPipeStorageINTEL);
STRINGISE_ENUM_CLASS(FunctionFloatingPointModeINTEL);
@@ -1120,6 +1130,7 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(FragmentShaderPixelInterlockEXT);
STRINGISE_ENUM_CLASS(DemoteToHelperInvocation);
STRINGISE_ENUM_CLASS(RayTracingOpacityMicromapEXT);
STRINGISE_ENUM_CLASS(ShaderInvocationReorderNV);
STRINGISE_ENUM_CLASS(BindlessTextureNV);
STRINGISE_ENUM_CLASS(SubgroupShuffleINTEL);
STRINGISE_ENUM_CLASS(SubgroupBufferBlockIOINTEL);
@@ -1153,10 +1164,13 @@ rdcstr DoStringise(const rdcspv::Capability &el)
STRINGISE_ENUM_CLASS(FPGAMemoryAccessesINTEL);
STRINGISE_ENUM_CLASS(FPGAClusterAttributesINTEL);
STRINGISE_ENUM_CLASS(LoopFuseINTEL);
STRINGISE_ENUM_CLASS(FPGADSPControlINTEL);
STRINGISE_ENUM_CLASS(MemoryAccessAliasingINTEL);
STRINGISE_ENUM_CLASS(FPGAInvocationPipeliningAttributesINTEL);
STRINGISE_ENUM_CLASS(FPGABufferLocationINTEL);
STRINGISE_ENUM_CLASS(ArbitraryPrecisionFixedPointINTEL);
STRINGISE_ENUM_CLASS(USMStorageClassesINTEL);
STRINGISE_ENUM_CLASS(RuntimeAlignedAttributeINTEL);
STRINGISE_ENUM_CLASS(IOPipesINTEL);
STRINGISE_ENUM_CLASS(BlockingPipesINTEL);
STRINGISE_ENUM_CLASS(FPGARegINTEL);
@@ -1609,6 +1623,39 @@ rdcstr DoStringise(const rdcspv::Op &el)
STRINGISE_ENUM_CLASS(FragmentMaskFetchAMD);
STRINGISE_ENUM_CLASS(FragmentFetchAMD);
STRINGISE_ENUM_CLASS(ReadClockKHR);
STRINGISE_ENUM_CLASS(HitObjectRecordHitMotionNV);
STRINGISE_ENUM_CLASS(HitObjectRecordHitWithIndexMotionNV);
STRINGISE_ENUM_CLASS(HitObjectRecordMissMotionNV);
STRINGISE_ENUM_CLASS(HitObjectGetWorldToObjectNV);
STRINGISE_ENUM_CLASS(HitObjectGetObjectToWorldNV);
STRINGISE_ENUM_CLASS(HitObjectGetObjectRayDirectionNV);
STRINGISE_ENUM_CLASS(HitObjectGetObjectRayOriginNV);
STRINGISE_ENUM_CLASS(HitObjectTraceRayMotionNV);
STRINGISE_ENUM_CLASS(HitObjectGetShaderRecordBufferHandleNV);
STRINGISE_ENUM_CLASS(HitObjectGetShaderBindingTableRecordIndexNV);
STRINGISE_ENUM_CLASS(HitObjectRecordEmptyNV);
STRINGISE_ENUM_CLASS(HitObjectTraceRayNV);
STRINGISE_ENUM_CLASS(HitObjectRecordHitNV);
STRINGISE_ENUM_CLASS(HitObjectRecordHitWithIndexNV);
STRINGISE_ENUM_CLASS(HitObjectRecordMissNV);
STRINGISE_ENUM_CLASS(HitObjectExecuteShaderNV);
STRINGISE_ENUM_CLASS(HitObjectGetCurrentTimeNV);
STRINGISE_ENUM_CLASS(HitObjectGetAttributesNV);
STRINGISE_ENUM_CLASS(HitObjectGetHitKindNV);
STRINGISE_ENUM_CLASS(HitObjectGetPrimitiveIndexNV);
STRINGISE_ENUM_CLASS(HitObjectGetGeometryIndexNV);
STRINGISE_ENUM_CLASS(HitObjectGetInstanceIdNV);
STRINGISE_ENUM_CLASS(HitObjectGetInstanceCustomIndexNV);
STRINGISE_ENUM_CLASS(HitObjectGetWorldRayDirectionNV);
STRINGISE_ENUM_CLASS(HitObjectGetWorldRayOriginNV);
STRINGISE_ENUM_CLASS(HitObjectGetRayTMaxNV);
STRINGISE_ENUM_CLASS(HitObjectGetRayTMinNV);
STRINGISE_ENUM_CLASS(HitObjectIsEmptyNV);
STRINGISE_ENUM_CLASS(HitObjectIsHitNV);
STRINGISE_ENUM_CLASS(HitObjectIsMissNV);
STRINGISE_ENUM_CLASS(ReorderThreadWithHitObjectNV);
STRINGISE_ENUM_CLASS(ReorderThreadWithHintNV);
STRINGISE_ENUM_CLASS(TypeHitObjectNV);
STRINGISE_ENUM_CLASS(ImageSampleFootprintNV);
STRINGISE_ENUM_CLASS(EmitMeshTasksEXT);
STRINGISE_ENUM_CLASS(SetMeshOutputsEXT);
@@ -1828,7 +1875,11 @@ rdcstr ParamToStr(const std::function<rdcstr(rdcspv::Id)> &idName, const rdcspv:
if(el.flags & LoopControl::SpeculatedIterationsINTEL)
ret += "SpeculatedIterationsINTEL" "(" + ToStr(el.speculatedIterationsINTEL) + ")" ", ";
if(el.flags & LoopControl::NoFusionINTEL)
ret += "NoFusionINTEL" "(" + ToStr(el.noFusionINTEL) + ")" ", ";
ret += "NoFusionINTEL" ", ";
if(el.flags & LoopControl::LoopCountINTEL)
ret += "LoopCountINTEL" "(" + ToStr(el.loopCountINTEL) + ")" ", ";
if(el.flags & LoopControl::MaxReinvocationDelayINTEL)
ret += "MaxReinvocationDelayINTEL" "(" + ToStr(el.maxReinvocationDelayINTEL) + ")" ", ";
// remove trailing ", "
if(ret.size() > 2)
@@ -1925,6 +1976,8 @@ rdcstr ParamToStr(const std::function<rdcstr(rdcspv::Id)> &idName, const rdcspv:
ret += "(" + ToStr(el.numSIMDWorkitemsINTEL) + ")"; break;
case ExecutionMode::SchedulerTargetFmaxMhzINTEL:
ret += "(" + ToStr(el.schedulerTargetFmaxMhzINTEL) + ")"; break;
case ExecutionMode::StreamingInterfaceINTEL:
ret += "(" + ToStr(el.streamingInterfaceINTEL) + ")"; break;
case ExecutionMode::NamedBarrierCountINTEL:
ret += "(" + ToStr(el.namedBarrierCountINTEL) + ")"; break;
default:
@@ -2015,10 +2068,18 @@ rdcstr ParamToStr(const std::function<rdcstr(rdcspv::Id)> &idName, const rdcspv:
ret += "(" + ToStr(el.cacheSizeINTEL) + ")"; break;
case Decoration::PrefetchINTEL:
ret += "(" + ToStr(el.prefetchINTEL) + ")"; break;
case Decoration::MathOpDSPModeINTEL:
ret += "(" + ToStr(el.mathOpDSPModeINTEL.mode) + ", " + ToStr(el.mathOpDSPModeINTEL.propagate) + ")"; break;
case Decoration::AliasScopeINTEL:
ret += "(" + idName(el.aliasScopeINTEL) + ")"; break;
case Decoration::NoAliasINTEL:
ret += "(" + idName(el.noAliasINTEL) + ")"; break;
case Decoration::InitiationIntervalINTEL:
ret += "(" + ToStr(el.initiationIntervalINTEL) + ")"; break;
case Decoration::MaxConcurrencyINTEL:
ret += "(" + ToStr(el.maxConcurrencyINTEL) + ")"; break;
case Decoration::PipelineEnableINTEL:
ret += "(" + ToStr(el.pipelineEnableINTEL) + ")"; break;
case Decoration::BufferLocationINTEL:
ret += "(" + ToStr(el.bufferLocationINTEL) + ")"; break;
case Decoration::IOPipeStorageINTEL:
@@ -4136,6 +4197,230 @@ void OpDecoder::ForEachID(const ConstIter &it, const std::function<void(Id,bool)
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectRecordHitMotionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
callback(Id::fromWord(it.word(13)), false);
callback(Id::fromWord(it.word(14)), false);
break;
case rdcspv::Op::HitObjectRecordHitWithIndexMotionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
callback(Id::fromWord(it.word(13)), false);
break;
case rdcspv::Op::HitObjectRecordMissMotionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
break;
case rdcspv::Op::HitObjectGetWorldToObjectNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetObjectToWorldNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetObjectRayDirectionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetObjectRayOriginNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectTraceRayMotionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
callback(Id::fromWord(it.word(13)), false);
break;
case rdcspv::Op::HitObjectGetShaderRecordBufferHandleNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetShaderBindingTableRecordIndexNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectRecordEmptyNV:
callback(Id::fromWord(it.word(1)), false);
break;
case rdcspv::Op::HitObjectTraceRayNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
break;
case rdcspv::Op::HitObjectRecordHitNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
callback(Id::fromWord(it.word(13)), false);
break;
case rdcspv::Op::HitObjectRecordHitWithIndexNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
callback(Id::fromWord(it.word(7)), false);
callback(Id::fromWord(it.word(8)), false);
callback(Id::fromWord(it.word(9)), false);
callback(Id::fromWord(it.word(10)), false);
callback(Id::fromWord(it.word(11)), false);
callback(Id::fromWord(it.word(12)), false);
break;
case rdcspv::Op::HitObjectRecordMissNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
callback(Id::fromWord(it.word(3)), false);
callback(Id::fromWord(it.word(4)), false);
callback(Id::fromWord(it.word(5)), false);
callback(Id::fromWord(it.word(6)), false);
break;
case rdcspv::Op::HitObjectExecuteShaderNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
break;
case rdcspv::Op::HitObjectGetCurrentTimeNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetAttributesNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
break;
case rdcspv::Op::HitObjectGetHitKindNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetPrimitiveIndexNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetGeometryIndexNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetInstanceIdNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetInstanceCustomIndexNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetWorldRayDirectionNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetWorldRayOriginNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetRayTMaxNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectGetRayTMinNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectIsEmptyNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectIsHitNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::HitObjectIsMissNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::ReorderThreadWithHitObjectNV:
callback(Id::fromWord(it.word(1)), false);
if(2 < size) callback(Id::fromWord(it.word(2)), false);
if(3 < size) callback(Id::fromWord(it.word(3)), false);
break;
case rdcspv::Op::ReorderThreadWithHintNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), false);
break;
case rdcspv::Op::TypeHitObjectNV:
callback(Id::fromWord(it.word(1)), true);
break;
case rdcspv::Op::ImageSampleFootprintNV:
callback(Id::fromWord(it.word(1)), false);
callback(Id::fromWord(it.word(2)), true);
@@ -7276,6 +7561,224 @@ rdcstr OpDecoder::Disassemble(const ConstIter &it, const std::function<rdcstr(Id
ret += "ReadClockKHR(" + ToStr(Scope(constIntVal(decoded.scope))) + ")";
break;
}
case rdcspv::Op::HitObjectRecordHitMotionNV:
{
OpHitObjectRecordHitMotionNV decoded(it);
ret += "HitObjectRecordHitMotionNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.instanceId) + ", " + ParamToStr(idName, decoded.primitiveId) + ", " + ParamToStr(idName, decoded.geometryIndex) + ", " + ParamToStr(idName, decoded.hitKind) + ", " + ParamToStr(idName, decoded.sBTRecordOffset) + ", " + ParamToStr(idName, decoded.sBTRecordStride) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.currentTime) + ", " + ParamToStr(idName, decoded.hitObjectAttributes) + ")";
break;
}
case rdcspv::Op::HitObjectRecordHitWithIndexMotionNV:
{
OpHitObjectRecordHitWithIndexMotionNV decoded(it);
ret += "HitObjectRecordHitWithIndexMotionNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.instanceId) + ", " + ParamToStr(idName, decoded.primitiveId) + ", " + ParamToStr(idName, decoded.geometryIndex) + ", " + ParamToStr(idName, decoded.hitKind) + ", " + ParamToStr(idName, decoded.sBTRecordIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.currentTime) + ", " + ParamToStr(idName, decoded.hitObjectAttributes) + ")";
break;
}
case rdcspv::Op::HitObjectRecordMissMotionNV:
{
OpHitObjectRecordMissMotionNV decoded(it);
ret += "HitObjectRecordMissMotionNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.sBTIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.currentTime) + ")";
break;
}
case rdcspv::Op::HitObjectGetWorldToObjectNV:
{
OpHitObjectGetWorldToObjectNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetWorldToObjectNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetObjectToWorldNV:
{
OpHitObjectGetObjectToWorldNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetObjectToWorldNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetObjectRayDirectionNV:
{
OpHitObjectGetObjectRayDirectionNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetObjectRayDirectionNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetObjectRayOriginNV:
{
OpHitObjectGetObjectRayOriginNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetObjectRayOriginNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectTraceRayMotionNV:
{
OpHitObjectTraceRayMotionNV decoded(it);
ret += "HitObjectTraceRayMotionNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.rayFlags) + ", " + ParamToStr(idName, decoded.cullmask) + ", " + ParamToStr(idName, decoded.sBTRecordOffset) + ", " + ParamToStr(idName, decoded.sBTRecordStride) + ", " + ParamToStr(idName, decoded.missIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.time) + ", " + ParamToStr(idName, decoded.payload) + ")";
break;
}
case rdcspv::Op::HitObjectGetShaderRecordBufferHandleNV:
{
OpHitObjectGetShaderRecordBufferHandleNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetShaderRecordBufferHandleNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetShaderBindingTableRecordIndexNV:
{
OpHitObjectGetShaderBindingTableRecordIndexNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetShaderBindingTableRecordIndexNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectRecordEmptyNV:
{
OpHitObjectRecordEmptyNV decoded(it);
ret += "HitObjectRecordEmptyNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectTraceRayNV:
{
OpHitObjectTraceRayNV decoded(it);
ret += "HitObjectTraceRayNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.rayFlags) + ", " + ParamToStr(idName, decoded.cullmask) + ", " + ParamToStr(idName, decoded.sBTRecordOffset) + ", " + ParamToStr(idName, decoded.sBTRecordStride) + ", " + ParamToStr(idName, decoded.missIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.payload) + ")";
break;
}
case rdcspv::Op::HitObjectRecordHitNV:
{
OpHitObjectRecordHitNV decoded(it);
ret += "HitObjectRecordHitNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.instanceId) + ", " + ParamToStr(idName, decoded.primitiveId) + ", " + ParamToStr(idName, decoded.geometryIndex) + ", " + ParamToStr(idName, decoded.hitKind) + ", " + ParamToStr(idName, decoded.sBTRecordOffset) + ", " + ParamToStr(idName, decoded.sBTRecordStride) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.hitObjectAttributes) + ")";
break;
}
case rdcspv::Op::HitObjectRecordHitWithIndexNV:
{
OpHitObjectRecordHitWithIndexNV decoded(it);
ret += "HitObjectRecordHitWithIndexNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.accelerationStructure) + ", " + ParamToStr(idName, decoded.instanceId) + ", " + ParamToStr(idName, decoded.primitiveId) + ", " + ParamToStr(idName, decoded.geometryIndex) + ", " + ParamToStr(idName, decoded.hitKind) + ", " + ParamToStr(idName, decoded.sBTRecordIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ", " + ParamToStr(idName, decoded.hitObjectAttributes) + ")";
break;
}
case rdcspv::Op::HitObjectRecordMissNV:
{
OpHitObjectRecordMissNV decoded(it);
ret += "HitObjectRecordMissNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.sBTIndex) + ", " + ParamToStr(idName, decoded.origin) + ", " + ParamToStr(idName, decoded.tMin) + ", " + ParamToStr(idName, decoded.direction) + ", " + ParamToStr(idName, decoded.tMax) + ")";
break;
}
case rdcspv::Op::HitObjectExecuteShaderNV:
{
OpHitObjectExecuteShaderNV decoded(it);
ret += "HitObjectExecuteShaderNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.payload) + ")";
break;
}
case rdcspv::Op::HitObjectGetCurrentTimeNV:
{
OpHitObjectGetCurrentTimeNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetCurrentTimeNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetAttributesNV:
{
OpHitObjectGetAttributesNV decoded(it);
ret += "HitObjectGetAttributesNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.hitObjectAttribute) + ")";
break;
}
case rdcspv::Op::HitObjectGetHitKindNV:
{
OpHitObjectGetHitKindNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetHitKindNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetPrimitiveIndexNV:
{
OpHitObjectGetPrimitiveIndexNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetPrimitiveIndexNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetGeometryIndexNV:
{
OpHitObjectGetGeometryIndexNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetGeometryIndexNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetInstanceIdNV:
{
OpHitObjectGetInstanceIdNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetInstanceIdNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetInstanceCustomIndexNV:
{
OpHitObjectGetInstanceCustomIndexNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetInstanceCustomIndexNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetWorldRayDirectionNV:
{
OpHitObjectGetWorldRayDirectionNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetWorldRayDirectionNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetWorldRayOriginNV:
{
OpHitObjectGetWorldRayOriginNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetWorldRayOriginNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetRayTMaxNV:
{
OpHitObjectGetRayTMaxNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetRayTMaxNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectGetRayTMinNV:
{
OpHitObjectGetRayTMinNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectGetRayTMinNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectIsEmptyNV:
{
OpHitObjectIsEmptyNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectIsEmptyNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectIsHitNV:
{
OpHitObjectIsHitNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectIsHitNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::HitObjectIsMissNV:
{
OpHitObjectIsMissNV decoded(it);
ret += declName(decoded.resultType, decoded.result) + " = ";
ret += "HitObjectIsMissNV(" + ParamToStr(idName, decoded.hitObject) + ")";
break;
}
case rdcspv::Op::ReorderThreadWithHitObjectNV:
{
OpReorderThreadWithHitObjectNV decoded(it);
ret += "ReorderThreadWithHitObjectNV(" + ParamToStr(idName, decoded.hitObject) + ", " + ParamToStr(idName, decoded.hint) + ", " + ParamToStr(idName, decoded.bits) + ")";
break;
}
case rdcspv::Op::ReorderThreadWithHintNV:
{
OpReorderThreadWithHintNV decoded(it);
ret += "ReorderThreadWithHintNV(" + ParamToStr(idName, decoded.hint) + ", " + ParamToStr(idName, decoded.bits) + ")";
break;
}
case rdcspv::Op::TypeHitObjectNV:
{
OpTypeHitObjectNV decoded(it);
ret += idName(decoded.result) + " = ";
ret += "TypeHitObjectNV(" ")";
break;
}
case rdcspv::Op::ImageSampleFootprintNV:
{
OpImageSampleFootprintNV decoded(it);
@@ -8307,6 +8810,39 @@ OpDecoder::OpDecoder(const ConstIter &it)
case rdcspv::Op::FragmentMaskFetchAMD: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::FragmentFetchAMD: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::ReadClockKHR: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectRecordHitMotionNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectRecordHitWithIndexMotionNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectRecordMissMotionNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectGetWorldToObjectNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetObjectToWorldNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetObjectRayDirectionNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetObjectRayOriginNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectTraceRayMotionNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectGetShaderRecordBufferHandleNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetShaderBindingTableRecordIndexNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectRecordEmptyNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectTraceRayNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectRecordHitNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectRecordHitWithIndexNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectRecordMissNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectExecuteShaderNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectGetCurrentTimeNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetAttributesNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::HitObjectGetHitKindNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetPrimitiveIndexNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetGeometryIndexNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetInstanceIdNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetInstanceCustomIndexNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetWorldRayDirectionNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetWorldRayOriginNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetRayTMaxNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectGetRayTMinNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectIsEmptyNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectIsHitNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::HitObjectIsMissNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::ReorderThreadWithHitObjectNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::ReorderThreadWithHintNV: result = Id(); resultType = Id(); break;
case rdcspv::Op::TypeHitObjectNV: result = Id::fromWord(it.word(1)); resultType = Id(); break;
case rdcspv::Op::ImageSampleFootprintNV: result = Id::fromWord(it.word(2)); resultType = Id::fromWord(it.word(1)); break;
case rdcspv::Op::EmitMeshTasksEXT: result = Id(); resultType = Id(); break;
case rdcspv::Op::SetMeshOutputsEXT: result = Id(); resultType = Id(); break;
@@ -8582,6 +9118,7 @@ rdcstr DoStringise(const rdcspv::Generator &el)
STRINGISE_ENUM_CLASS_NAMED(ShaderWriter, "ShaderWriter from DragonJoker - Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter");
STRINGISE_ENUM_CLASS_NAMED(SPIRVSmith, "SPIRVSmith from Rayan Hatout - Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith");
STRINGISE_ENUM_CLASS_NAMED(Shady, "Shady from Saarland University - Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady");
STRINGISE_ENUM_CLASS_NAMED(Taichi, "Taichi from Taichi Graphics - Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi");
}
END_ENUM_STRINGISE();
}
+66 -2
View File
@@ -124,6 +124,7 @@ enum class Generator : uint32_t
ShaderWriter = 33,
SPIRVSmith = 34,
Shady = 35,
Taichi = 36,
};
enum class ImageOperands : uint32_t
@@ -202,6 +203,8 @@ enum class LoopControl : uint32_t
MaxInterleavingINTEL = 0x200000,
SpeculatedIterationsINTEL = 0x400000,
NoFusionINTEL = 0x800000,
LoopCountINTEL = 0x1000000,
MaxReinvocationDelayINTEL = 0x2000000,
Max,
Invalid = ~0U,
};
@@ -455,6 +458,7 @@ enum class ExecutionMode : uint32_t
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
NamedBarrierCountINTEL = 6417,
Max,
Invalid = ~0U,
@@ -489,6 +493,7 @@ enum class StorageClass : uint32_t
ShaderRecordBufferKHR = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
@@ -704,6 +709,7 @@ enum class FunctionParameterAttribute : uint32_t
NoCapture = 5,
NoWrite = 6,
NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
Max,
Invalid = ~0U,
};
@@ -776,6 +782,7 @@ enum class Decoration : uint32_t
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398,
BindlessImageNV = 5399,
BoundSamplerNV = 5400,
@@ -814,8 +821,12 @@ enum class Decoration : uint32_t
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914,
NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
@@ -1169,6 +1180,7 @@ enum class Capability : uint32_t
DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
@@ -1202,10 +1214,13 @@ enum class Capability : uint32_t
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
@@ -1360,7 +1375,8 @@ struct LoopControlAndParamDatas
uint32_t loopCoalesceINTEL;
uint32_t maxInterleavingINTEL;
uint32_t speculatedIterationsINTEL;
uint32_t noFusionINTEL;
uint32_t loopCountINTEL;
uint32_t maxReinvocationDelayINTEL;
operator LoopControl() const { return flags; }
bool operator &(const LoopControl v) const { return bool(flags & v); }
@@ -1398,8 +1414,12 @@ struct LoopControlAndParamDatas
void unsetMaxInterleavingINTEL() { flags &= ~LoopControl::MaxInterleavingINTEL; }
void setSpeculatedIterationsINTEL(uint32_t speculatedIterationsINTELParam) { flags |= LoopControl::SpeculatedIterationsINTEL; speculatedIterationsINTEL = speculatedIterationsINTELParam; }
void unsetSpeculatedIterationsINTEL() { flags &= ~LoopControl::SpeculatedIterationsINTEL; }
void setNoFusionINTEL(uint32_t noFusionINTELParam) { flags |= LoopControl::NoFusionINTEL; noFusionINTEL = noFusionINTELParam; }
void setNoFusionINTEL() { flags |= LoopControl::NoFusionINTEL; }
void unsetNoFusionINTEL() { flags &= ~LoopControl::NoFusionINTEL; }
void setLoopCountINTEL(uint32_t loopCountINTELParam) { flags |= LoopControl::LoopCountINTEL; loopCountINTEL = loopCountINTELParam; }
void unsetLoopCountINTEL() { flags &= ~LoopControl::LoopCountINTEL; }
void setMaxReinvocationDelayINTEL(uint32_t maxReinvocationDelayINTELParam) { flags |= LoopControl::MaxReinvocationDelayINTEL; maxReinvocationDelayINTEL = maxReinvocationDelayINTELParam; }
void unsetMaxReinvocationDelayINTEL() { flags &= ~LoopControl::MaxReinvocationDelayINTEL; }
};
struct MemoryAccessAndParamDatas
@@ -1509,6 +1529,7 @@ struct ExecutionModeAndParamData
uint32_t maxWorkDimINTEL;
uint32_t numSIMDWorkitemsINTEL;
uint32_t schedulerTargetFmaxMhzINTEL;
uint32_t streamingInterfaceINTEL;
uint32_t namedBarrierCountINTEL;
};
@@ -1528,6 +1549,12 @@ struct FunctionDenormModeINTELParams
FPDenormMode fPDenormMode;
};
struct MathOpDSPModeINTELParams
{
uint32_t mode;
uint32_t propagate;
};
struct FunctionFloatingPointModeINTELParams
{
uint32_t targetWidth;
@@ -1578,8 +1605,12 @@ struct DecorationAndParamData
uint32_t forcePow2DepthINTEL;
uint32_t cacheSizeINTEL;
uint32_t prefetchINTEL;
MathOpDSPModeINTELParams mathOpDSPModeINTEL;
Id aliasScopeINTEL;
Id noAliasINTEL;
uint32_t initiationIntervalINTEL;
uint32_t maxConcurrencyINTEL;
uint32_t pipelineEnableINTEL;
uint32_t bufferLocationINTEL;
uint32_t iOPipeStorageINTEL;
FunctionFloatingPointModeINTELParams functionFloatingPointModeINTEL;
@@ -1978,6 +2009,39 @@ enum class Op : uint16_t
FragmentMaskFetchAMD = 5011,
FragmentFetchAMD = 5012,
ReadClockKHR = 5056,
HitObjectRecordHitMotionNV = 5249,
HitObjectRecordHitWithIndexMotionNV = 5250,
HitObjectRecordMissMotionNV = 5251,
HitObjectGetWorldToObjectNV = 5252,
HitObjectGetObjectToWorldNV = 5253,
HitObjectGetObjectRayDirectionNV = 5254,
HitObjectGetObjectRayOriginNV = 5255,
HitObjectTraceRayMotionNV = 5256,
HitObjectGetShaderRecordBufferHandleNV = 5257,
HitObjectGetShaderBindingTableRecordIndexNV = 5258,
HitObjectRecordEmptyNV = 5259,
HitObjectTraceRayNV = 5260,
HitObjectRecordHitNV = 5261,
HitObjectRecordHitWithIndexNV = 5262,
HitObjectRecordMissNV = 5263,
HitObjectExecuteShaderNV = 5264,
HitObjectGetCurrentTimeNV = 5265,
HitObjectGetAttributesNV = 5266,
HitObjectGetHitKindNV = 5267,
HitObjectGetPrimitiveIndexNV = 5268,
HitObjectGetGeometryIndexNV = 5269,
HitObjectGetInstanceIdNV = 5270,
HitObjectGetInstanceCustomIndexNV = 5271,
HitObjectGetWorldRayDirectionNV = 5272,
HitObjectGetWorldRayOriginNV = 5273,
HitObjectGetRayTMaxNV = 5274,
HitObjectGetRayTMinNV = 5275,
HitObjectIsEmptyNV = 5276,
HitObjectIsHitNV = 5277,
HitObjectIsMissNV = 5278,
ReorderThreadWithHitObjectNV = 5279,
ReorderThreadWithHintNV = 5280,
TypeHitObjectNV = 5281,
ImageSampleFootprintNV = 5283,
EmitMeshTasksEXT = 5294,
SetMeshOutputsEXT = 5295,
File diff suppressed because it is too large Load Diff