Restore ?worker and ?worker=1 to mean ?worker=dedicated (take 2) (#3570)
* (Clean reland) "Restore ?worker and ?worker=1 to mean ?worker=dedicated (#3485)"
(Clean except for removing the cache hash changes.)
This reverts commit 68753bbc67.
* Use nullable options instead of empty string
This commit is contained in:
parent
2f0de1ee39
commit
71d872b29d
8 changed files with 174 additions and 149 deletions
|
|
@ -56,7 +56,7 @@ The following url parameters change how the harness runs:
|
|||
|
||||
- `runnow=1` runs all matching tests on page load.
|
||||
- `debug=1` enables verbose debug logging from tests.
|
||||
- `worker=dedicated` runs the tests on a dedicated worker instead of the main thread.
|
||||
- `worker=dedicated` (or `worker` or `worker=1`) runs the tests on a dedicated worker instead of the main thread.
|
||||
- `worker=shared` runs the tests on a shared worker instead of the main thread.
|
||||
- `worker=service` runs the tests on a service worker instead of the main thread.
|
||||
- `power_preference=low-power` runs most tests passing `powerPreference: low-power` to `requestAdapter`
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { TestParams } from '../../framework/fixture.js';
|
||||
import { optionString } from '../../runtime/helper/options.js';
|
||||
import { optionWorkerMode } from '../../runtime/helper/options.js';
|
||||
import { assert, unreachable } from '../../util/util.js';
|
||||
import { Expectation } from '../logging/result.js';
|
||||
|
||||
|
|
@ -193,7 +193,7 @@ Expectation should be of the form path/to/cts.https.html?debug=0&q=suite:test_pa
|
|||
);
|
||||
|
||||
const params = expectationURL.searchParams;
|
||||
if (optionString('worker', params) !== optionString('worker', wptURL.searchParams)) {
|
||||
if (optionWorkerMode('worker', params) !== optionWorkerMode('worker', wptURL.searchParams)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import { unreachable } from '../../util/util.js';
|
||||
|
||||
let windowURL: URL | undefined = undefined;
|
||||
function getWindowURL() {
|
||||
if (windowURL === undefined) {
|
||||
|
|
@ -6,6 +8,7 @@ function getWindowURL() {
|
|||
return windowURL;
|
||||
}
|
||||
|
||||
/** Parse a runner option that is always boolean-typed. False if missing or '0'. */
|
||||
export function optionEnabled(
|
||||
opt: string,
|
||||
searchParams: URLSearchParams = getWindowURL().searchParams
|
||||
|
|
@ -14,33 +17,54 @@ export function optionEnabled(
|
|||
return val !== null && val !== '0';
|
||||
}
|
||||
|
||||
/** Parse a runner option that is string-typed. If the option is missing, returns `null`. */
|
||||
export function optionString(
|
||||
opt: string,
|
||||
searchParams: URLSearchParams = getWindowURL().searchParams
|
||||
): string {
|
||||
return searchParams.get(opt) || '';
|
||||
): string | null {
|
||||
return searchParams.get(opt);
|
||||
}
|
||||
|
||||
/** Runtime modes for running tests in different types of workers. */
|
||||
export type WorkerMode = 'dedicated' | 'service' | 'shared';
|
||||
/** Parse a runner option for different worker modes (as in `?worker=shared`). Null if no worker. */
|
||||
export function optionWorkerMode(
|
||||
opt: string,
|
||||
searchParams: URLSearchParams = getWindowURL().searchParams
|
||||
): WorkerMode | null {
|
||||
const value = searchParams.get(opt);
|
||||
if (value === null || value === '0') {
|
||||
return null;
|
||||
} else if (value === 'service') {
|
||||
return 'service';
|
||||
} else if (value === 'shared') {
|
||||
return 'shared';
|
||||
} else if (value === '' || value === '1' || value === 'dedicated') {
|
||||
return 'dedicated';
|
||||
}
|
||||
unreachable('invalid worker= option value');
|
||||
}
|
||||
|
||||
/**
|
||||
* The possible options for the tests.
|
||||
*/
|
||||
export interface CTSOptions {
|
||||
worker?: 'dedicated' | 'shared' | 'service' | '';
|
||||
worker: WorkerMode | null;
|
||||
debug: boolean;
|
||||
compatibility: boolean;
|
||||
forceFallbackAdapter: boolean;
|
||||
unrollConstEvalLoops: boolean;
|
||||
powerPreference: GPUPowerPreference | '';
|
||||
powerPreference: GPUPowerPreference | null;
|
||||
logToWebSocket: boolean;
|
||||
}
|
||||
|
||||
export const kDefaultCTSOptions: CTSOptions = {
|
||||
worker: '',
|
||||
worker: null,
|
||||
debug: true,
|
||||
compatibility: false,
|
||||
forceFallbackAdapter: false,
|
||||
unrollConstEvalLoops: false,
|
||||
powerPreference: '',
|
||||
powerPreference: null,
|
||||
logToWebSocket: false,
|
||||
};
|
||||
|
||||
|
|
@ -49,8 +73,8 @@ export const kDefaultCTSOptions: CTSOptions = {
|
|||
*/
|
||||
export interface OptionInfo {
|
||||
description: string;
|
||||
parser?: (key: string, searchParams?: URLSearchParams) => boolean | string;
|
||||
selectValueDescriptions?: { value: string; description: string }[];
|
||||
parser?: (key: string, searchParams?: URLSearchParams) => boolean | string | null;
|
||||
selectValueDescriptions?: { value: string | null; description: string }[];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -65,9 +89,9 @@ export type OptionsInfos<Type> = Record<keyof Type, OptionInfo>;
|
|||
export const kCTSOptionsInfo: OptionsInfos<CTSOptions> = {
|
||||
worker: {
|
||||
description: 'run in a worker',
|
||||
parser: optionString,
|
||||
parser: optionWorkerMode,
|
||||
selectValueDescriptions: [
|
||||
{ value: '', description: 'no worker' },
|
||||
{ value: null, description: 'no worker' },
|
||||
{ value: 'dedicated', description: 'dedicated worker' },
|
||||
{ value: 'shared', description: 'shared worker' },
|
||||
{ value: 'service', description: 'service worker' },
|
||||
|
|
@ -81,7 +105,7 @@ export const kCTSOptionsInfo: OptionsInfos<CTSOptions> = {
|
|||
description: 'set default powerPreference for some tests',
|
||||
parser: optionString,
|
||||
selectValueDescriptions: [
|
||||
{ value: '', description: 'default' },
|
||||
{ value: null, description: 'default' },
|
||||
{ value: 'low-power', description: 'low-power' },
|
||||
{ value: 'high-performance', description: 'high-performance' },
|
||||
],
|
||||
|
|
@ -110,7 +134,7 @@ function getOptionsInfoFromSearchString<Type extends CTSOptions>(
|
|||
searchString: string
|
||||
): Type {
|
||||
const searchParams = new URLSearchParams(searchString);
|
||||
const optionValues: Record<string, boolean | string> = {};
|
||||
const optionValues: Record<string, boolean | string | null> = {};
|
||||
for (const [optionName, info] of Object.entries(optionsInfos)) {
|
||||
const parser = info.parser || optionEnabled;
|
||||
optionValues[optionName] = parser(camelCaseToSnakeCase(optionName), searchParams);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { TestQueryWithExpectation } from '../../internal/query/query.js';
|
|||
import { timeout } from '../../util/timeout.js';
|
||||
import { assert } from '../../util/util.js';
|
||||
|
||||
import { CTSOptions, kDefaultCTSOptions } from './options.js';
|
||||
import { CTSOptions, WorkerMode, kDefaultCTSOptions } from './options.js';
|
||||
import { WorkerTestRunRequest } from './utils_worker.js';
|
||||
|
||||
/** Query all currently-registered service workers, and unregister them. */
|
||||
|
|
@ -28,7 +28,7 @@ class TestBaseWorker {
|
|||
protected readonly ctsOptions: CTSOptions;
|
||||
protected readonly resolvers = new Map<string, (result: LiveTestCaseResult) => void>();
|
||||
|
||||
constructor(worker: CTSOptions['worker'], ctsOptions?: CTSOptions) {
|
||||
constructor(worker: WorkerMode, ctsOptions?: CTSOptions) {
|
||||
this.ctsOptions = { ...(ctsOptions || kDefaultCTSOptions), ...{ worker } };
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,10 +57,16 @@ const logger = new Logger();
|
|||
|
||||
setBaseResourcePath('../out/resources');
|
||||
|
||||
const dedicatedWorker =
|
||||
options.worker === 'dedicated' ? new TestDedicatedWorker(options) : undefined;
|
||||
const sharedWorker = options.worker === 'shared' ? new TestSharedWorker(options) : undefined;
|
||||
const serviceWorker = options.worker === 'service' ? new TestServiceWorker(options) : undefined;
|
||||
const testWorker =
|
||||
options.worker === null
|
||||
? null
|
||||
: options.worker === 'dedicated'
|
||||
? new TestDedicatedWorker(options)
|
||||
: options.worker === 'shared'
|
||||
? new TestSharedWorker(options)
|
||||
: options.worker === 'service'
|
||||
? new TestServiceWorker(options)
|
||||
: unreachable();
|
||||
|
||||
const autoCloseOnPass = document.getElementById('autoCloseOnPass') as HTMLInputElement;
|
||||
const resultsVis = document.getElementById('resultsVis')!;
|
||||
|
|
@ -173,12 +179,8 @@ function makeCaseHTML(t: TestTreeLeaf): VisualizedSubtree {
|
|||
|
||||
const [rec, res] = logger.record(name);
|
||||
caseResult = res;
|
||||
if (dedicatedWorker) {
|
||||
await dedicatedWorker.run(rec, name);
|
||||
} else if (sharedWorker) {
|
||||
await sharedWorker.run(rec, name);
|
||||
} else if (serviceWorker) {
|
||||
await serviceWorker.run(rec, name);
|
||||
if (testWorker) {
|
||||
await testWorker.run(rec, name);
|
||||
} else {
|
||||
await t.run(rec);
|
||||
}
|
||||
|
|
@ -515,13 +517,11 @@ function makeTreeNodeHeaderHTML(
|
|||
// Collapse s:f:t:* or s:f:t:c by default.
|
||||
let lastQueryLevelToExpand: TestQueryLevel = 2;
|
||||
|
||||
type ParamValue = string | undefined | null | boolean | string[];
|
||||
|
||||
/**
|
||||
* Takes an array of string, ParamValue and returns an array of pairs
|
||||
* of [key, value] where value is a string. Converts boolean to '0' or '1'.
|
||||
*/
|
||||
function keyValueToPairs([k, v]: [string, ParamValue]): [string, string][] {
|
||||
function keyValueToPairs([k, v]: [string, boolean | string | null]): [string, string][] {
|
||||
const key = camelCaseToSnakeCase(k);
|
||||
if (typeof v === 'boolean') {
|
||||
return [[key, v ? '1' : '0']];
|
||||
|
|
@ -542,9 +542,9 @@ function keyValueToPairs([k, v]: [string, ParamValue]): [string, string][] {
|
|||
* @param params Some object with key value pairs.
|
||||
* @returns a search string.
|
||||
*/
|
||||
function prepareParams(params: Record<string, ParamValue>): string {
|
||||
function prepareParams(params: Record<string, boolean | string | null>): string {
|
||||
const pairsArrays = Object.entries(params)
|
||||
.filter(([, v]) => !!v)
|
||||
.filter(([, v]) => !(v === false || v === null || v === '0'))
|
||||
.map(keyValueToPairs);
|
||||
const pairs = pairsArrays.flat();
|
||||
return new URLSearchParams(pairs).toString();
|
||||
|
|
@ -552,7 +552,7 @@ function prepareParams(params: Record<string, ParamValue>): string {
|
|||
|
||||
// This is just a cast in one place.
|
||||
export function optionsToRecord(options: CTSOptions) {
|
||||
return options as unknown as Record<string, boolean | string>;
|
||||
return options as unknown as Record<string, boolean | string | null>;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -612,15 +612,15 @@ void (async () => {
|
|||
};
|
||||
|
||||
const createSelect = (optionName: string, info: OptionInfo) => {
|
||||
const select = $('<select>').on('change', function () {
|
||||
optionValues[optionName] = (this as HTMLInputElement).value;
|
||||
const select = $('<select>').on('change', function (this: HTMLSelectElement) {
|
||||
optionValues[optionName] = JSON.parse(this.value);
|
||||
updateURLsWithCurrentOptions();
|
||||
});
|
||||
const currentValue = optionValues[optionName];
|
||||
for (const { value, description } of info.selectValueDescriptions!) {
|
||||
$('<option>')
|
||||
.text(description)
|
||||
.val(value)
|
||||
.val(JSON.stringify(value))
|
||||
.prop('selected', value === currentValue)
|
||||
.appendTo(select);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { parseQuery } from '../internal/query/parseQuery.js';
|
|||
import { parseExpectationsForTestQuery, relativeQueryString } from '../internal/query/query.js';
|
||||
import { assert } from '../util/util.js';
|
||||
|
||||
import { optionEnabled, optionString } from './helper/options.js';
|
||||
import { optionEnabled, optionWorkerMode } from './helper/options.js';
|
||||
import { TestDedicatedWorker, TestServiceWorker, TestSharedWorker } from './helper/test_worker.js';
|
||||
|
||||
// testharness.js API (https://web-platform-tests.org/writing-tests/testharness-api.html)
|
||||
|
|
@ -31,7 +31,7 @@ setup({
|
|||
});
|
||||
|
||||
void (async () => {
|
||||
const workerString = optionString('worker');
|
||||
const workerString = optionWorkerMode('worker');
|
||||
const dedicatedWorker = workerString === 'dedicated' ? new TestDedicatedWorker() : undefined;
|
||||
const sharedWorker = workerString === 'shared' ? new TestSharedWorker() : undefined;
|
||||
const serviceWorker = workerString === 'service' ? new TestServiceWorker() : undefined;
|
||||
|
|
|
|||
216
src/resources/cache/hashes.json
vendored
216
src/resources/cache/hashes.json
vendored
|
|
@ -1,110 +1,110 @@
|
|||
{
|
||||
"webgpu/shader/execution/binary/af_addition.bin": "cb4172d4",
|
||||
"webgpu/shader/execution/binary/af_logical.bin": "4ab46b37",
|
||||
"webgpu/shader/execution/binary/af_division.bin": "e81d378b",
|
||||
"webgpu/shader/execution/binary/af_matrix_addition.bin": "f9ff547c",
|
||||
"webgpu/shader/execution/binary/af_matrix_subtraction.bin": "7cac5e7d",
|
||||
"webgpu/shader/execution/binary/af_multiplication.bin": "99b69f0b",
|
||||
"webgpu/shader/execution/binary/af_remainder.bin": "5ff9848",
|
||||
"webgpu/shader/execution/binary/af_subtraction.bin": "47ee43a7",
|
||||
"webgpu/shader/execution/binary/f16_addition.bin": "af7b40c7",
|
||||
"webgpu/shader/execution/binary/f16_logical.bin": "9c6c1e6e",
|
||||
"webgpu/shader/execution/binary/f16_division.bin": "3c33577",
|
||||
"webgpu/shader/execution/binary/f16_matrix_addition.bin": "8b06c098",
|
||||
"webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin": "42d84676",
|
||||
"webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin": "e57d6337",
|
||||
"webgpu/shader/execution/binary/f16_matrix_subtraction.bin": "8d0d5786",
|
||||
"webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin": "4bd1d55c",
|
||||
"webgpu/shader/execution/binary/f16_multiplication.bin": "5b79a06c",
|
||||
"webgpu/shader/execution/binary/f16_remainder.bin": "56c6fd13",
|
||||
"webgpu/shader/execution/binary/f16_subtraction.bin": "5e2a15de",
|
||||
"webgpu/shader/execution/binary/f32_addition.bin": "3fa55b3e",
|
||||
"webgpu/shader/execution/binary/f32_logical.bin": "88147642",
|
||||
"webgpu/shader/execution/binary/f32_division.bin": "9b820517",
|
||||
"webgpu/shader/execution/binary/f32_matrix_addition.bin": "3774d950",
|
||||
"webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin": "fa3c5bbe",
|
||||
"webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin": "dd1f8ac6",
|
||||
"webgpu/shader/execution/binary/f32_matrix_subtraction.bin": "b5fb0367",
|
||||
"webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin": "2395ac7f",
|
||||
"webgpu/shader/execution/binary/f32_multiplication.bin": "83dd7d17",
|
||||
"webgpu/shader/execution/binary/f32_remainder.bin": "20fb01b8",
|
||||
"webgpu/shader/execution/binary/f32_subtraction.bin": "c2f781e5",
|
||||
"webgpu/shader/execution/binary/i32_arithmetic.bin": "5da3948d",
|
||||
"webgpu/shader/execution/binary/i32_comparison.bin": "de613ac3",
|
||||
"webgpu/shader/execution/binary/u32_arithmetic.bin": "804d316d",
|
||||
"webgpu/shader/execution/binary/u32_comparison.bin": "c80cabe7",
|
||||
"webgpu/shader/execution/abs.bin": "142436dc",
|
||||
"webgpu/shader/execution/acos.bin": "e1d3ab2",
|
||||
"webgpu/shader/execution/acosh.bin": "924df3d9",
|
||||
"webgpu/shader/execution/asin.bin": "dd90fae0",
|
||||
"webgpu/shader/execution/asinh.bin": "6a7e280a",
|
||||
"webgpu/shader/execution/atan.bin": "764b9f74",
|
||||
"webgpu/shader/execution/atan2.bin": "66d9b08d",
|
||||
"webgpu/shader/execution/atanh.bin": "c5144da7",
|
||||
"webgpu/shader/execution/bitcast.bin": "760ed7da",
|
||||
"webgpu/shader/execution/ceil.bin": "a331d744",
|
||||
"webgpu/shader/execution/clamp.bin": "f13d866b",
|
||||
"webgpu/shader/execution/cos.bin": "2b1f4bba",
|
||||
"webgpu/shader/execution/cosh.bin": "628443ef",
|
||||
"webgpu/shader/execution/cross.bin": "3bb8195d",
|
||||
"webgpu/shader/execution/degrees.bin": "ea897bb9",
|
||||
"webgpu/shader/execution/determinant.bin": "31587e",
|
||||
"webgpu/shader/execution/distance.bin": "63d3ff55",
|
||||
"webgpu/shader/execution/dot.bin": "a7a2589d",
|
||||
"webgpu/shader/execution/exp.bin": "939d087",
|
||||
"webgpu/shader/execution/exp2.bin": "4cee4ad0",
|
||||
"webgpu/shader/execution/faceForward.bin": "b0d2c5d5",
|
||||
"webgpu/shader/execution/floor.bin": "369733db",
|
||||
"webgpu/shader/execution/fma.bin": "af7f3d",
|
||||
"webgpu/shader/execution/fract.bin": "67a75ead",
|
||||
"webgpu/shader/execution/frexp.bin": "ea298216",
|
||||
"webgpu/shader/execution/inverseSqrt.bin": "5374fbb9",
|
||||
"webgpu/shader/execution/ldexp.bin": "713c1458",
|
||||
"webgpu/shader/execution/length.bin": "6ebfc109",
|
||||
"webgpu/shader/execution/log.bin": "adc78863",
|
||||
"webgpu/shader/execution/log2.bin": "6c660d3",
|
||||
"webgpu/shader/execution/max.bin": "74cd5ff7",
|
||||
"webgpu/shader/execution/min.bin": "20a5be75",
|
||||
"webgpu/shader/execution/mix.bin": "35295417",
|
||||
"webgpu/shader/execution/modf.bin": "72d18336",
|
||||
"webgpu/shader/execution/normalize.bin": "ef7dea0f",
|
||||
"webgpu/shader/execution/pack2x16float.bin": "4f856f75",
|
||||
"webgpu/shader/execution/pow.bin": "924cca64",
|
||||
"webgpu/shader/execution/quantizeToF16.bin": "6879a28c",
|
||||
"webgpu/shader/execution/radians.bin": "99f05ef6",
|
||||
"webgpu/shader/execution/reflect.bin": "b34633e5",
|
||||
"webgpu/shader/execution/refract.bin": "b4020fc9",
|
||||
"webgpu/shader/execution/round.bin": "72c6e2ad",
|
||||
"webgpu/shader/execution/saturate.bin": "44aa009c",
|
||||
"webgpu/shader/execution/sign.bin": "7b5d53e9",
|
||||
"webgpu/shader/execution/sin.bin": "21be86ed",
|
||||
"webgpu/shader/execution/sinh.bin": "3100e9a1",
|
||||
"webgpu/shader/execution/smoothstep.bin": "a95195f3",
|
||||
"webgpu/shader/execution/sqrt.bin": "c68b086e",
|
||||
"webgpu/shader/execution/step.bin": "d57ef060",
|
||||
"webgpu/shader/execution/tan.bin": "558d59db",
|
||||
"webgpu/shader/execution/tanh.bin": "11c64c02",
|
||||
"webgpu/shader/execution/transpose.bin": "670dd7e8",
|
||||
"webgpu/shader/execution/trunc.bin": "cbd1b19a",
|
||||
"webgpu/shader/execution/unpack2x16float.bin": "28ce038e",
|
||||
"webgpu/shader/execution/unpack2x16snorm.bin": "28ffe694",
|
||||
"webgpu/shader/execution/unpack2x16unorm.bin": "223a8aa3",
|
||||
"webgpu/shader/execution/unpack4x8snorm.bin": "243752df",
|
||||
"webgpu/shader/execution/unpack4x8unorm.bin": "5c1cd945",
|
||||
"webgpu/shader/execution/unary/af_arithmetic.bin": "6bf0b9a6",
|
||||
"webgpu/shader/execution/unary/af_assignment.bin": "bc5d5f22",
|
||||
"webgpu/shader/execution/unary/bool_conversion.bin": "c9136cff",
|
||||
"webgpu/shader/execution/unary/f16_arithmetic.bin": "db299c67",
|
||||
"webgpu/shader/execution/unary/f16_conversion.bin": "a110dce0",
|
||||
"webgpu/shader/execution/unary/f32_arithmetic.bin": "90160a4f",
|
||||
"webgpu/shader/execution/unary/f32_conversion.bin": "edaca050",
|
||||
"webgpu/shader/execution/unary/i32_arithmetic.bin": "bef73c95",
|
||||
"webgpu/shader/execution/unary/i32_conversion.bin": "ec83116a",
|
||||
"webgpu/shader/execution/unary/u32_conversion.bin": "5cf9eb67",
|
||||
"webgpu/shader/execution/unary/ai_assignment.bin": "a4545c36",
|
||||
"webgpu/shader/execution/binary/ai_arithmetic.bin": "ac744b6a",
|
||||
"webgpu/shader/execution/unary/ai_arithmetic.bin": "a7527c0f",
|
||||
"webgpu/shader/execution/binary/af_matrix_matrix_multiplication.bin": "1b8e7eca",
|
||||
"webgpu/shader/execution/binary/af_matrix_scalar_multiplication.bin": "f4225122",
|
||||
"webgpu/shader/execution/binary/af_matrix_vector_multiplication.bin": "f4c1e7a8"
|
||||
"webgpu/shader/execution/binary/af_addition.bin": "b022f46c",
|
||||
"webgpu/shader/execution/binary/af_logical.bin": "72dabe85",
|
||||
"webgpu/shader/execution/binary/af_division.bin": "b6124788",
|
||||
"webgpu/shader/execution/binary/af_matrix_addition.bin": "730a1448",
|
||||
"webgpu/shader/execution/binary/af_matrix_subtraction.bin": "2a24e450",
|
||||
"webgpu/shader/execution/binary/af_multiplication.bin": "b2a8c82",
|
||||
"webgpu/shader/execution/binary/af_remainder.bin": "b161b16",
|
||||
"webgpu/shader/execution/binary/af_subtraction.bin": "5b5a640f",
|
||||
"webgpu/shader/execution/binary/f16_addition.bin": "e796ca6",
|
||||
"webgpu/shader/execution/binary/f16_logical.bin": "f490e3c2",
|
||||
"webgpu/shader/execution/binary/f16_division.bin": "572e2a4c",
|
||||
"webgpu/shader/execution/binary/f16_matrix_addition.bin": "89a22642",
|
||||
"webgpu/shader/execution/binary/f16_matrix_matrix_multiplication.bin": "856dade1",
|
||||
"webgpu/shader/execution/binary/f16_matrix_scalar_multiplication.bin": "16625b02",
|
||||
"webgpu/shader/execution/binary/f16_matrix_subtraction.bin": "f8973c41",
|
||||
"webgpu/shader/execution/binary/f16_matrix_vector_multiplication.bin": "81ffb321",
|
||||
"webgpu/shader/execution/binary/f16_multiplication.bin": "16e55d7d",
|
||||
"webgpu/shader/execution/binary/f16_remainder.bin": "61b169d1",
|
||||
"webgpu/shader/execution/binary/f16_subtraction.bin": "b24c051f",
|
||||
"webgpu/shader/execution/binary/f32_addition.bin": "94459204",
|
||||
"webgpu/shader/execution/binary/f32_logical.bin": "e29d59d9",
|
||||
"webgpu/shader/execution/binary/f32_division.bin": "91496c9f",
|
||||
"webgpu/shader/execution/binary/f32_matrix_addition.bin": "c43e676d",
|
||||
"webgpu/shader/execution/binary/f32_matrix_matrix_multiplication.bin": "2e8cc15",
|
||||
"webgpu/shader/execution/binary/f32_matrix_scalar_multiplication.bin": "41b8897d",
|
||||
"webgpu/shader/execution/binary/f32_matrix_subtraction.bin": "ec3d4bb0",
|
||||
"webgpu/shader/execution/binary/f32_matrix_vector_multiplication.bin": "6986af55",
|
||||
"webgpu/shader/execution/binary/f32_multiplication.bin": "28814138",
|
||||
"webgpu/shader/execution/binary/f32_remainder.bin": "d260201e",
|
||||
"webgpu/shader/execution/binary/f32_subtraction.bin": "fb0a8393",
|
||||
"webgpu/shader/execution/binary/i32_arithmetic.bin": "d65cbcbc",
|
||||
"webgpu/shader/execution/binary/i32_comparison.bin": "49a58ed3",
|
||||
"webgpu/shader/execution/binary/u32_arithmetic.bin": "955705d8",
|
||||
"webgpu/shader/execution/binary/u32_comparison.bin": "51f08426",
|
||||
"webgpu/shader/execution/abs.bin": "877fa896",
|
||||
"webgpu/shader/execution/acos.bin": "e4c295ed",
|
||||
"webgpu/shader/execution/acosh.bin": "5790438d",
|
||||
"webgpu/shader/execution/asin.bin": "b48588e3",
|
||||
"webgpu/shader/execution/asinh.bin": "57c09680",
|
||||
"webgpu/shader/execution/atan.bin": "199f5535",
|
||||
"webgpu/shader/execution/atan2.bin": "7aa7e205",
|
||||
"webgpu/shader/execution/atanh.bin": "ae3224c3",
|
||||
"webgpu/shader/execution/bitcast.bin": "7cf3c961",
|
||||
"webgpu/shader/execution/ceil.bin": "426b4ae",
|
||||
"webgpu/shader/execution/clamp.bin": "6d6876a4",
|
||||
"webgpu/shader/execution/cos.bin": "7dd55fa8",
|
||||
"webgpu/shader/execution/cosh.bin": "72151243",
|
||||
"webgpu/shader/execution/cross.bin": "a89b58f1",
|
||||
"webgpu/shader/execution/degrees.bin": "5e782625",
|
||||
"webgpu/shader/execution/determinant.bin": "8fc0b318",
|
||||
"webgpu/shader/execution/distance.bin": "94c02ee2",
|
||||
"webgpu/shader/execution/dot.bin": "146af272",
|
||||
"webgpu/shader/execution/exp.bin": "b586f3af",
|
||||
"webgpu/shader/execution/exp2.bin": "cdb8f88b",
|
||||
"webgpu/shader/execution/faceForward.bin": "58dc6088",
|
||||
"webgpu/shader/execution/floor.bin": "ab55a7e1",
|
||||
"webgpu/shader/execution/fma.bin": "474fbb07",
|
||||
"webgpu/shader/execution/fract.bin": "936af85e",
|
||||
"webgpu/shader/execution/frexp.bin": "505608db",
|
||||
"webgpu/shader/execution/inverseSqrt.bin": "df458cff",
|
||||
"webgpu/shader/execution/ldexp.bin": "6e1654fc",
|
||||
"webgpu/shader/execution/length.bin": "6acb0137",
|
||||
"webgpu/shader/execution/log.bin": "938506c2",
|
||||
"webgpu/shader/execution/log2.bin": "a2b2c951",
|
||||
"webgpu/shader/execution/max.bin": "364a4a82",
|
||||
"webgpu/shader/execution/min.bin": "d554c3",
|
||||
"webgpu/shader/execution/mix.bin": "e449fd1c",
|
||||
"webgpu/shader/execution/modf.bin": "c4012952",
|
||||
"webgpu/shader/execution/normalize.bin": "e6cb0eab",
|
||||
"webgpu/shader/execution/pack2x16float.bin": "4579427",
|
||||
"webgpu/shader/execution/pow.bin": "7694efec",
|
||||
"webgpu/shader/execution/quantizeToF16.bin": "ef4fd5be",
|
||||
"webgpu/shader/execution/radians.bin": "4c226d7c",
|
||||
"webgpu/shader/execution/reflect.bin": "2a3a5a48",
|
||||
"webgpu/shader/execution/refract.bin": "6c780f5f",
|
||||
"webgpu/shader/execution/round.bin": "9b0d7dba",
|
||||
"webgpu/shader/execution/saturate.bin": "6ea01b1a",
|
||||
"webgpu/shader/execution/sign.bin": "407230b",
|
||||
"webgpu/shader/execution/sin.bin": "7b4a3000",
|
||||
"webgpu/shader/execution/sinh.bin": "d9ad3b9b",
|
||||
"webgpu/shader/execution/smoothstep.bin": "916bb5ee",
|
||||
"webgpu/shader/execution/sqrt.bin": "2bee21d5",
|
||||
"webgpu/shader/execution/step.bin": "ed607328",
|
||||
"webgpu/shader/execution/tan.bin": "939f43d9",
|
||||
"webgpu/shader/execution/tanh.bin": "7a245640",
|
||||
"webgpu/shader/execution/transpose.bin": "3316ab98",
|
||||
"webgpu/shader/execution/trunc.bin": "8dc1ca11",
|
||||
"webgpu/shader/execution/unpack2x16float.bin": "14fbc1bb",
|
||||
"webgpu/shader/execution/unpack2x16snorm.bin": "b0ba4d52",
|
||||
"webgpu/shader/execution/unpack2x16unorm.bin": "8b843a60",
|
||||
"webgpu/shader/execution/unpack4x8snorm.bin": "e0a14dc9",
|
||||
"webgpu/shader/execution/unpack4x8unorm.bin": "ca1e0cf3",
|
||||
"webgpu/shader/execution/unary/af_arithmetic.bin": "c9248fdb",
|
||||
"webgpu/shader/execution/unary/af_assignment.bin": "3fb413d2",
|
||||
"webgpu/shader/execution/unary/bool_conversion.bin": "dd407fe0",
|
||||
"webgpu/shader/execution/unary/f16_arithmetic.bin": "893c0051",
|
||||
"webgpu/shader/execution/unary/f16_conversion.bin": "8399dcbc",
|
||||
"webgpu/shader/execution/unary/f32_arithmetic.bin": "957a857e",
|
||||
"webgpu/shader/execution/unary/f32_conversion.bin": "314c8766",
|
||||
"webgpu/shader/execution/unary/i32_arithmetic.bin": "8b011e78",
|
||||
"webgpu/shader/execution/unary/i32_conversion.bin": "f2322e5f",
|
||||
"webgpu/shader/execution/unary/u32_conversion.bin": "185ec03a",
|
||||
"webgpu/shader/execution/unary/ai_assignment.bin": "6a99b432",
|
||||
"webgpu/shader/execution/binary/ai_arithmetic.bin": "4f5e5370",
|
||||
"webgpu/shader/execution/unary/ai_arithmetic.bin": "5eb4d715",
|
||||
"webgpu/shader/execution/binary/af_matrix_matrix_multiplication.bin": "d02395d6",
|
||||
"webgpu/shader/execution/binary/af_matrix_scalar_multiplication.bin": "c84642b4",
|
||||
"webgpu/shader/execution/binary/af_matrix_vector_multiplication.bin": "bf15697e"
|
||||
}
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
export const description = `
|
||||
Tests WebGPU is available in a dedicated worker and a shared worker.
|
||||
|
||||
Note: The CTS test can be run respectively in a dedicated worker and a shared worker by
|
||||
passing in worker=dedicated and worker=shared as a query parameter. These tests
|
||||
are specifically to check that WebGPU is available in a dedicated worker and a shared worker.
|
||||
Note: Any CTS test can be run in a worker by passing ?worker=dedicated, ?worker=shared,
|
||||
?worker=service as a query parameter. The tests in this file are specifically to check
|
||||
that WebGPU is available in each worker type. When run in combination with a ?worker flag,
|
||||
they will test workers created from other workers (where APIs exist to do so).
|
||||
|
||||
TODO[2]: Figure out how to make these tests run in service workers (not actually
|
||||
important unless service workers gain the ability to launch other workers).
|
||||
|
|
|
|||
Loading…
Reference in a new issue