summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/hlsl.meta.slang32
1 files changed, 31 insertions, 1 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 0fc6fb2a9..1d5c68a0d 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -7821,7 +7821,7 @@ float4x3 WorldToObject4x3()
__target_switch
{
case hlsl: __intrinsic_asm "WorldToObject4x3";
- case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObject3x4EXT)";
+ case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObjectEXT)";
case GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldToObjectNV)";
case spirv:
return spirv_asm {
@@ -9451,6 +9451,36 @@ struct HitObject
}
}
+ [__requiresNVAPI]
+ [ForceInline]
+ __glsl_extension(GL_EXT_ray_tracing)
+ float4x3 GetWorldToObject()
+ {
+ __target_switch
+ {
+ case hlsl: __intrinsic_asm ".GetWorldToObject";
+ case glsl: __intrinsic_asm "hitObjectGetWorldToObjectNV($0)";
+ case spirv: return spirv_asm {
+ result:$$float4x3 = OpHitObjectGetWorldToObjectNV &this;
+ };
+ }
+ }
+
+ [__requiresNVAPI]
+ [ForceInline]
+ __glsl_extension(GL_EXT_ray_tracing)
+ float4x3 GetObjectToWorld()
+ {
+ __target_switch
+ {
+ case hlsl: __intrinsic_asm ".GetObjectToWorld";
+ case glsl: __intrinsic_asm "hitObjectGetObjectToWorldNV($0)";
+ case spirv: return spirv_asm {
+ result:$$float4x3 = OpHitObjectGetObjectToWorldNV &this;
+ };
+ }
+ }
+
/// Returns the attributes of a hit. Valid if the hit object represents a hit or a miss.
[ForceInline]
attr_t GetAttributes<attr_t>()