diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 14 | ||||
| -rw-r--r-- | source/slang/hlsl.meta.slang.h | 14 |
2 files changed, 22 insertions, 6 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 4135a9051..4044600aa 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -1156,9 +1156,17 @@ __generic<T : __BuiltinFloatingPointType, let N : int> vector<T,N> round(vector< __generic<T : __BuiltinFloatingPointType, let N : int, let M : int> matrix<T,N,M> round(matrix<T,N,M> x); // Reciprocal of square root -__generic<T : __BuiltinFloatingPointType> T rsqrt(T x); -__generic<T : __BuiltinFloatingPointType, let N : int> vector<T,N> rsqrt(vector<T,N> x); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> matrix<T,N,M> rsqrt(matrix<T,N,M> x); +__generic<T : __BuiltinFloatingPointType> +__target_intrinsic(glsl, "inversesqrt($0)") +T rsqrt(T x); + +__generic<T : __BuiltinFloatingPointType, let N : int> +__target_intrinsic(glsl, "inversesqrt($0)") +vector<T,N> rsqrt(vector<T,N> x); + +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__target_intrinsic(glsl, "inversesqrt($0)") +matrix<T,N,M> rsqrt(matrix<T,N,M> x); // Clamp value to [0,1] range __generic<T : __BuiltinFloatingPointType> diff --git a/source/slang/hlsl.meta.slang.h b/source/slang/hlsl.meta.slang.h index 67d8d3cc0..94e42b045 100644 --- a/source/slang/hlsl.meta.slang.h +++ b/source/slang/hlsl.meta.slang.h @@ -1232,9 +1232,17 @@ SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int> vector<T,N> ro SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> matrix<T,N,M> round(matrix<T,N,M> x);\n") SLANG_RAW("\n") SLANG_RAW("// Reciprocal of square root\n") -SLANG_RAW("__generic<T : __BuiltinFloatingPointType> T rsqrt(T x);\n") -SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int> vector<T,N> rsqrt(vector<T,N> x);\n") -SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> matrix<T,N,M> rsqrt(matrix<T,N,M> x);\n") +SLANG_RAW("__generic<T : __BuiltinFloatingPointType>\n") +SLANG_RAW("__target_intrinsic(glsl, \"inversesqrt($0)\")\n") +SLANG_RAW("T rsqrt(T x);\n") +SLANG_RAW("\n") +SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int>\n") +SLANG_RAW("__target_intrinsic(glsl, \"inversesqrt($0)\")\n") +SLANG_RAW("vector<T,N> rsqrt(vector<T,N> x);\n") +SLANG_RAW("\n") +SLANG_RAW("__generic<T : __BuiltinFloatingPointType, let N : int, let M : int>\n") +SLANG_RAW("__target_intrinsic(glsl, \"inversesqrt($0)\")\n") +SLANG_RAW("matrix<T,N,M> rsqrt(matrix<T,N,M> x);\n") SLANG_RAW("\n") SLANG_RAW("// Clamp value to [0,1] range\n") SLANG_RAW("__generic<T : __BuiltinFloatingPointType>\n") |
