Skip to content

Commit be03a55

Browse files
committed
ray query inline spirv working
1 parent 390218a commit be03a55

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

include/nbl/builtin/hlsl/spirv_intrinsics/raytracing.hlsl

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,18 @@ static const uint32_t RayQueryCommittedIntersectionGeneratedKHR = 2;
2828
static const uint32_t RayQueryCandidateIntersectionTriangleKHR = 0;
2929
static const uint32_t RayQueryCandidateIntersectionAABBKHR = 1;
3030

31+
[[vk::ext_instruction(spv::OpConvertUToAccelerationStructureKHR)]]
32+
AccelerationStructureKHR accelerationStructureKHR(uint64_t u);
33+
3134
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
3235
[[vk::ext_extension("SPV_KHR_ray_query")]]
3336
[[vk::ext_instruction(spv::OpRayQueryInitializeKHR)]]
34-
void rayQueryInitializeKHR([[vk::ext_reference]] RayQueryKHR query, [[vk::ext_reference]] AccelerationStructureKHR AS, uint32_t flags, uint32_t cull mask, float3 origin, float32_t tmin, float3 direction, float32_t tmax);
37+
void rayQueryInitializeKHR([[vk::ext_reference]] RayQueryKHR query, AccelerationStructureKHR AS, uint32_t flags, uint32_t cullMask, float32_t3 origin, float32_t tmin, float32_t3 direction, float32_t tmax);
3538

3639
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
3740
[[vk::ext_extension("SPV_KHR_ray_query")]]
3841
[[vk::ext_instruction(spv::OpRayQueryInitializeKHR)]]
39-
void rayQueryInitializeKHR([[vk::ext_reference]] RayQueryKHR query, [[vk::ext_reference]] RaytracingAccelerationStructure AS, uint32_t flags, uint32_t cull mask, float3 origin, float32_t tmin, float3 direction, float32_t tmax);
42+
void rayQueryInitializeKHR([[vk::ext_reference]] RayQueryKHR query, RaytracingAccelerationStructure AS, uint32_t flags, uint32_t cullMask, float32_t3 origin, float32_t tmin, float32_t3 direction, float32_t tmax);
4043

4144
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
4245
[[vk::ext_extension("SPV_KHR_ray_query")]]
@@ -58,6 +61,11 @@ int rayQueryGetIntersectionInstanceIdKHR([[vk::ext_reference]] RayQueryKHR query
5861
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionPrimitiveIndexKHR)]]
5962
int rayQueryGetIntersectionPrimitiveIndexKHR([[vk::ext_reference]] RayQueryKHR query, uint32_t intersection);
6063

64+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
65+
[[vk::ext_extension("SPV_KHR_ray_query")]]
66+
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionBarycentricsKHR)]]
67+
float2 rayQueryGetIntersectionBarycentricsKHR([[vk::ext_reference]] RayQueryKHR query, uint32_t intersection);
68+
6169
// position fetch for ray tracing uses gl_HitTriangleVertexPositionsEXT -> HitTriangleVertexPositionsKHR decorated OpVariable
6270
[[vk::ext_builtin_input(spv::BuiltInHitTriangleVertexPositionsKHR)]]
6371
static const float32_t3 HitTriangleVertexPositionsKHR[3];
@@ -74,4 +82,4 @@ void rayQueryGetIntersectionTriangleVertexPositionsKHR([[vk::ext_reference]] Ray
7482
}
7583
}
7684

77-
#endif // _NBL_BUILTIN_HLSL_SPIRV_INTRINSICS_RAYTRACING_INCLUDED_
85+
#endif // _NBL_BUILTIN_HLSL_SPIRV_INTRINSICS_RAYTRACING_INCLUDED_

0 commit comments

Comments
 (0)