From 52cd8caa07ced53d9908c4d8b11f861b27895038 Mon Sep 17 00:00:00 2001 From: Antonio Maiorano Date: Thu, 16 Mar 2023 21:31:15 +0000 Subject: [PATCH] tint/hlsl: fix frexp always returning positive values for fractional part Bug: tint:1876 Change-Id: Ic56b37918fd1a2a42442b517985a49f10d85159d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/124501 Reviewed-by: Ben Clayton Commit-Queue: Antonio Maiorano Kokoro: Kokoro --- src/tint/writer/hlsl/generator_impl.cc | 2 +- .../hlsl/generator_impl_builtin_test.cc | 8 ++-- .../frexp/scalar/mixed.wgsl.expected.dxc.hlsl | 2 +- .../frexp/scalar/mixed.wgsl.expected.fxc.hlsl | 2 +- .../scalar/runtime.wgsl.expected.dxc.hlsl | 2 +- .../scalar/runtime.wgsl.expected.fxc.hlsl | 2 +- .../frexp/vector/mixed.wgsl.expected.dxc.hlsl | 2 +- .../frexp/vector/mixed.wgsl.expected.fxc.hlsl | 2 +- .../vector/runtime.wgsl.expected.dxc.hlsl | 2 +- .../vector/runtime.wgsl.expected.fxc.hlsl | 2 +- .../var/frexp/3dd21e.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/4b2200.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/4b2200.wgsl.expected.fxc.hlsl | 2 +- .../var/frexp/5257dd.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/5f47bf.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/77af93.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/77af93.wgsl.expected.fxc.hlsl | 2 +- .../var/frexp/979800.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/979800.wgsl.expected.fxc.hlsl | 2 +- .../var/frexp/ae4a66.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/eb2421.wgsl.expected.dxc.hlsl | 2 +- .../var/frexp/eb2421.wgsl.expected.fxc.hlsl | 2 +- webgpu-cts/expectations.txt | 40 ------------------- 23 files changed, 25 insertions(+), 65 deletions(-) diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc index cc8ad64693..4910f812af 100644 --- a/src/tint/writer/hlsl/generator_impl.cc +++ b/src/tint/writer/hlsl/generator_impl.cc @@ -2045,7 +2045,7 @@ bool GeneratorImpl::EmitFrexpCall(utils::StringStream& out, } line(b) << member_type << " exp;"; - line(b) << member_type << " fract = frexp(" << in << ", exp);"; + line(b) << member_type << " fract = sign(" << in << ") * frexp(" << in << ", exp);"; { auto l = line(b); if (!EmitType(l, builtin->ReturnType(), builtin::AddressSpace::kUndefined, diff --git a/src/tint/writer/hlsl/generator_impl_builtin_test.cc b/src/tint/writer/hlsl/generator_impl_builtin_test.cc index f473ac81c5..d552671910 100644 --- a/src/tint/writer/hlsl/generator_impl_builtin_test.cc +++ b/src/tint/writer/hlsl/generator_impl_builtin_test.cc @@ -606,7 +606,7 @@ TEST_F(HlslGeneratorImplTest_Builtin, Runtime_Frexp_Scalar_f32) { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } @@ -635,7 +635,7 @@ TEST_F(HlslGeneratorImplTest_Builtin, Runtime_Frexp_Scalar_f16) { }; frexp_result_f16 tint_frexp(float16_t param_0) { float16_t exp; - float16_t fract = frexp(param_0, exp); + float16_t fract = sign(param_0) * frexp(param_0, exp); frexp_result_f16 result = {fract, int(exp)}; return result; } @@ -662,7 +662,7 @@ TEST_F(HlslGeneratorImplTest_Builtin, Runtime_Frexp_Vector_f32) { }; frexp_result_vec3_f32 tint_frexp(float3 param_0) { float3 exp; - float3 fract = frexp(param_0, exp); + float3 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec3_f32 result = {fract, int3(exp)}; return result; } @@ -691,7 +691,7 @@ TEST_F(HlslGeneratorImplTest_Builtin, Runtime_Frexp_Vector_f16) { }; frexp_result_vec3_f16 tint_frexp(vector param_0) { vector exp; - vector fract = frexp(param_0, exp); + vector fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec3_f16 result = {fract, int3(exp)}; return result; } diff --git a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.dxc.hlsl b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.dxc.hlsl index a848a4f39c..78f84578b3 100644 --- a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.fxc.hlsl b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.fxc.hlsl index a848a4f39c..78f84578b3 100644 --- a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.dxc.hlsl b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.dxc.hlsl index fdf14dfb0c..05fdf30ce6 100644 --- a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.fxc.hlsl b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.fxc.hlsl index fdf14dfb0c..05fdf30ce6 100644 --- a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.dxc.hlsl b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.dxc.hlsl index 1df044593a..c5fc8dbf48 100644 --- a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.fxc.hlsl b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.fxc.hlsl index 1df044593a..c5fc8dbf48 100644 --- a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.dxc.hlsl b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.dxc.hlsl index a6b9fed7da..390557d288 100644 --- a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.fxc.hlsl b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.fxc.hlsl index a6b9fed7da..390557d288 100644 --- a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.dxc.hlsl index 54c23666e6..465dc0e71d 100644 --- a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec4_f16 { }; frexp_result_vec4_f16 tint_frexp(vector param_0) { vector exp; - vector fract = frexp(param_0, exp); + vector fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec4_f16 result = {fract, int4(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.dxc.hlsl index 6d5d462dad..f4975e6192 100644 --- a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.fxc.hlsl index 6d5d462dad..f4975e6192 100644 --- a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f32 { }; frexp_result_f32 tint_frexp(float param_0) { float exp; - float fract = frexp(param_0, exp); + float fract = sign(param_0) * frexp(param_0, exp); frexp_result_f32 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.dxc.hlsl index da9aa86015..a7cb36bbab 100644 --- a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_f16 { }; frexp_result_f16 tint_frexp(float16_t param_0) { float16_t exp; - float16_t fract = frexp(param_0, exp); + float16_t fract = sign(param_0) * frexp(param_0, exp); frexp_result_f16 result = {fract, int(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.dxc.hlsl index 4d1be21ec0..798a8195b0 100644 --- a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f16 { }; frexp_result_vec2_f16 tint_frexp(vector param_0) { vector exp; - vector fract = frexp(param_0, exp); + vector fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f16 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.dxc.hlsl index 9cb9898030..2bc5ebbbfa 100644 --- a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec4_f32 { }; frexp_result_vec4_f32 tint_frexp(float4 param_0) { float4 exp; - float4 fract = frexp(param_0, exp); + float4 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec4_f32 result = {fract, int4(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.fxc.hlsl index 9cb9898030..2bc5ebbbfa 100644 --- a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec4_f32 { }; frexp_result_vec4_f32 tint_frexp(float4 param_0) { float4 exp; - float4 fract = frexp(param_0, exp); + float4 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec4_f32 result = {fract, int4(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.dxc.hlsl index ec638221f6..14e89021fd 100644 --- a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec3_f32 { }; frexp_result_vec3_f32 tint_frexp(float3 param_0) { float3 exp; - float3 fract = frexp(param_0, exp); + float3 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec3_f32 result = {fract, int3(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.fxc.hlsl index ec638221f6..14e89021fd 100644 --- a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec3_f32 { }; frexp_result_vec3_f32 tint_frexp(float3 param_0) { float3 exp; - float3 fract = frexp(param_0, exp); + float3 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec3_f32 result = {fract, int3(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.dxc.hlsl index 5e7dad6fff..a9c8585c05 100644 --- a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec3_f16 { }; frexp_result_vec3_f16 tint_frexp(vector param_0) { vector exp; - vector fract = frexp(param_0, exp); + vector fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec3_f16 result = {fract, int3(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.dxc.hlsl index 7615f1c6e0..84bd5ce42c 100644 --- a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.dxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.dxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.fxc.hlsl index 7615f1c6e0..84bd5ce42c 100644 --- a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.fxc.hlsl +++ b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.fxc.hlsl @@ -4,7 +4,7 @@ struct frexp_result_vec2_f32 { }; frexp_result_vec2_f32 tint_frexp(float2 param_0) { float2 exp; - float2 fract = frexp(param_0, exp); + float2 fract = sign(param_0) * frexp(param_0, exp); frexp_result_vec2_f32 result = {fract, int2(exp)}; return result; } diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt index 784f7476ce..276643a85c 100644 --- a/webgpu-cts/expectations.txt +++ b/webgpu-cts/expectations.txt @@ -479,46 +479,6 @@ crbug.com/dawn/1677 webgpu:api,validation,resource_usages,texture,in_pass_encode crbug.com/dawn/1677 webgpu:api,validation,resource_usages,texture,in_pass_encoder:bindings_in_bundle:type0="render-target";type1="multisampled-texture" [ Failure ] crbug.com/dawn/1677 webgpu:api,validation,resource_usages,texture,in_render_common:subresources,depth_stencil_attachment_and_bind_group:* [ Failure ] -################################################################################ -# frexp failures on Windows -################################################################################ -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_r" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="storage_rw" [ Failure ] -crbug.com/dawn/1876 [ dawn-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation intel-0x9bc5 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="uniform" [ Failure ] -crbug.com/dawn/1876 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:inputSource="uniform" [ Failure ] - ################################################################################ # frexp failures on Linux Intel ################################################################################