diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 32 |
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>() |
