diff --git a/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts b/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts index bb69a2524888..2d51a7c6bfb6 100644 --- a/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts +++ b/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts @@ -314,10 +314,20 @@ g.test('interpolation_type_names') .beginSubcases() .combine('decl', ['override', 'const', 'var'] as const) ) + .beforeAllSubcases(t => { + t.skipIf( + t.isCompatibility && t.params.case === 'linear', + 'compatibility mode does not support linear interpolation type' + ); + }) .fn(t => { + const attr = + t.isCompatibility && t.params.case === 'flat' + ? `@interpolate(flat, either)` + : `@interpolate(${t.params.case})`; const code = ` ${t.params.decl} ${t.params.case} : u32 = 0; - @fragment fn main(@location(0) @interpolate(${t.params.case}) x : f32) { } + @fragment fn main(@location(0) ${attr} x : f32) { } fn use_var() -> u32 { return ${t.params.case}; }