diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2025-10-11 01:42:43 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-10 16:42:43 +0000 |
| commit | b4023f715885ada9a2777ea3b0d6d9739860b39b (patch) | |
| tree | 6bceec79ba7747e6826603f3893f89e4697975a4 /source/slang | |
| parent | 48afbf9a1075fcf541b2c196c6313aeda57e9637 (diff) | |
implement dot products for 1 vectors (#8599)
Closes https://github.com/shader-slang/slang/issues/8378
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 86e77c650..73bdee96e 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -8884,6 +8884,12 @@ __generic<T : __BuiltinFloatingPointType, let N : int> [require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, sm_4_0_version)] T dot(vector<T, N> x, vector<T, N> y) { + // Handle 1-vector case explicitly since many backends don't support it natively + if (N == 1) + { + return x[0] * y[0]; + } + __target_switch { case glsl: __intrinsic_asm "dot"; @@ -8906,6 +8912,12 @@ __generic<T : __BuiltinIntegerType, let N : int> [require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, sm_4_0_version)] T dot(vector<T, N> x, vector<T, N> y) { + // Handle 1-vector case explicitly since many backends don't support it natively + if (N == 1) + { + return x[0] * y[0]; + } + __target_switch { case hlsl: __intrinsic_asm "dot"; |
