Skip to content

Commit a19bf5f

Browse files
author
kevyuu
committed
Turn InstanceID() and PrimitiveIndex() to inline spirv
1 parent f472acc commit a19bf5f

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

71_RayTracingPipeline/app_resources/raytrace.rahit.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ using namespace nbl::hlsl;
99
[shader("anyhit")]
1010
void main(inout PrimaryPayload payload, in BuiltInTriangleIntersectionAttributes attribs)
1111
{
12-
const int instID = InstanceID();
12+
const int instID = spirv::InstanceCustomIndexKHR;
1313
const STriangleGeomInfo geom = vk::RawBufferLoad < STriangleGeomInfo > (pc.triangleGeomInfoBuffer + instID * sizeof(STriangleGeomInfo));
1414

1515
const uint32_t bitpattern = payload.pcg();

71_RayTracingPipeline/app_resources/raytrace.rchit.hlsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "common.hlsl"
22

3+
#include "nbl/builtin/hlsl/spirv_intrinsics/core.hlsl"
34
#include "nbl/builtin/hlsl/spirv_intrinsics/raytracing.hlsl"
45
#include "nbl/builtin/hlsl/bda/__ptr.hlsl"
56

@@ -77,7 +78,7 @@ float3 calculateNormals(int primID, STriangleGeomInfo geom, float2 bary)
7778
[shader("closesthit")]
7879
void main(inout PrimaryPayload payload, in BuiltInTriangleIntersectionAttributes attribs)
7980
{
80-
const int primID = PrimitiveIndex();
81+
const int primID = spirv::PrimitiveId;
8182
const int instanceCustomIndex = spirv::InstanceCustomIndexKHR;
8283
const int geometryIndex = spirv::RayGeometryIndexKHR;
8384
const STriangleGeomInfo geom = vk::RawBufferLoad < STriangleGeomInfo > (pc.triangleGeomInfoBuffer + (instanceCustomIndex + geometryIndex) * sizeof(STriangleGeomInfo));

71_RayTracingPipeline/app_resources/raytrace.rint.hlsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "common.hlsl"
22

3+
#include "nbl/builtin/hlsl/spirv_intrinsics/core.hlsl"
34
#include "nbl/builtin/hlsl/spirv_intrinsics/raytracing.hlsl"
45

56
using namespace nbl::hlsl;
@@ -33,7 +34,7 @@ void main()
3334
ray.origin = spirv::WorldRayOriginKHR;
3435
ray.direction = spirv::WorldRayDirectionKHR;
3536

36-
const int primID = PrimitiveIndex();
37+
const int primID = spirv::PrimitiveId;
3738

3839
// Sphere data
3940
SProceduralGeomInfo sphere = vk::RawBufferLoad<SProceduralGeomInfo>(pc.proceduralGeomInfoBuffer + primID * sizeof(SProceduralGeomInfo));

71_RayTracingPipeline/app_resources/raytrace_shadow.rahit.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ using namespace nbl::hlsl;
99
[shader("anyhit")]
1010
void main(inout OcclusionPayload payload, in BuiltInTriangleIntersectionAttributes attribs)
1111
{
12-
const int instID = InstanceID();
12+
const int instID = spirv::InstanceCustomIndexKHR;
1313
const STriangleGeomInfo geom = vk::RawBufferLoad < STriangleGeomInfo > (pc.triangleGeomInfoBuffer + instID * sizeof(STriangleGeomInfo));
1414
const Material material = nbl::hlsl::_static_cast<Material>(geom.material);
1515

0 commit comments

Comments
 (0)