| <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow |
| switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) { |
| ^^^^^^^^^ |
| |
| <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: control flow depends on possibly non-uniform value |
| switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) { |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform |
| switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) { |
| ^ |
| |
| #include <metal_stdlib> |
| |
| using namespace metal; |
| struct tint_symbol_4 { |
| float x [[user(locn0)]]; |
| }; |
| |
| void tint_symbol_inner(float x) { |
| bool tint_symbol_1 = (x == 0.0f); |
| if (tint_symbol_1) { |
| float const tint_symbol_2 = dfdx(1.0f); |
| tint_symbol_1 = (tint_symbol_2 == 0.0f); |
| } |
| switch(int(tint_symbol_1)) { |
| default: { |
| break; |
| } |
| } |
| } |
| |
| fragment void tint_symbol(tint_symbol_4 tint_symbol_3 [[stage_in]]) { |
| tint_symbol_inner(tint_symbol_3.x); |
| return; |
| } |
| |