| <dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow |
| _ = dpdx(1.0); |
| ^^^^^^^^^ |
| |
| <dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:7 note: control flow depends on possibly non-uniform value |
| break if x > 0.0; |
| ^^^^^ |
| |
| <dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:6:16 note: user-defined input 'x' of 'main' may be non-uniform |
| break if x > 0.0; |
| ^ |
| |
| #include <metal_stdlib> |
| |
| using namespace metal; |
| |
| #define TINT_ISOLATE_UB(VOLATILE_NAME) \ |
| volatile bool VOLATILE_NAME = true; \ |
| if (VOLATILE_NAME) |
| |
| struct tint_symbol_2 { |
| float x [[user(locn0)]]; |
| }; |
| |
| void tint_symbol_inner(float x) { |
| TINT_ISOLATE_UB(tint_volatile_true) while(true) { |
| float const tint_phony = dfdx(1.0f); |
| { |
| if ((x > 0.0f)) { break; } |
| } |
| } |
| } |
| |
| fragment void tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) { |
| tint_symbol_inner(tint_symbol_1.x); |
| return; |
| } |
| |