From 1be819f4f0dbd001d1b222d7461a4fd87452dee2 Mon Sep 17 00:00:00 2001 From: Mehmet Oguz Derin Date: Thu, 26 Jun 2025 20:16:18 +0300 Subject: Support `mad` in WGSL (#7538) --- source/slang/hlsl.meta.slang | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 9800f2e65..32d7ea824 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -11157,7 +11157,7 @@ matrix log2(matrix x) /// @category math __generic [__readNone] -[require(cpp_cuda_glsl_hlsl_metal_spirv, shader5_sm_5_0)] +[require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, shader5_sm_5_0)] T mad(T mvalue, T avalue, T bvalue) { __target_switch @@ -11170,12 +11170,13 @@ T mad(T mvalue, T avalue, T bvalue) case spirv: return spirv_asm { OpExtInst $$T result glsl450 Fma $mvalue $avalue $bvalue }; + case wgsl: __intrinsic_asm "fma"; } } __generic [__readNone] -[require(cpp_cuda_glsl_hlsl_metal_spirv, shader5_sm_5_0)] +[require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, shader5_sm_5_0)] vector mad(vector mvalue, vector avalue, vector bvalue) { __target_switch @@ -11186,6 +11187,7 @@ vector mad(vector mvalue, vector avalue, vector bvalue) case spirv: return spirv_asm { OpExtInst $$vector result glsl450 Fma $mvalue $avalue $bvalue }; + case wgsl: __intrinsic_asm "fma"; default: VECTOR_MAP_TRINARY(T, N, mad, mvalue, avalue, bvalue); } -- cgit v1.2.3