Skip to content

Commit df3d845

Browse files
committed
Refactor shader/execution/expression/binary/*
Issue gpuweb#4178
1 parent ced9013 commit df3d845

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+132
-228
lines changed

src/webgpu/shader/execution/expression/binary/af_addition.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix abstract-float addition expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_addition.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_comparison.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for the abstract-float comparison operations
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { allInputSources, run } from '../expression.js';
99

1010
import { d } from './af_comparison.cache.js';
1111
import { binary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('equals')
1616
.specURL('https://www.w3.org/TR/WGSL/#comparison-expr')

src/webgpu/shader/execution/expression/binary/af_division.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix abstract-float division expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_division.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_matrix_addition.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for matrix abstract-float addition expressions
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_matrix_addition.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('matrix')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_matrix_matrix_multiplication.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for matrix-matrix AbstractFloat multiplication expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_matrix_matrix_multiplication.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('matrix_matrix')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_matrix_scalar_multiplication.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for matrix-scalar and scalar-matrix AbstractFloat multiplication
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_matrix_scalar_multiplication.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('matrix_scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_matrix_subtraction.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for matrix abstract-float subtraction expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_matrix_subtraction.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('matrix')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_matrix_vector_multiplication.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for matrix-vector and vector-matrix AbstractFloat multiplication
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_matrix_vector_multiplication.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('matrix_vector')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_multiplication.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix abstract-float multiplication expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_multiplication.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_remainder.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix abstract float remainder expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_remainder.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/af_subtraction.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix abstract-float subtraction expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './af_subtraction.cache.js';
1111
import { abstractFloatBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')

src/webgpu/shader/execution/expression/binary/ai_arithmetic.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for the abstract int arithmetic binary expression operations
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { onlyConstInputSource, run } from '../expression.js';
99

1010
import { d } from './ai_arithmetic.cache.js';
1111
import { abstractIntBinary } from './binary.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('addition')
1616
.specURL('https://www.w3.org/TR/WGSL/#arithmetic-expr')

src/webgpu/shader/execution/expression/binary/ai_comparison.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ Execution Tests for the abstract-int comparison expressions
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { bool, abstractInt, Type } from '../../../../util/conversion.js';
88
import { vectorI64Range } from '../../../../util/math.js';
99
import { Case } from '../case.js';
1010
import { onlyConstInputSource, run } from '../expression.js';
1111

1212
import { binary } from './binary.js';
1313

14-
export const g = makeTestGroup(GPUTest);
14+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1515

1616
/**
1717
* @returns a test case for the provided left hand & right hand values and

src/webgpu/shader/execution/expression/binary/bitwise.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Execution Tests for the bitwise binary expression operations
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
66
import { assert } from '../../../../../common/util/util.js';
7-
import { GPUTest } from '../../../../gpu_test.js';
7+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
88
import {
99
abstractIntBits,
1010
i32Bits,
@@ -16,7 +16,7 @@ import { allInputSources, onlyConstInputSource, run } from '../expression.js';
1616

1717
import { abstractIntBinary, binary, compoundBinary } from './binary.js';
1818

19-
export const g = makeTestGroup(GPUTest);
19+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
2020

2121
/**
2222
* Collection of functions and values required to implement bitwise tests for a

src/webgpu/shader/execution/expression/binary/bitwise_shift.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ Execution Tests for the bitwise shift binary expression operations
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
66
import { assert } from '../../../../../common/util/util.js';
7-
import { GPUTest } from '../../../../gpu_test.js';
7+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
88
import { ScalarBuilder, ScalarValue, Type, abstractInt, u32 } from '../../../../util/conversion.js';
99
import { Case } from '../case.js';
1010
import { allInputSources, onlyConstInputSource, run } from '../expression.js';
1111

1212
import { abstractIntBinary, binary, compoundBinary } from './binary.js';
1313

14-
export const g = makeTestGroup(GPUTest);
14+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1515

1616
// Returns true if e1 << e2 is valid for const evaluation
1717
function isValidConstShiftLeft(e1: ScalarValue, e2: number) {

src/webgpu/shader/execution/expression/binary/bool_logical.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ Execution Tests for the boolean binary logical expression operations
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { bool, Type } from '../../../../util/conversion.js';
88
import { allInputSources, run } from '../expression.js';
99

1010
import { binary, compoundBinary } from './binary.js';
1111

12-
export const g = makeTestGroup(GPUTest);
12+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1313

1414
// Short circuiting vs no short circuiting is not tested here, it is covered in
1515
// src/webgpu/shader/execution/evaluation_order.spec.ts

src/webgpu/shader/execution/expression/binary/f16_addition.spec.ts

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Execution Tests for non-matrix f16 addition expression
33
`;
44

55
import { makeTestGroup } from '../../../../../common/framework/test_group.js';
6-
import { GPUTest } from '../../../../gpu_test.js';
6+
import { AllFeaturesMaxLimitsGPUTest } from '../../../../gpu_test.js';
77
import { Type } from '../../../../util/conversion.js';
88
import { allInputSources, run } from '../expression.js';
99

1010
import { binary, compoundBinary } from './binary.js';
1111
import { d } from './f16_addition.cache.js';
1212

13-
export const g = makeTestGroup(GPUTest);
13+
export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);
1414

1515
g.test('scalar')
1616
.specURL('https://www.w3.org/TR/WGSL/#floating-point-evaluation')
@@ -21,10 +21,8 @@ Accuracy: Correctly rounded
2121
`
2222
)
2323
.params(u => u.combine('inputSource', allInputSources))
24-
.beforeAllSubcases(t => {
25-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
26-
})
2724
.fn(async t => {
25+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
2826
const cases = await d.get(
2927
t.params.inputSource === 'const' ? 'scalar_const' : 'scalar_non_const'
3028
);
@@ -40,10 +38,8 @@ Accuracy: Correctly rounded
4038
`
4139
)
4240
.params(u => u.combine('inputSource', allInputSources).combine('vectorize', [2, 3, 4] as const))
43-
.beforeAllSubcases(t => {
44-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
45-
})
4641
.fn(async t => {
42+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
4743
const cases = await d.get(
4844
t.params.inputSource === 'const' ? 'scalar_const' : 'scalar_non_const' // Using vectorize to generate vector cases based on scalar cases
4945
);
@@ -61,10 +57,8 @@ Accuracy: Correctly rounded
6157
.params(u =>
6258
u.combine('inputSource', allInputSources).combine('vectorize', [undefined, 2, 3, 4] as const)
6359
)
64-
.beforeAllSubcases(t => {
65-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
66-
})
6760
.fn(async t => {
61+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
6862
const cases = await d.get(
6963
t.params.inputSource === 'const' ? 'scalar_const' : 'scalar_non_const'
7064
);
@@ -80,10 +74,8 @@ Accuracy: Correctly rounded
8074
`
8175
)
8276
.params(u => u.combine('inputSource', allInputSources).combine('dim', [2, 3, 4] as const))
83-
.beforeAllSubcases(t => {
84-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
85-
})
8677
.fn(async t => {
78+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
8779
const dim = t.params.dim;
8880
const cases = await d.get(
8981
t.params.inputSource === 'const' ? `vec${dim}_scalar_const` : `vec${dim}_scalar_non_const`
@@ -107,10 +99,8 @@ Accuracy: Correctly rounded
10799
`
108100
)
109101
.params(u => u.combine('inputSource', allInputSources).combine('dim', [2, 3, 4] as const))
110-
.beforeAllSubcases(t => {
111-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
112-
})
113102
.fn(async t => {
103+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
114104
const dim = t.params.dim;
115105
const cases = await d.get(
116106
t.params.inputSource === 'const' ? `vec${dim}_scalar_const` : `vec${dim}_scalar_non_const`
@@ -134,10 +124,8 @@ Accuracy: Correctly rounded
134124
`
135125
)
136126
.params(u => u.combine('inputSource', allInputSources).combine('dim', [2, 3, 4] as const))
137-
.beforeAllSubcases(t => {
138-
t.selectDeviceOrSkipTestCase({ requiredFeatures: ['shader-f16'] });
139-
})
140127
.fn(async t => {
128+
t.skipIfDeviceDoesNotHaveFeature('shader-f16');
141129
const dim = t.params.dim;
142130
const cases = await d.get(
143131
t.params.inputSource === 'const' ? `scalar_vec${dim}_const` : `scalar_vec${dim}_non_const`

0 commit comments

Comments
 (0)