From ce456702d2008b631cb5fd40f1fe55ee63799db1 Mon Sep 17 00:00:00 2001 From: Alan Baker Date: Fri, 17 Jul 2026 11:16:53 -0400 Subject: [PATCH 1/2] Fix pipeline_immediate:required_slots * Arrays cannot be used in immediate variables so switch to dynamic indexing of a vector --- .../encoding/programmable/pipeline_immediate.spec.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts b/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts index c84afdce0b43..ba784bf83312 100644 --- a/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts +++ b/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts @@ -67,7 +67,7 @@ g.test('required_slots_set') When a struct variable is statically used, all non-padding bytes of the entire struct must be set, even if only one member is accessed. In this test, data.b.v is accessed, but both data.a and data.b must be set (excluding padding). - - dynamic_indexing: Array with dynamic indexing. + - dynamic_indexing: Vector with dynamic indexing. - Usage: - full: Set all declared bytes. - split: Set all declared bytes in multiple calls. @@ -84,7 +84,6 @@ g.test('required_slots_set') 'scalar', 'vector', 'struct_padding', - 'dynamic_indexing', 'mixed_types', 'multiple_variables', ] as const) @@ -156,7 +155,7 @@ g.test('required_slots_set') break; case 'dynamic_indexing': layoutImmediateSize = 16; - declarations = 'var data: array;'; + declarations = 'var data: vec4u;'; helpers = 'fn use_data(i: u32) { _ = data[i]; }'; computeArgs = '@builtin(local_invocation_index) i: u32'; callCompute = 'use_data(i);'; From 1f21d1c208c0ce5cda26f96e703d77228006fe0d Mon Sep 17 00:00:00 2001 From: Alan Baker Date: Fri, 17 Jul 2026 11:24:08 -0400 Subject: [PATCH 2/2] fix test --- .../validation/encoding/programmable/pipeline_immediate.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts b/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts index ba784bf83312..a97a0ad03d65 100644 --- a/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts +++ b/src/webgpu/api/validation/encoding/programmable/pipeline_immediate.spec.ts @@ -84,6 +84,7 @@ g.test('required_slots_set') 'scalar', 'vector', 'struct_padding', + 'dynamic_indexing', 'mixed_types', 'multiple_variables', ] as const)