Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"@types/w3c-image-capture": "^1.0.10",
"@typescript-eslint/eslint-plugin": "^6.9.1",
"@typescript-eslint/parser": "^6.9.1",
"@webgpu/types": "^0.1.66",
"@webgpu/types": "^0.1.68",
"ansi-colors": "4.1.3",
"babel-plugin-add-header-comment": "^1.0.3",
"babel-plugin-const-enum": "^1.2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,11 @@ export class LimitTestsImpl extends GPUTestBase {
this._adapter = await gpu.requestAdapter();
const limit = this.limit;
// MAINTENANCE_TODO: consider removing this skip if the spec has no optional limits.
// Note: The cast below is required because an optional limit has no entry
// in capability_info.ts kLimitInfoKeys, kLimitInfoDefaults, kLimitInfoData
this.skipIf(
(this._adapter?.limits[limit] === undefined && !!this.limitTestParams.limitOptional) ||
getDefaultLimitsForCTS()[limit] === undefined,
!(limit in getDefaultLimitsForCTS()),
`${limit} is missing but optional for now`
);
this.defaultLimit = getDefaultLimitForAdapter(this.adapter, limit);
Expand Down
30 changes: 30 additions & 0 deletions src/webgpu/api/validation/encoding/encoder_open_state.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ const kRenderPassEncoderCommandInfo: {
setScissorRect: {},
setBlendConstant: {},
setStencilReference: {},
setImmediates: {},
beginOcclusionQuery: {},
endOcclusionQuery: {},
executeBundles: {},
Expand All @@ -122,6 +123,7 @@ const kRenderBundleEncoderCommandInfo: {
setBindGroup: {},
setIndexBuffer: {},
setVertexBuffer: {},
setImmediates: {},
pushDebugGroup: {},
popDebugGroup: {},
insertDebugMarker: {},
Expand All @@ -139,6 +141,7 @@ const kComputePassEncoderCommandInfo: {
} = {
setBindGroup: {},
setPipeline: {},
setImmediates: {},
dispatchWorkgroups: {},
dispatchWorkgroupsIndirect: {},
pushDebugGroup: {},
Expand Down Expand Up @@ -286,6 +289,13 @@ g.test('render_pass_commands')
.beginSubcases()
.combine('finishBeforeCommand', ['no', 'pass', 'encoder'])
)
.beforeAllSubcases(t => {
// MAINTENANCE_TODO: Remove when setImmediates is added to spec.
t.skipIf(
t.params.command === 'setImmediates' && !('setImmediates' in GPURenderPassEncoder.prototype),
'setImmediates not supported'
);
})
.fn(t => {
const { command, finishBeforeCommand } = t.params;
if (command === 'multiDrawIndirect' || command === 'multiDrawIndexedIndirect') {
Expand Down Expand Up @@ -440,6 +450,14 @@ g.test('render_bundle_commands')
.beginSubcases()
.combine('finishBeforeCommand', [false, true])
)
.beforeAllSubcases(t => {
// MAINTENANCE_TODO: Remove when setImmediates is added to spec.
t.skipIf(
t.params.command === 'setImmediates' &&
!('setImmediates' in GPURenderBundleEncoder.prototype),
'setImmediates not supported'
);
})
.fn(t => {
const { command, finishBeforeCommand } = t.params;

Expand All @@ -456,6 +474,11 @@ g.test('render_bundle_commands')
colorFormats: ['rgba8unorm'],
});

t.skipIf(
command === 'setImmediates' && !('setImmediates' in bundleEncoder),
'setImmediates not supported'
);

if (finishBeforeCommand) {
bundleEncoder.finish();
}
Expand Down Expand Up @@ -540,6 +563,13 @@ g.test('compute_pass_commands')
.beginSubcases()
.combine('finishBeforeCommand', ['no', 'pass', 'encoder'])
)
.beforeAllSubcases(t => {
// MAINTENANCE_TODO: Remove when setImmediates is added to spec.
t.skipIf(
t.params.command === 'setImmediates' && !('setImmediates' in GPUComputePassEncoder.prototype),
'setImmediates not supported'
);
})
.fn(t => {
const { command, finishBeforeCommand } = t.params;

Expand Down
4 changes: 4 additions & 0 deletions src/webgpu/capability_info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -817,6 +817,10 @@ const [kLimitInfoKeys, kLimitInfoDefaults, kLimitInfoData] =
'maxComputeWorkgroupSizeY': [ , 256, 128, ],
'maxComputeWorkgroupSizeZ': [ , 64, 64, ],
'maxComputeWorkgroupsPerDimension': [ , 65535, 65535, ],
// MAINTENANCE_TODO(4535): Consider allowing optional non-conforming limits. Currently they are not allowed.
// Any limit here is immediately required by all implementations.
// Also, consider having this table statically check that all limits listed in @webgpu/types exist in
// this table.
} as const];

/**
Expand Down