Adding support for GL_EXT_ray_cull_mask
This commit is contained in:
parent
e3bca2add6
commit
3015d00ee0
@ -1007,6 +1007,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||||||
return spv::BuiltInRayTminKHR;
|
return spv::BuiltInRayTminKHR;
|
||||||
case glslang::EbvRayTmax:
|
case glslang::EbvRayTmax:
|
||||||
return spv::BuiltInRayTmaxKHR;
|
return spv::BuiltInRayTmaxKHR;
|
||||||
|
case glslang::EbvCullMask:
|
||||||
|
return spv::BuiltInCullMaskKHR;
|
||||||
case glslang::EbvInstanceCustomIndex:
|
case glslang::EbvInstanceCustomIndex:
|
||||||
return spv::BuiltInInstanceCustomIndexKHR;
|
return spv::BuiltInInstanceCustomIndexKHR;
|
||||||
case glslang::EbvHitT:
|
case glslang::EbvHitT:
|
||||||
@ -1777,6 +1779,13 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
|
|||||||
builder.addCapability(spv::CapabilityRayTracingNV);
|
builder.addCapability(spv::CapabilityRayTracingNV);
|
||||||
builder.addExtension("SPV_NV_ray_tracing");
|
builder.addExtension("SPV_NV_ray_tracing");
|
||||||
}
|
}
|
||||||
|
if (glslangIntermediate->getStage() != EShLangRayGen && glslangIntermediate->getStage() != EShLangCallable)
|
||||||
|
{
|
||||||
|
if (extensions.find("GL_EXT_ray_cull_mask") != extensions.end()) {
|
||||||
|
builder.addCapability(spv::CapabilityRayCullMaskKHR);
|
||||||
|
builder.addExtension("SPV_KHR_ray_cull_mask");
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EShLangTaskNV:
|
case EShLangTaskNV:
|
||||||
|
@ -392,6 +392,7 @@ const char* BuiltInString(int builtIn)
|
|||||||
case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
|
case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
|
||||||
case BuiltInRayTminKHR: return "RayTminKHR";
|
case BuiltInRayTminKHR: return "RayTminKHR";
|
||||||
case BuiltInRayTmaxKHR: return "RayTmaxKHR";
|
case BuiltInRayTmaxKHR: return "RayTmaxKHR";
|
||||||
|
case BuiltInCullMaskKHR: return "CullMaskKHR";
|
||||||
case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
|
case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
|
||||||
case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
|
case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
|
||||||
case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
|
case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
|
||||||
@ -925,6 +926,7 @@ const char* CapabilityString(int info)
|
|||||||
case CapabilityRayTracingNV: return "RayTracingNV";
|
case CapabilityRayTracingNV: return "RayTracingNV";
|
||||||
case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
|
case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
|
||||||
case CapabilityRayTracingKHR: return "RayTracingKHR";
|
case CapabilityRayTracingKHR: return "RayTracingKHR";
|
||||||
|
case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
|
||||||
case CapabilityRayQueryKHR: return "RayQueryKHR";
|
case CapabilityRayQueryKHR: return "RayQueryKHR";
|
||||||
case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
|
case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
|
||||||
case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
|
case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
|
||||||
|
@ -673,6 +673,7 @@ enum BuiltIn {
|
|||||||
BuiltInSMCountNV = 5375,
|
BuiltInSMCountNV = 5375,
|
||||||
BuiltInWarpIDNV = 5376,
|
BuiltInWarpIDNV = 5376,
|
||||||
BuiltInSMIDNV = 5377,
|
BuiltInSMIDNV = 5377,
|
||||||
|
BuiltInCullMaskKHR = 6021,
|
||||||
BuiltInMax = 0x7fffffff,
|
BuiltInMax = 0x7fffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1069,6 +1070,7 @@ enum Capability {
|
|||||||
CapabilityDotProductInput4x8BitPackedKHR = 6018,
|
CapabilityDotProductInput4x8BitPackedKHR = 6018,
|
||||||
CapabilityDotProduct = 6019,
|
CapabilityDotProduct = 6019,
|
||||||
CapabilityDotProductKHR = 6019,
|
CapabilityDotProductKHR = 6019,
|
||||||
|
CapabilityRayCullMaskKHR = 6020,
|
||||||
CapabilityBitInstructions = 6025,
|
CapabilityBitInstructions = 6025,
|
||||||
CapabilityAtomicFloat32AddEXT = 6033,
|
CapabilityAtomicFloat32AddEXT = 6033,
|
||||||
CapabilityAtomicFloat64AddEXT = 6034,
|
CapabilityAtomicFloat64AddEXT = 6034,
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
spv.ext.AnyHitShader.rahit
|
spv.ext.AnyHitShader.rahit
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 107
|
// Id's are bound by 110
|
||||||
|
|
||||||
Capability GroupNonUniform
|
Capability GroupNonUniform
|
||||||
Capability RayTracingKHR
|
Capability RayTracingKHR
|
||||||
|
Capability RayCullMaskKHR
|
||||||
|
Extension "SPV_KHR_ray_cull_mask"
|
||||||
Extension "SPV_KHR_ray_tracing"
|
Extension "SPV_KHR_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 84 98
|
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 84 87 101
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_ray_cull_mask"
|
||||||
SourceExtension "GL_EXT_ray_tracing"
|
SourceExtension "GL_EXT_ray_tracing"
|
||||||
SourceExtension "GL_KHR_shader_subgroup_basic"
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -49,8 +52,10 @@ spv.ext.AnyHitShader.rahit
|
|||||||
Name 76 "gl_ObjectToWorld3x4EXT"
|
Name 76 "gl_ObjectToWorld3x4EXT"
|
||||||
Name 79 "v17"
|
Name 79 "v17"
|
||||||
Name 80 "gl_WorldToObject3x4EXT"
|
Name 80 "gl_WorldToObject3x4EXT"
|
||||||
Name 84 "incomingPayload"
|
Name 83 "v18"
|
||||||
Name 98 "gl_SubgroupSize"
|
Name 84 "gl_CullMaskEXT"
|
||||||
|
Name 87 "incomingPayload"
|
||||||
|
Name 101 "gl_SubgroupSize"
|
||||||
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
||||||
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
@ -69,10 +74,11 @@ spv.ext.AnyHitShader.rahit
|
|||||||
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
|
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
|
||||||
Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
||||||
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
||||||
Decorate 98(gl_SubgroupSize) RelaxedPrecision
|
Decorate 84(gl_CullMaskEXT) BuiltIn CullMaskKHR
|
||||||
Decorate 98(gl_SubgroupSize) BuiltIn SubgroupSize
|
Decorate 101(gl_SubgroupSize) RelaxedPrecision
|
||||||
Decorate 99 RelaxedPrecision
|
Decorate 101(gl_SubgroupSize) BuiltIn SubgroupSize
|
||||||
Decorate 100 RelaxedPrecision
|
Decorate 102 RelaxedPrecision
|
||||||
|
Decorate 103 RelaxedPrecision
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -114,15 +120,16 @@ spv.ext.AnyHitShader.rahit
|
|||||||
74: TypePointer Function 73
|
74: TypePointer Function 73
|
||||||
76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input
|
76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input
|
||||||
80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input
|
80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input
|
||||||
83: TypePointer IncomingRayPayloadKHR 72(fvec4)
|
84(gl_CullMaskEXT): 57(ptr) Variable Input
|
||||||
84(incomingPayload): 83(ptr) Variable IncomingRayPayloadKHR
|
86: TypePointer IncomingRayPayloadKHR 72(fvec4)
|
||||||
85: 28(float) Constant 1056964608
|
87(incomingPayload): 86(ptr) Variable IncomingRayPayloadKHR
|
||||||
86: 72(fvec4) ConstantComposite 85 85 85 85
|
88: 28(float) Constant 1056964608
|
||||||
88: 16(int) Constant 1
|
89: 72(fvec4) ConstantComposite 88 88 88 88
|
||||||
89: TypeBool
|
91: 16(int) Constant 1
|
||||||
94: 6(int) Constant 0
|
92: TypeBool
|
||||||
98(gl_SubgroupSize): 57(ptr) Variable Input
|
97: 6(int) Constant 0
|
||||||
101: TypePointer IncomingRayPayloadKHR 28(float)
|
101(gl_SubgroupSize): 57(ptr) Variable Input
|
||||||
|
104: TypePointer IncomingRayPayloadKHR 28(float)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -143,6 +150,7 @@ spv.ext.AnyHitShader.rahit
|
|||||||
69(v15): 17(ptr) Variable Function
|
69(v15): 17(ptr) Variable Function
|
||||||
75(v16): 74(ptr) Variable Function
|
75(v16): 74(ptr) Variable Function
|
||||||
79(v17): 74(ptr) Variable Function
|
79(v17): 74(ptr) Variable Function
|
||||||
|
83(v18): 55(ptr) Variable Function
|
||||||
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
||||||
@ -181,20 +189,22 @@ spv.ext.AnyHitShader.rahit
|
|||||||
81: 60 Load 80(gl_WorldToObject3x4EXT)
|
81: 60 Load 80(gl_WorldToObject3x4EXT)
|
||||||
82: 73 Transpose 81
|
82: 73 Transpose 81
|
||||||
Store 79(v17) 82
|
Store 79(v17) 82
|
||||||
Store 84(incomingPayload) 86
|
85: 6(int) Load 84(gl_CullMaskEXT)
|
||||||
87: 16(int) Load 18(v2)
|
Store 83(v18) 85
|
||||||
90: 89(bool) IEqual 87 88
|
Store 87(incomingPayload) 89
|
||||||
SelectionMerge 92 None
|
90: 16(int) Load 18(v2)
|
||||||
BranchConditional 90 91 92
|
93: 92(bool) IEqual 90 91
|
||||||
91: Label
|
SelectionMerge 95 None
|
||||||
|
BranchConditional 93 94 95
|
||||||
|
94: Label
|
||||||
IgnoreIntersectionKHR
|
IgnoreIntersectionKHR
|
||||||
92: Label
|
95: Label
|
||||||
99: 6(int) Load 98(gl_SubgroupSize)
|
102: 6(int) Load 101(gl_SubgroupSize)
|
||||||
100: 28(float) ConvertUToF 99
|
103: 28(float) ConvertUToF 102
|
||||||
102: 101(ptr) AccessChain 84(incomingPayload) 94
|
105: 104(ptr) AccessChain 87(incomingPayload) 97
|
||||||
103: 28(float) Load 102
|
106: 28(float) Load 105
|
||||||
104: 28(float) FAdd 103 100
|
107: 28(float) FAdd 106 103
|
||||||
105: 101(ptr) AccessChain 84(incomingPayload) 94
|
108: 104(ptr) AccessChain 87(incomingPayload) 97
|
||||||
Store 105 104
|
Store 108 107
|
||||||
TerminateRayKHR
|
TerminateRayKHR
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
spv.ext.ClosestHitShader.rchit
|
spv.ext.ClosestHitShader.rchit
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 101
|
// Id's are bound by 104
|
||||||
|
|
||||||
Capability RayTracingKHR
|
Capability RayTracingKHR
|
||||||
|
Capability RayCullMaskKHR
|
||||||
|
Extension "SPV_KHR_ray_cull_mask"
|
||||||
Extension "SPV_KHR_ray_tracing"
|
Extension "SPV_KHR_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 85 98 100
|
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80 84 88 101 103
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_ray_cull_mask"
|
||||||
SourceExtension "GL_EXT_ray_tracing"
|
SourceExtension "GL_EXT_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
@ -47,9 +50,11 @@ spv.ext.ClosestHitShader.rchit
|
|||||||
Name 76 "gl_ObjectToWorld3x4EXT"
|
Name 76 "gl_ObjectToWorld3x4EXT"
|
||||||
Name 79 "v17"
|
Name 79 "v17"
|
||||||
Name 80 "gl_WorldToObject3x4EXT"
|
Name 80 "gl_WorldToObject3x4EXT"
|
||||||
Name 85 "accEXT"
|
Name 83 "v18"
|
||||||
Name 98 "incomingPayload"
|
Name 84 "gl_CullMaskEXT"
|
||||||
Name 100 "localPayload"
|
Name 88 "accEXT"
|
||||||
|
Name 101 "incomingPayload"
|
||||||
|
Name 103 "localPayload"
|
||||||
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
||||||
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
@ -68,8 +73,9 @@ spv.ext.ClosestHitShader.rchit
|
|||||||
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
|
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
|
||||||
Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
||||||
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
||||||
Decorate 85(accEXT) DescriptorSet 0
|
Decorate 84(gl_CullMaskEXT) BuiltIn CullMaskKHR
|
||||||
Decorate 85(accEXT) Binding 0
|
Decorate 88(accEXT) DescriptorSet 0
|
||||||
|
Decorate 88(accEXT) Binding 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -111,23 +117,24 @@ spv.ext.ClosestHitShader.rchit
|
|||||||
74: TypePointer Function 73
|
74: TypePointer Function 73
|
||||||
76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input
|
76(gl_ObjectToWorld3x4EXT): 63(ptr) Variable Input
|
||||||
80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input
|
80(gl_WorldToObject3x4EXT): 63(ptr) Variable Input
|
||||||
83: TypeAccelerationStructureKHR
|
84(gl_CullMaskEXT): 57(ptr) Variable Input
|
||||||
84: TypePointer UniformConstant 83
|
86: TypeAccelerationStructureKHR
|
||||||
85(accEXT): 84(ptr) Variable UniformConstant
|
87: TypePointer UniformConstant 86
|
||||||
87: 6(int) Constant 0
|
88(accEXT): 87(ptr) Variable UniformConstant
|
||||||
88: 6(int) Constant 1
|
90: 6(int) Constant 0
|
||||||
89: 6(int) Constant 2
|
91: 6(int) Constant 1
|
||||||
90: 6(int) Constant 3
|
92: 6(int) Constant 2
|
||||||
91: 28(float) Constant 1056964608
|
93: 6(int) Constant 3
|
||||||
92: 29(fvec3) ConstantComposite 91 91 91
|
94: 28(float) Constant 1056964608
|
||||||
93: 28(float) Constant 1065353216
|
95: 29(fvec3) ConstantComposite 94 94 94
|
||||||
94: 29(fvec3) ConstantComposite 93 93 93
|
96: 28(float) Constant 1065353216
|
||||||
95: 28(float) Constant 1061158912
|
97: 29(fvec3) ConstantComposite 96 96 96
|
||||||
96: 16(int) Constant 1
|
98: 28(float) Constant 1061158912
|
||||||
97: TypePointer IncomingRayPayloadKHR 72(fvec4)
|
99: 16(int) Constant 1
|
||||||
98(incomingPayload): 97(ptr) Variable IncomingRayPayloadKHR
|
100: TypePointer IncomingRayPayloadKHR 72(fvec4)
|
||||||
99: TypePointer RayPayloadKHR 72(fvec4)
|
101(incomingPayload): 100(ptr) Variable IncomingRayPayloadKHR
|
||||||
100(localPayload): 99(ptr) Variable RayPayloadKHR
|
102: TypePointer RayPayloadKHR 72(fvec4)
|
||||||
|
103(localPayload): 102(ptr) Variable RayPayloadKHR
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -148,6 +155,7 @@ spv.ext.ClosestHitShader.rchit
|
|||||||
69(v15): 17(ptr) Variable Function
|
69(v15): 17(ptr) Variable Function
|
||||||
75(v16): 74(ptr) Variable Function
|
75(v16): 74(ptr) Variable Function
|
||||||
79(v17): 74(ptr) Variable Function
|
79(v17): 74(ptr) Variable Function
|
||||||
|
83(v18): 55(ptr) Variable Function
|
||||||
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
||||||
@ -186,7 +194,9 @@ spv.ext.ClosestHitShader.rchit
|
|||||||
81: 60 Load 80(gl_WorldToObject3x4EXT)
|
81: 60 Load 80(gl_WorldToObject3x4EXT)
|
||||||
82: 73 Transpose 81
|
82: 73 Transpose 81
|
||||||
Store 79(v17) 82
|
Store 79(v17) 82
|
||||||
86: 83 Load 85(accEXT)
|
85: 6(int) Load 84(gl_CullMaskEXT)
|
||||||
TraceRayKHR 86 87 88 89 90 87 92 91 94 95 98(incomingPayload)
|
Store 83(v18) 85
|
||||||
|
89: 86 Load 88(accEXT)
|
||||||
|
TraceRayKHR 89 90 91 92 93 90 95 94 97 98 101(incomingPayload)
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
spv.ext.IntersectShader.rint
|
spv.ext.IntersectShader.rint
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 81
|
// Id's are bound by 86
|
||||||
|
|
||||||
Capability RayTracingKHR
|
Capability RayTracingKHR
|
||||||
|
Capability RayCullMaskKHR
|
||||||
|
Extension "SPV_KHR_ray_cull_mask"
|
||||||
Extension "SPV_KHR_ray_tracing"
|
Extension "SPV_KHR_ray_tracing"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 65 69 73
|
EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 65 69 75 78
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_ray_cull_mask"
|
||||||
SourceExtension "GL_EXT_ray_tracing"
|
SourceExtension "GL_EXT_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "v0"
|
Name 9 "v0"
|
||||||
@ -41,7 +44,9 @@ spv.ext.IntersectShader.rint
|
|||||||
Name 65 "gl_ObjectToWorld3x4EXT"
|
Name 65 "gl_ObjectToWorld3x4EXT"
|
||||||
Name 68 "v14"
|
Name 68 "v14"
|
||||||
Name 69 "gl_WorldToObject3x4EXT"
|
Name 69 "gl_WorldToObject3x4EXT"
|
||||||
Name 73 "iAttr"
|
Name 73 "v15"
|
||||||
|
Name 75 "gl_CullMaskEXT"
|
||||||
|
Name 78 "iAttr"
|
||||||
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
||||||
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
||||||
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
@ -59,6 +64,7 @@ spv.ext.IntersectShader.rint
|
|||||||
Decorate 59(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
|
Decorate 59(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
|
||||||
Decorate 65(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
Decorate 65(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
|
||||||
Decorate 69(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
Decorate 69(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
|
||||||
|
Decorate 75(gl_CullMaskEXT) BuiltIn CullMaskKHR
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -95,14 +101,17 @@ spv.ext.IntersectShader.rint
|
|||||||
63: TypePointer Function 62
|
63: TypePointer Function 62
|
||||||
65(gl_ObjectToWorld3x4EXT): 55(ptr) Variable Input
|
65(gl_ObjectToWorld3x4EXT): 55(ptr) Variable Input
|
||||||
69(gl_WorldToObject3x4EXT): 55(ptr) Variable Input
|
69(gl_WorldToObject3x4EXT): 55(ptr) Variable Input
|
||||||
72: TypePointer HitAttributeKHR 61(fvec4)
|
72: TypePointer Function 6(int)
|
||||||
73(iAttr): 72(ptr) Variable HitAttributeKHR
|
74: TypePointer Input 6(int)
|
||||||
74: 28(float) Constant 1056964608
|
75(gl_CullMaskEXT): 74(ptr) Variable Input
|
||||||
75: 28(float) Constant 0
|
77: TypePointer HitAttributeKHR 61(fvec4)
|
||||||
76: 28(float) Constant 1065353216
|
78(iAttr): 77(ptr) Variable HitAttributeKHR
|
||||||
77: 61(fvec4) ConstantComposite 74 74 75 76
|
79: 28(float) Constant 1056964608
|
||||||
78: 6(int) Constant 1
|
80: 28(float) Constant 0
|
||||||
79: TypeBool
|
81: 28(float) Constant 1065353216
|
||||||
|
82: 61(fvec4) ConstantComposite 79 79 80 81
|
||||||
|
83: 6(int) Constant 1
|
||||||
|
84: TypeBool
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -120,6 +129,7 @@ spv.ext.IntersectShader.rint
|
|||||||
58(v12): 53(ptr) Variable Function
|
58(v12): 53(ptr) Variable Function
|
||||||
64(v13): 63(ptr) Variable Function
|
64(v13): 63(ptr) Variable Function
|
||||||
68(v14): 63(ptr) Variable Function
|
68(v14): 63(ptr) Variable Function
|
||||||
|
73(v15): 72(ptr) Variable Function
|
||||||
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
||||||
@ -152,7 +162,9 @@ spv.ext.IntersectShader.rint
|
|||||||
70: 52 Load 69(gl_WorldToObject3x4EXT)
|
70: 52 Load 69(gl_WorldToObject3x4EXT)
|
||||||
71: 62 Transpose 70
|
71: 62 Transpose 70
|
||||||
Store 68(v14) 71
|
Store 68(v14) 71
|
||||||
Store 73(iAttr) 77
|
76: 6(int) Load 75(gl_CullMaskEXT)
|
||||||
80: 79(bool) ReportIntersectionKHR 74 78
|
Store 73(v15) 76
|
||||||
|
Store 78(iAttr) 82
|
||||||
|
85: 84(bool) ReportIntersectionKHR 79 83
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
spv.ext.MissShader.rmiss
|
spv.ext.MissShader.rmiss
|
||||||
// Module Version 10400
|
// Module Version 10400
|
||||||
// Generated by (magic number): 8000a
|
// Generated by (magic number): 8000a
|
||||||
// Id's are bound by 90
|
// Id's are bound by 94
|
||||||
|
|
||||||
Capability MinLod
|
Capability MinLod
|
||||||
Capability GroupNonUniform
|
Capability GroupNonUniform
|
||||||
@ -9,15 +9,18 @@ spv.ext.MissShader.rmiss
|
|||||||
Capability SubgroupBallotKHR
|
Capability SubgroupBallotKHR
|
||||||
Capability RayTracingKHR
|
Capability RayTracingKHR
|
||||||
Capability ShaderSMBuiltinsNV
|
Capability ShaderSMBuiltinsNV
|
||||||
|
Capability RayCullMaskKHR
|
||||||
|
Extension "SPV_KHR_ray_cull_mask"
|
||||||
Extension "SPV_KHR_ray_tracing"
|
Extension "SPV_KHR_ray_tracing"
|
||||||
Extension "SPV_KHR_shader_ballot"
|
Extension "SPV_KHR_shader_ballot"
|
||||||
Extension "SPV_NV_shader_sm_builtins"
|
Extension "SPV_NV_shader_sm_builtins"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint MissKHR 4 "main" 11 14 21 24 29 32 36 51 53 58 63 74 78 85 89
|
EntryPoint MissKHR 4 "main" 11 14 21 24 29 32 37 41 56 57 62 67 78 82 89 93
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
SourceExtension "GL_ARB_shader_ballot"
|
SourceExtension "GL_ARB_shader_ballot"
|
||||||
SourceExtension "GL_ARB_sparse_texture_clamp"
|
SourceExtension "GL_ARB_sparse_texture_clamp"
|
||||||
|
SourceExtension "GL_EXT_ray_cull_mask"
|
||||||
SourceExtension "GL_EXT_ray_tracing"
|
SourceExtension "GL_EXT_ray_tracing"
|
||||||
SourceExtension "GL_KHR_shader_subgroup_ballot"
|
SourceExtension "GL_KHR_shader_subgroup_ballot"
|
||||||
SourceExtension "GL_KHR_shader_subgroup_basic"
|
SourceExtension "GL_KHR_shader_subgroup_basic"
|
||||||
@ -35,37 +38,40 @@ spv.ext.MissShader.rmiss
|
|||||||
Name 29 "gl_RayTminEXT"
|
Name 29 "gl_RayTminEXT"
|
||||||
Name 31 "v5"
|
Name 31 "v5"
|
||||||
Name 32 "gl_RayTmaxEXT"
|
Name 32 "gl_RayTmaxEXT"
|
||||||
Name 36 "accEXT"
|
Name 35 "v6"
|
||||||
Name 51 "incomingPayload"
|
Name 37 "gl_CullMaskEXT"
|
||||||
Name 53 "gl_SubGroupSizeARB"
|
Name 41 "accEXT"
|
||||||
Name 58 "gl_SubgroupEqMask"
|
Name 56 "incomingPayload"
|
||||||
Name 63 "gl_WarpIDNV"
|
Name 57 "gl_SubGroupSizeARB"
|
||||||
Name 70 "texel"
|
Name 62 "gl_SubgroupEqMask"
|
||||||
Name 74 "s2D"
|
Name 67 "gl_WarpIDNV"
|
||||||
Name 78 "c2"
|
Name 74 "texel"
|
||||||
Name 85 "lodClamp"
|
Name 78 "s2D"
|
||||||
Name 89 "localPayload"
|
Name 82 "c2"
|
||||||
|
Name 89 "lodClamp"
|
||||||
|
Name 93 "localPayload"
|
||||||
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
|
||||||
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
|
||||||
Decorate 21(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR
|
Decorate 21(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR
|
||||||
Decorate 24(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR
|
Decorate 24(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR
|
||||||
Decorate 29(gl_RayTminEXT) BuiltIn RayTminKHR
|
Decorate 29(gl_RayTminEXT) BuiltIn RayTminKHR
|
||||||
Decorate 32(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
|
Decorate 32(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
|
||||||
Decorate 36(accEXT) DescriptorSet 0
|
Decorate 37(gl_CullMaskEXT) BuiltIn CullMaskKHR
|
||||||
Decorate 36(accEXT) Binding 0
|
Decorate 41(accEXT) DescriptorSet 0
|
||||||
Decorate 53(gl_SubGroupSizeARB) BuiltIn SubgroupSize
|
Decorate 41(accEXT) Binding 0
|
||||||
Decorate 53(gl_SubGroupSizeARB) Volatile
|
Decorate 57(gl_SubGroupSizeARB) BuiltIn SubgroupSize
|
||||||
Decorate 53(gl_SubGroupSizeARB) Coherent
|
Decorate 57(gl_SubGroupSizeARB) Volatile
|
||||||
Decorate 58(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
Decorate 57(gl_SubGroupSizeARB) Coherent
|
||||||
Decorate 58(gl_SubgroupEqMask) Volatile
|
Decorate 62(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
||||||
Decorate 58(gl_SubgroupEqMask) Coherent
|
Decorate 62(gl_SubgroupEqMask) Volatile
|
||||||
Decorate 63(gl_WarpIDNV) BuiltIn WarpIDNV
|
Decorate 62(gl_SubgroupEqMask) Coherent
|
||||||
Decorate 63(gl_WarpIDNV) Volatile
|
Decorate 67(gl_WarpIDNV) BuiltIn WarpIDNV
|
||||||
Decorate 63(gl_WarpIDNV) Coherent
|
Decorate 67(gl_WarpIDNV) Volatile
|
||||||
Decorate 74(s2D) DescriptorSet 0
|
Decorate 67(gl_WarpIDNV) Coherent
|
||||||
Decorate 74(s2D) Binding 1
|
Decorate 78(s2D) DescriptorSet 0
|
||||||
Decorate 78(c2) Location 2
|
Decorate 78(s2D) Binding 1
|
||||||
Decorate 85(lodClamp) Location 3
|
Decorate 82(c2) Location 2
|
||||||
|
Decorate 89(lodClamp) Location 3
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -84,44 +90,46 @@ spv.ext.MissShader.rmiss
|
|||||||
28: TypePointer Input 16(float)
|
28: TypePointer Input 16(float)
|
||||||
29(gl_RayTminEXT): 28(ptr) Variable Input
|
29(gl_RayTminEXT): 28(ptr) Variable Input
|
||||||
32(gl_RayTmaxEXT): 28(ptr) Variable Input
|
32(gl_RayTmaxEXT): 28(ptr) Variable Input
|
||||||
34: TypeAccelerationStructureKHR
|
34: TypePointer Function 6(int)
|
||||||
35: TypePointer UniformConstant 34
|
36: TypePointer Input 6(int)
|
||||||
36(accEXT): 35(ptr) Variable UniformConstant
|
37(gl_CullMaskEXT): 36(ptr) Variable Input
|
||||||
38: 6(int) Constant 0
|
39: TypeAccelerationStructureKHR
|
||||||
39: 6(int) Constant 1
|
40: TypePointer UniformConstant 39
|
||||||
40: 6(int) Constant 2
|
41(accEXT): 40(ptr) Variable UniformConstant
|
||||||
41: 6(int) Constant 3
|
43: 6(int) Constant 0
|
||||||
42: 16(float) Constant 1056964608
|
44: 6(int) Constant 1
|
||||||
43: 17(fvec3) ConstantComposite 42 42 42
|
45: 6(int) Constant 2
|
||||||
44: 16(float) Constant 1065353216
|
46: 6(int) Constant 3
|
||||||
45: 17(fvec3) ConstantComposite 44 44 44
|
47: 16(float) Constant 1056964608
|
||||||
46: 16(float) Constant 1061158912
|
48: 17(fvec3) ConstantComposite 47 47 47
|
||||||
47: TypeInt 32 1
|
49: 16(float) Constant 1065353216
|
||||||
48: 47(int) Constant 1
|
50: 17(fvec3) ConstantComposite 49 49 49
|
||||||
49: TypeVector 16(float) 4
|
51: 16(float) Constant 1061158912
|
||||||
50: TypePointer IncomingRayPayloadKHR 49(fvec4)
|
52: TypeInt 32 1
|
||||||
51(incomingPayload): 50(ptr) Variable IncomingRayPayloadKHR
|
53: 52(int) Constant 1
|
||||||
52: TypePointer Input 6(int)
|
54: TypeVector 16(float) 4
|
||||||
53(gl_SubGroupSizeARB): 52(ptr) Variable Input
|
55: TypePointer IncomingRayPayloadKHR 54(fvec4)
|
||||||
56: TypeVector 6(int) 4
|
56(incomingPayload): 55(ptr) Variable IncomingRayPayloadKHR
|
||||||
57: TypePointer Input 56(ivec4)
|
57(gl_SubGroupSizeARB): 36(ptr) Variable Input
|
||||||
58(gl_SubgroupEqMask): 57(ptr) Variable Input
|
60: TypeVector 6(int) 4
|
||||||
63(gl_WarpIDNV): 52(ptr) Variable Input
|
61: TypePointer Input 60(ivec4)
|
||||||
67: TypePointer IncomingRayPayloadKHR 16(float)
|
62(gl_SubgroupEqMask): 61(ptr) Variable Input
|
||||||
69: TypePointer Function 49(fvec4)
|
67(gl_WarpIDNV): 36(ptr) Variable Input
|
||||||
71: TypeImage 16(float) 2D sampled format:Unknown
|
71: TypePointer IncomingRayPayloadKHR 16(float)
|
||||||
72: TypeSampledImage 71
|
73: TypePointer Function 54(fvec4)
|
||||||
73: TypePointer UniformConstant 72
|
75: TypeImage 16(float) 2D sampled format:Unknown
|
||||||
74(s2D): 73(ptr) Variable UniformConstant
|
76: TypeSampledImage 75
|
||||||
76: TypeVector 16(float) 2
|
77: TypePointer UniformConstant 76
|
||||||
77: TypePointer Input 76(fvec2)
|
78(s2D): 77(ptr) Variable UniformConstant
|
||||||
78(c2): 77(ptr) Variable Input
|
80: TypeVector 16(float) 2
|
||||||
82: TypeVector 47(int) 2
|
81: TypePointer Input 80(fvec2)
|
||||||
83: 47(int) Constant 5
|
82(c2): 81(ptr) Variable Input
|
||||||
84: 82(ivec2) ConstantComposite 83 83
|
86: TypeVector 52(int) 2
|
||||||
85(lodClamp): 28(ptr) Variable Input
|
87: 52(int) Constant 5
|
||||||
88: TypePointer RayPayloadKHR 49(fvec4)
|
88: 86(ivec2) ConstantComposite 87 87
|
||||||
89(localPayload): 88(ptr) Variable RayPayloadKHR
|
89(lodClamp): 28(ptr) Variable Input
|
||||||
|
92: TypePointer RayPayloadKHR 54(fvec4)
|
||||||
|
93(localPayload): 92(ptr) Variable RayPayloadKHR
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(v0): 8(ptr) Variable Function
|
9(v0): 8(ptr) Variable Function
|
||||||
@ -130,7 +138,8 @@ spv.ext.MissShader.rmiss
|
|||||||
23(v3): 18(ptr) Variable Function
|
23(v3): 18(ptr) Variable Function
|
||||||
27(v4): 26(ptr) Variable Function
|
27(v4): 26(ptr) Variable Function
|
||||||
31(v5): 26(ptr) Variable Function
|
31(v5): 26(ptr) Variable Function
|
||||||
70(texel): 69(ptr) Variable Function
|
35(v6): 34(ptr) Variable Function
|
||||||
|
74(texel): 73(ptr) Variable Function
|
||||||
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
|
||||||
Store 9(v0) 12
|
Store 9(v0) 12
|
||||||
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
|
||||||
@ -143,25 +152,27 @@ spv.ext.MissShader.rmiss
|
|||||||
Store 27(v4) 30
|
Store 27(v4) 30
|
||||||
33: 16(float) Load 32(gl_RayTmaxEXT)
|
33: 16(float) Load 32(gl_RayTmaxEXT)
|
||||||
Store 31(v5) 33
|
Store 31(v5) 33
|
||||||
37: 34 Load 36(accEXT)
|
38: 6(int) Load 37(gl_CullMaskEXT)
|
||||||
TraceRayKHR 37 38 39 40 41 38 43 42 45 46 51(incomingPayload)
|
Store 35(v6) 38
|
||||||
54: 6(int) Load 53(gl_SubGroupSizeARB)
|
42: 39 Load 41(accEXT)
|
||||||
55: 16(float) ConvertUToF 54
|
TraceRayKHR 42 43 44 45 46 43 48 47 50 51 56(incomingPayload)
|
||||||
59: 56(ivec4) Load 58(gl_SubgroupEqMask)
|
58: 6(int) Load 57(gl_SubGroupSizeARB)
|
||||||
60: 49(fvec4) ConvertUToF 59
|
59: 16(float) ConvertUToF 58
|
||||||
61: 16(float) CompositeExtract 60 0
|
63: 60(ivec4) Load 62(gl_SubgroupEqMask)
|
||||||
62: 16(float) FAdd 55 61
|
64: 54(fvec4) ConvertUToF 63
|
||||||
64: 6(int) Load 63(gl_WarpIDNV)
|
65: 16(float) CompositeExtract 64 0
|
||||||
65: 16(float) ConvertUToF 64
|
66: 16(float) FAdd 59 65
|
||||||
66: 16(float) FAdd 62 65
|
68: 6(int) Load 67(gl_WarpIDNV)
|
||||||
68: 67(ptr) AccessChain 51(incomingPayload) 38
|
69: 16(float) ConvertUToF 68
|
||||||
Store 68 66
|
70: 16(float) FAdd 66 69
|
||||||
75: 72 Load 74(s2D)
|
72: 71(ptr) AccessChain 56(incomingPayload) 43
|
||||||
79: 76(fvec2) Load 78(c2)
|
Store 72 70
|
||||||
80: 76(fvec2) Load 78(c2)
|
79: 76 Load 78(s2D)
|
||||||
81: 76(fvec2) Load 78(c2)
|
83: 80(fvec2) Load 82(c2)
|
||||||
86: 16(float) Load 85(lodClamp)
|
84: 80(fvec2) Load 82(c2)
|
||||||
87: 49(fvec4) ImageSampleExplicitLod 75 79 Grad ConstOffset MinLod 80 81 84 86
|
85: 80(fvec2) Load 82(c2)
|
||||||
Store 70(texel) 87
|
90: 16(float) Load 89(lodClamp)
|
||||||
|
91: 54(fvec4) ImageSampleExplicitLod 79 83 Grad ConstOffset MinLod 84 85 88 90
|
||||||
|
Store 74(texel) 91
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_EXT_ray_tracing : enable
|
#extension GL_EXT_ray_tracing : enable
|
||||||
#extension GL_KHR_shader_subgroup_basic : enable
|
#extension GL_KHR_shader_subgroup_basic : enable
|
||||||
|
#extension GL_EXT_ray_cull_mask : enable
|
||||||
|
|
||||||
layout(location = 1) rayPayloadInEXT vec4 incomingPayload;
|
layout(location = 1) rayPayloadInEXT vec4 incomingPayload;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -22,6 +24,7 @@ void main()
|
|||||||
int v15 = gl_GeometryIndexEXT;
|
int v15 = gl_GeometryIndexEXT;
|
||||||
mat3x4 v16 = gl_ObjectToWorld3x4EXT;
|
mat3x4 v16 = gl_ObjectToWorld3x4EXT;
|
||||||
mat3x4 v17 = gl_WorldToObject3x4EXT;
|
mat3x4 v17 = gl_WorldToObject3x4EXT;
|
||||||
|
uint v18 = gl_CullMaskEXT;
|
||||||
incomingPayload = vec4(0.5f);
|
incomingPayload = vec4(0.5f);
|
||||||
if (v2 == 1) {
|
if (v2 == 1) {
|
||||||
ignoreIntersectionEXT;
|
ignoreIntersectionEXT;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_EXT_ray_tracing : enable
|
#extension GL_EXT_ray_tracing : enable
|
||||||
|
#extension GL_EXT_ray_cull_mask : enable
|
||||||
|
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
|
layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
|
||||||
layout(location = 0) rayPayloadEXT vec4 localPayload;
|
layout(location = 0) rayPayloadEXT vec4 localPayload;
|
||||||
layout(location = 1) rayPayloadInEXT vec4 incomingPayload;
|
layout(location = 1) rayPayloadInEXT vec4 incomingPayload;
|
||||||
@ -23,5 +25,6 @@ void main()
|
|||||||
int v15 = gl_GeometryIndexEXT;
|
int v15 = gl_GeometryIndexEXT;
|
||||||
mat3x4 v16 = gl_ObjectToWorld3x4EXT;
|
mat3x4 v16 = gl_ObjectToWorld3x4EXT;
|
||||||
mat3x4 v17 = gl_WorldToObject3x4EXT;
|
mat3x4 v17 = gl_WorldToObject3x4EXT;
|
||||||
|
uint v18 = gl_CullMaskEXT;
|
||||||
traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_EXT_ray_tracing : enable
|
#extension GL_EXT_ray_tracing : enable
|
||||||
|
#extension GL_EXT_ray_cull_mask : enable
|
||||||
hitAttributeEXT vec4 iAttr;
|
hitAttributeEXT vec4 iAttr;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -18,6 +19,7 @@ void main()
|
|||||||
mat4x3 v12 = gl_WorldToObjectEXT;
|
mat4x3 v12 = gl_WorldToObjectEXT;
|
||||||
mat3x4 v13 = gl_ObjectToWorld3x4EXT;
|
mat3x4 v13 = gl_ObjectToWorld3x4EXT;
|
||||||
mat3x4 v14 = gl_WorldToObject3x4EXT;
|
mat3x4 v14 = gl_WorldToObject3x4EXT;
|
||||||
|
uint v15 = gl_CullMaskEXT;
|
||||||
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
|
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
|
||||||
reportIntersectionEXT(0.5, 1U);
|
reportIntersectionEXT(0.5, 1U);
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#extension GL_ARB_shader_ballot : enable
|
#extension GL_ARB_shader_ballot : enable
|
||||||
#extension GL_NV_shader_sm_builtins : enable
|
#extension GL_NV_shader_sm_builtins : enable
|
||||||
#extension GL_ARB_sparse_texture_clamp: enable
|
#extension GL_ARB_sparse_texture_clamp: enable
|
||||||
|
#extension GL_EXT_ray_cull_mask : enable
|
||||||
|
|
||||||
layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
|
layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
|
||||||
layout(location = 0) rayPayloadEXT vec4 localPayload;
|
layout(location = 0) rayPayloadEXT vec4 localPayload;
|
||||||
@ -22,6 +23,7 @@ void main()
|
|||||||
vec3 v3 = gl_WorldRayDirectionEXT;
|
vec3 v3 = gl_WorldRayDirectionEXT;
|
||||||
float v4 = gl_RayTminEXT;
|
float v4 = gl_RayTminEXT;
|
||||||
float v5 = gl_RayTmaxEXT;
|
float v5 = gl_RayTmaxEXT;
|
||||||
|
uint v6 = gl_CullMaskEXT;
|
||||||
traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
traceRayEXT(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
|
||||||
incomingPayload.x = float(gl_SubGroupSizeARB) + float(gl_SubgroupEqMask) + float(gl_WarpIDNV);
|
incomingPayload.x = float(gl_SubGroupSizeARB) + float(gl_SubgroupEqMask) + float(gl_WarpIDNV);
|
||||||
vec4 texel = textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp);
|
vec4 texel = textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp);
|
||||||
|
@ -263,6 +263,7 @@ enum TBuiltInVariable {
|
|||||||
EbvObjectRayDirection,
|
EbvObjectRayDirection,
|
||||||
EbvRayTmin,
|
EbvRayTmin,
|
||||||
EbvRayTmax,
|
EbvRayTmax,
|
||||||
|
EbvCullMask,
|
||||||
EbvHitT,
|
EbvHitT,
|
||||||
EbvHitKind,
|
EbvHitKind,
|
||||||
EbvObjectToWorld,
|
EbvObjectToWorld,
|
||||||
|
@ -5857,6 +5857,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"in uint gl_IncomingRayFlagsNV;"
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"in uint gl_IncomingRayFlagsEXT;"
|
"in uint gl_IncomingRayFlagsEXT;"
|
||||||
"in float gl_CurrentRayTimeNV;"
|
"in float gl_CurrentRayTimeNV;"
|
||||||
|
"in uint gl_CullMaskEXT;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *hitDecls =
|
const char *hitDecls =
|
||||||
"in uvec3 gl_LaunchIDNV;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
@ -5893,6 +5894,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"in uint gl_IncomingRayFlagsNV;"
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"in uint gl_IncomingRayFlagsEXT;"
|
"in uint gl_IncomingRayFlagsEXT;"
|
||||||
"in float gl_CurrentRayTimeNV;"
|
"in float gl_CurrentRayTimeNV;"
|
||||||
|
"in uint gl_CullMaskEXT;"
|
||||||
"\n";
|
"\n";
|
||||||
const char *missDecls =
|
const char *missDecls =
|
||||||
"in uvec3 gl_LaunchIDNV;"
|
"in uvec3 gl_LaunchIDNV;"
|
||||||
@ -5912,6 +5914,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"in uint gl_IncomingRayFlagsNV;"
|
"in uint gl_IncomingRayFlagsNV;"
|
||||||
"in uint gl_IncomingRayFlagsEXT;"
|
"in uint gl_IncomingRayFlagsEXT;"
|
||||||
"in float gl_CurrentRayTimeNV;"
|
"in float gl_CurrentRayTimeNV;"
|
||||||
|
"in uint gl_CullMaskEXT;"
|
||||||
"\n";
|
"\n";
|
||||||
|
|
||||||
const char *callableDecls =
|
const char *callableDecls =
|
||||||
@ -8743,6 +8746,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
symbolTable.setVariableExtensions("gl_RayTminEXT", 1, &E_GL_EXT_ray_tracing);
|
symbolTable.setVariableExtensions("gl_RayTminEXT", 1, &E_GL_EXT_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_RayTmaxNV", 1, &E_GL_NV_ray_tracing);
|
symbolTable.setVariableExtensions("gl_RayTmaxNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_RayTmaxEXT", 1, &E_GL_EXT_ray_tracing);
|
symbolTable.setVariableExtensions("gl_RayTmaxEXT", 1, &E_GL_EXT_ray_tracing);
|
||||||
|
symbolTable.setVariableExtensions("gl_CullMaskEXT", 1, &E_GL_EXT_ray_cull_mask);
|
||||||
symbolTable.setVariableExtensions("gl_HitTNV", 1, &E_GL_NV_ray_tracing);
|
symbolTable.setVariableExtensions("gl_HitTNV", 1, &E_GL_NV_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_HitTEXT", 1, &E_GL_EXT_ray_tracing);
|
symbolTable.setVariableExtensions("gl_HitTEXT", 1, &E_GL_EXT_ray_tracing);
|
||||||
symbolTable.setVariableExtensions("gl_HitKindNV", 1, &E_GL_NV_ray_tracing);
|
symbolTable.setVariableExtensions("gl_HitKindNV", 1, &E_GL_NV_ray_tracing);
|
||||||
@ -8792,6 +8796,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
BuiltInVariable("gl_RayTminEXT", EbvRayTmin, symbolTable);
|
BuiltInVariable("gl_RayTminEXT", EbvRayTmin, symbolTable);
|
||||||
BuiltInVariable("gl_RayTmaxNV", EbvRayTmax, symbolTable);
|
BuiltInVariable("gl_RayTmaxNV", EbvRayTmax, symbolTable);
|
||||||
BuiltInVariable("gl_RayTmaxEXT", EbvRayTmax, symbolTable);
|
BuiltInVariable("gl_RayTmaxEXT", EbvRayTmax, symbolTable);
|
||||||
|
BuiltInVariable("gl_CullMaskEXT", EbvCullMask, symbolTable);
|
||||||
BuiltInVariable("gl_HitTNV", EbvHitT, symbolTable);
|
BuiltInVariable("gl_HitTNV", EbvHitT, symbolTable);
|
||||||
BuiltInVariable("gl_HitTEXT", EbvHitT, symbolTable);
|
BuiltInVariable("gl_HitTEXT", EbvHitT, symbolTable);
|
||||||
BuiltInVariable("gl_HitKindNV", EbvHitKind, symbolTable);
|
BuiltInVariable("gl_HitKindNV", EbvHitKind, symbolTable);
|
||||||
|
@ -334,6 +334,7 @@ void TParseVersions::initializeExtensionBehavior()
|
|||||||
extensionBehavior[E_GL_EXT_ray_tracing] = EBhDisable;
|
extensionBehavior[E_GL_EXT_ray_tracing] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_ray_query] = EBhDisable;
|
extensionBehavior[E_GL_EXT_ray_query] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_ray_flags_primitive_culling] = EBhDisable;
|
extensionBehavior[E_GL_EXT_ray_flags_primitive_culling] = EBhDisable;
|
||||||
|
extensionBehavior[E_GL_EXT_ray_cull_mask] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_blend_func_extended] = EBhDisable;
|
extensionBehavior[E_GL_EXT_blend_func_extended] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shader_implicit_conversions] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_implicit_conversions] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
|
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
|
||||||
@ -505,6 +506,7 @@ void TParseVersions::getPreamble(std::string& preamble)
|
|||||||
"#define GL_EXT_ray_tracing 1\n"
|
"#define GL_EXT_ray_tracing 1\n"
|
||||||
"#define GL_EXT_ray_query 1\n"
|
"#define GL_EXT_ray_query 1\n"
|
||||||
"#define GL_EXT_ray_flags_primitive_culling 1\n"
|
"#define GL_EXT_ray_flags_primitive_culling 1\n"
|
||||||
|
"#define GL_EXT_ray_cull_mask 1\n"
|
||||||
"#define GL_EXT_spirv_intrinsics 1\n"
|
"#define GL_EXT_spirv_intrinsics 1\n"
|
||||||
|
|
||||||
"#define GL_AMD_shader_ballot 1\n"
|
"#define GL_AMD_shader_ballot 1\n"
|
||||||
|
@ -201,6 +201,7 @@ const char* const E_GL_EXT_debug_printf = "GL_EXT_debug_prin
|
|||||||
const char* const E_GL_EXT_ray_tracing = "GL_EXT_ray_tracing";
|
const char* const E_GL_EXT_ray_tracing = "GL_EXT_ray_tracing";
|
||||||
const char* const E_GL_EXT_ray_query = "GL_EXT_ray_query";
|
const char* const E_GL_EXT_ray_query = "GL_EXT_ray_query";
|
||||||
const char* const E_GL_EXT_ray_flags_primitive_culling = "GL_EXT_ray_flags_primitive_culling";
|
const char* const E_GL_EXT_ray_flags_primitive_culling = "GL_EXT_ray_flags_primitive_culling";
|
||||||
|
const char* const E_GL_EXT_ray_cull_mask = "GL_EXT_ray_cull_mask";
|
||||||
const char* const E_GL_EXT_blend_func_extended = "GL_EXT_blend_func_extended";
|
const char* const E_GL_EXT_blend_func_extended = "GL_EXT_blend_func_extended";
|
||||||
const char* const E_GL_EXT_shader_implicit_conversions = "GL_EXT_shader_implicit_conversions";
|
const char* const E_GL_EXT_shader_implicit_conversions = "GL_EXT_shader_implicit_conversions";
|
||||||
const char* const E_GL_EXT_fragment_shading_rate = "GL_EXT_fragment_shading_rate";
|
const char* const E_GL_EXT_fragment_shading_rate = "GL_EXT_fragment_shading_rate";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user