From 0e2468dcbd2b4f7e3ce5793fb982d71d6c6bda04 Mon Sep 17 00:00:00 2001 From: Jiawei Shao Date: Wed, 18 Dec 2024 14:29:10 +0800 Subject: [PATCH] Test 'undefined' in `bindGroupLayouts` --- .../validation/createPipelineLayout.spec.ts | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/webgpu/api/validation/createPipelineLayout.spec.ts b/src/webgpu/api/validation/createPipelineLayout.spec.ts index 4c4bdc8c9309..807628983b1e 100644 --- a/src/webgpu/api/validation/createPipelineLayout.spec.ts +++ b/src/webgpu/api/validation/createPipelineLayout.spec.ts @@ -164,7 +164,7 @@ g.test('bind_group_layouts,device_mismatch') }, mismatched); }); -const MaybeNullBindGroupLayoutTypes = ['Null', 'Empty', 'NonEmpty'] as const; +const MaybeNullBindGroupLayoutTypes = ['Null', 'Undefined', 'Empty', 'NonEmpty'] as const; g.test('bind_group_layouts,null_bind_group_layouts') .desc( @@ -185,7 +185,7 @@ g.test('bind_group_layouts,null_bind_group_layouts') // Only bindGroupLayout0 is valid and represents null bind group layout, and we don't // need to care about the other bind group layouts. return ( - t.bindGroupLayout0 === 'Null' && + (t.bindGroupLayout0 === 'Null' || t.bindGroupLayout0 === 'Undefined') && t.bindGroupLayout1 === 'Null' && t.bindGroupLayout2 === 'Null' && t.bindGroupLayout3 === 'Null' @@ -195,7 +195,10 @@ g.test('bind_group_layouts,null_bind_group_layouts') // represents null bind group layout, and we don't need to care about the other bind // group layouts. return ( - (t.bindGroupLayout0 === 'Null' || t.bindGroupLayout1 === 'Null') && + (t.bindGroupLayout0 === 'Null' || + t.bindGroupLayout0 === 'Undefined' || + t.bindGroupLayout1 === 'Null' || + t.bindGroupLayout1 === 'Undefined') && t.bindGroupLayout2 === 'Null' && t.bindGroupLayout3 === 'Null' ); @@ -205,8 +208,11 @@ g.test('bind_group_layouts,null_bind_group_layouts') // bindGroupLayout3. return ( (t.bindGroupLayout0 === 'Null' || + t.bindGroupLayout0 === 'Undefined' || t.bindGroupLayout1 === 'Null' || - t.bindGroupLayout2 === 'Null') && + t.bindGroupLayout1 === 'Undefined' || + t.bindGroupLayout2 === 'Null' || + t.bindGroupLayout2 === 'Undefined') && t.bindGroupLayout3 === 'Null' ); case 4: @@ -214,9 +220,13 @@ g.test('bind_group_layouts,null_bind_group_layouts') // bindGroupLayout3 represents null bind group layout. return ( t.bindGroupLayout0 === 'Null' || + t.bindGroupLayout0 === 'Undefined' || t.bindGroupLayout1 === 'Null' || + t.bindGroupLayout1 === 'Undefined' || t.bindGroupLayout2 === 'Null' || - t.bindGroupLayout3 === 'Null' + t.bindGroupLayout2 === 'Undefined' || + t.bindGroupLayout3 === 'Null' || + t.bindGroupLayout3 === 'Undefined' ); default: return false; @@ -245,7 +255,7 @@ g.test('bind_group_layouts,null_bind_group_layouts') ], }); - const bindGroupLayouts: (GPUBindGroupLayout | null)[] = []; + const bindGroupLayouts: (GPUBindGroupLayout | null | undefined)[] = []; const AddBindGroupLayout = function ( bindGroupLayoutType: (typeof MaybeNullBindGroupLayoutTypes)[number] @@ -254,6 +264,9 @@ g.test('bind_group_layouts,null_bind_group_layouts') case 'Null': bindGroupLayouts.push(null); break; + case 'Undefined': + bindGroupLayouts.push(undefined); + break; case 'Empty': bindGroupLayouts.push(emptyBindGroupLayout); break;