Skip to content

Commit 541d1ca

Browse files
authored
adding some simple optix intrinsics to slang (shader-slang#1817)
1 parent 6928393 commit 541d1ca

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

source/slang/hlsl.meta.slang

+16
Original file line numberDiff line numberDiff line change
@@ -4393,12 +4393,14 @@ bool ReportHit(float tHit, uint hitKind, A attributes)
43934393
__target_intrinsic(hlsl)
43944394
__target_intrinsic(GL_NV_ray_tracing, ignoreIntersectionNV)
43954395
__target_intrinsic(GL_EXT_ray_tracing, "ignoreIntersectionEXT;")
4396+
__target_intrinsic(cuda, "optixIgnoreIntersection")
43964397
void IgnoreHit();
43974398

43984399
// 10.3.5
43994400
__target_intrinsic(hlsl)
44004401
__target_intrinsic(GL_NV_ray_tracing, terminateRayNV)
44014402
__target_intrinsic(GL_EXT_ray_tracing, "terminateRayEXT;")
4403+
__target_intrinsic(cuda, "optixTerminateRay")
44024404
void AcceptHitAndEndSearch();
44034405

44044406
// 10.4 - System Values and Special Semantics
@@ -4415,20 +4417,24 @@ uint3 DispatchRaysIndex();
44154417

44164418
__target_intrinsic(GL_NV_ray_tracing, "(gl_LaunchSizeNV)")
44174419
__target_intrinsic(GL_EXT_ray_tracing, "(gl_LaunchSizeEXT)")
4420+
__target_intrinsic(cuda, "optixGetLaunchDimensions")
44184421
uint3 DispatchRaysDimensions();
44194422

44204423
// 10.4.2 - Ray System Values
44214424

44224425
__target_intrinsic(GL_NV_ray_tracing, "(gl_WorldRayOriginNV)")
44234426
__target_intrinsic(GL_EXT_ray_tracing, "(gl_WorldRayOriginEXT)")
4427+
__target_intrinsic(cuda, "optixGetWorldRayOrigin")
44244428
float3 WorldRayOrigin();
44254429

44264430
__target_intrinsic(GL_NV_ray_tracing, "(gl_WorldRayDirectionNV)")
44274431
__target_intrinsic(GL_EXT_ray_tracing, "(gl_WorldRayDirectionEXT)")
4432+
__target_intrinsic(cuda, "optixGetWorldRayDirection")
44284433
float3 WorldRayDirection();
44294434

44304435
__target_intrinsic(GL_NV_ray_tracing, "(gl_RayTminNV)")
44314436
__target_intrinsic(GL_EXT_ray_tracing, "(gl_RayTminEXT)")
4437+
__target_intrinsic(cuda, "optixGetRayTmin")
44324438
float RayTMin();
44334439

44344440
// Note: The `RayTCurrent()` intrinsic should translate to
@@ -4443,32 +4449,41 @@ float RayTMin();
44434449
//
44444450
__target_intrinsic(GL_NV_ray_tracing, "(gl_RayTmaxNV)")
44454451
__target_intrinsic(GL_EXT_ray_tracing, "(gl_RayTmaxEXT)")
4452+
__target_intrinsic(cuda, "optixGetRayTmax")
44464453
float RayTCurrent();
44474454

44484455
__target_intrinsic(GL_NV_ray_tracing, "(gl_IncomingRayFlagsNV)")
44494456
__target_intrinsic(GL_EXT_ray_tracing, "(gl_IncomingRayFlagsEXT)")
4457+
__target_intrinsic(cuda, "optixGetRayFlags")
44504458
uint RayFlags();
44514459

44524460
// 10.4.3 - Primitive/Object Space System Values
44534461

44544462
__target_intrinsic(GL_NV_ray_tracing, "(gl_InstanceCustomIndexNV)")
44554463
__target_intrinsic(GL_EXT_ray_tracing, "(gl_InstanceCustomIndexEXT)")
4464+
__target_intrinsic(cuda, "optixGetInstanceIndex")
44564465
uint InstanceIndex();
44574466

44584467
__target_intrinsic(__glslRayTracing, "(gl_InstanceID)")
4468+
__target_intrinsic(cuda, "optixGetInstanceId")
44594469
uint InstanceID();
44604470

44614471
__target_intrinsic(__glslRayTracing, "(gl_PrimitiveID)")
4472+
__target_intrinsic(cuda, "optixGetPrimitiveIndex")
44624473
uint PrimitiveIndex();
44634474

44644475
__target_intrinsic(GL_NV_ray_tracing, "(gl_ObjectRayOriginNV)")
44654476
__target_intrinsic(GL_EXT_ray_tracing, "(gl_ObjectRayOriginEXT)")
4477+
__target_intrinsic(cuda, "optixGetObjectRayOrigin")
44664478
float3 ObjectRayOrigin();
44674479

44684480
__target_intrinsic(GL_NV_ray_tracing, "(gl_ObjectRayDirectionNV)")
44694481
__target_intrinsic(GL_EXT_ray_tracing, "(gl_ObjectRayDirectionEXT)")
4482+
__target_intrinsic(cuda, "optixGetObjectRayDirection")
44704483
float3 ObjectRayDirection();
44714484

4485+
// TODO: optix has an optixGetObjectToWorldTransformMatrix function that returns 12
4486+
// floats by reference.
44724487
__target_intrinsic(GL_NV_ray_tracing, "transpose(gl_ObjectToWorldNV)")
44734488
__target_intrinsic(GL_EXT_ray_tracing, "transpose(gl_ObjectToWorldEXT)")
44744489
float3x4 ObjectToWorld3x4();
@@ -4500,6 +4515,7 @@ float3x4 WorldToObject() { return WorldToObject3x4(); }
45004515
// 10.4.4 - Hit Specific System values
45014516
__target_intrinsic(GL_NV_ray_tracing, "(gl_HitKindNV)")
45024517
__target_intrinsic(GL_EXT_ray_tracing, "(gl_HitKindEXT)")
4518+
__target_intrinsic(cuda, "optixGetHitKind")
45034519
uint HitKind();
45044520

45054521
// Pre-defined hit kinds (not documented explicitly)

0 commit comments

Comments
 (0)