Skip to content

Commit b43d4df

Browse files
committed
spv functions outline
1 parent 8e5ab1a commit b43d4df

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Copyright (C) 2023 - DevSH Graphics Programming Sp. z O.O.
2+
// This file is part of the "Nabla Engine".
3+
// For conditions of distribution and use, see copyright notice in nabla.h
4+
#ifndef _NBL_BUILTIN_HLSL_SPIRV_INTRINSICS_RAYTRACING_INCLUDED_
5+
#define _NBL_BUILTIN_HLSL_SPIRV_INTRINSICS_RAYTRACING_INCLUDED_
6+
7+
// #include "nbl/builtin/hlsl/spirv_intrinsics/core.hlsl"
8+
9+
namespace nbl
10+
{
11+
namespace hlsl
12+
{
13+
namespace spirv
14+
{
15+
16+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
17+
[[vk::ext_instruction(spv::OpRayQueryInitializeKHR)]]
18+
void rayQueryInitializeEXT(/* spv::OpTypeRayQueryKHR function_ptr query, spv::OpTypeAccelerationStructureKHR AS, uint32_t flags, uint32_t cull mask, float3 origin, float32_t tmin, float3 direction, float32_t tmax*/);
19+
20+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
21+
[[vk::ext_instruction(spv::OpRayQueryProceedKHR)]]
22+
bool rayQueryProceedEXT(/* spv::OpTypeRayQueryKHR function_ptr query */);
23+
24+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
25+
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionTypeKHR)]]
26+
int rayQueryGetIntersectionTypeEXT(/* spv::OpTypeRayQueryKHR function_ptr query, uint32_t intersection (candidate 0, commited 1) */);
27+
28+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
29+
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionInstanceIdKHR)]]
30+
int rayQueryGetIntersectionInstanceIdEXT(/* spv::OpTypeRayQueryKHR function_ptr query, uint32_t intersection (candidate 0, commited 1) */);
31+
32+
[[vk::ext_capability(spv::CapabilityRayQueryKHR)]]
33+
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionPrimitiveIndexKHR)]]
34+
int rayQueryGetIntersectionPrimitiveIndexEXT(/* spv::OpTypeRayQueryKHR function_ptr query, uint32_t intersection (candidate 0, commited 1) */);
35+
36+
// position fetch for ray tracing uses gl_HitTriangleVertexPositionsEXT -> HitTriangleVertexPositionsKHR decorated OpVariable
37+
38+
[[vk::ext_capability(spv::CapabilityRayQueryPositionFetchKHR)]]
39+
[[vk::ext_instruction(spv::OpRayQueryGetIntersectionTriangleVertexPositionsKHR)]] // ray query version
40+
// get intersection triangle vertex position - gl_HitTriangleVertexPositionsEXT
41+
// returns 3-array float3 vertex positions
42+
void rayQueryGetIntersectionTriangleVertexPositionsEXT(/* spv::OpTypeRayQueryKHR function_ptr query, uint32_t intersection (candidate 0, commited 1), out float3 positions[3] */);
43+
44+
}
45+
}
46+
}
47+
48+
#endif // _NBL_BUILTIN_HLSL_SPIRV_INTRINSICS_RAYTRACING_INCLUDED_

0 commit comments

Comments
 (0)