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