diff --git a/src/webgpu/shader/validation/expression/access/array.spec.ts b/src/webgpu/shader/validation/expression/access/array.spec.ts index 2b3d6b7ce1b9..92d748c9ec79 100644 --- a/src/webgpu/shader/validation/expression/access/array.spec.ts +++ b/src/webgpu/shader/validation/expression/access/array.spec.ts @@ -378,6 +378,45 @@ const kOutOfBoundsCases: Record = { pipeline: true, value: 1, }, + override_array_dynamic_type_checked_oob_pos: { + code: `@group(0) @binding(0) var v : array, 4>, 5>; + override x : i32; + override w = 0u; + fn y() -> u32 { + var u = 0; + let tmp = v[w][u][x]; + return 0; + }`, + result: false, + pipeline: true, + value: 3, + }, + override_array_dynamic_type_checked_oob_neg: { + code: `@group(0) @binding(0) var v : array, 4>, 5>; + override x : i32; + override w = 0u; + fn y() -> u32 { + var u = 0; + let tmp = v[w][u][x]; + return 0; + }`, + result: false, + pipeline: true, + value: -1, + }, + override_array_dynamic_type_checked_bounds: { + code: `@group(0) @binding(0) var v : array, 4>, 5>; + override x : i32; + override w = 0u; + fn y() -> u32 { + var u = 0; + let tmp = v[w][u][x]; + return 0; + }`, + result: true, + pipeline: true, + value: 1, + }, }; g.test('early_eval_errors')