blob: 67d0ba651e096a265c02f658488095f94c616813 [file] [log] [blame]
<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
while (x > 0.0 && dpdx(1.0) > 0.0) {
^^^^^^^^^
<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:3 note: control flow depends on possibly non-uniform value
while (x > 0.0 && dpdx(1.0) > 0.0) {
^^^^^
<dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 note: return value of 'dpdx' may be non-uniform
while (x > 0.0 && dpdx(1.0) > 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_4 {
float x [[user(locn0)]];
};
void tint_symbol_inner(float x) {
float4 v = float4(0.0f);
TINT_ISOLATE_UB(tint_volatile_true) while(true) {
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);
}
if (!(tint_symbol_1)) {
break;
}
{
}
}
}
fragment void tint_symbol(tint_symbol_4 tint_symbol_3 [[stage_in]]) {
tint_symbol_inner(tint_symbol_3.x);
return;
}