From b4540272696f6b7ed4a733bbf7e5708ee4b8fcce Mon Sep 17 00:00:00 2001 From: Alan Baker Date: Thu, 28 Nov 2024 13:20:50 -0500 Subject: [PATCH] Changes for review * Add negative value test for subgroupShuffle --- .../call/builtin/subgroupShuffle.spec.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/webgpu/shader/validation/expression/call/builtin/subgroupShuffle.spec.ts b/src/webgpu/shader/validation/expression/call/builtin/subgroupShuffle.spec.ts index 56cc6ffbdee5..b46f90c545b4 100644 --- a/src/webgpu/shader/validation/expression/call/builtin/subgroupShuffle.spec.ts +++ b/src/webgpu/shader/validation/expression/call/builtin/subgroupShuffle.spec.ts @@ -95,11 +95,15 @@ g.test('early_eval') }); g.test('param2_early_eval') - .desc('Ensures delta/mask parameters must be in the range [0, 128) for const and override') + .desc('Ensures id/delta/mask parameters must be in the range [0, 128) for const and override') .params(u => u .combine('op', kOps) - .combine('value', [0, 127, 128] as const) + .combine('value', [-1, 0, 127, 128] as const) + .filter(t => { + // Only subgroupShuffle supports an i32 parameter. + return t.op === 'subgroupShuffle' || t.value !== -1; + }) .beginSubcases() .combine('stage', ['constant', 'override', 'runtime'] as const) ) @@ -114,14 +118,16 @@ g.test('param2_early_eval') arg = `let_param`; } + const type = t.params.value === -1 ? `i32` : `u32`; + const wgsl = ` enable subgroups; -const const_param : u32 = ${t.params.value}; -override override_param : u32 = 0; +const const_param : ${type} = ${t.params.value}; +override override_param : ${type} = 0; fn foo() { - let let_param : u32 = ${t.params.value}; + let let_param : ${type} = ${t.params.value}; _ = ${t.params.op}(0, ${arg}); }`;