summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts')
-rw-r--r--dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts53
1 files changed, 48 insertions, 5 deletions
diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts
index 1d8adab7e8..987a88830d 100644
--- a/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts
+++ b/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/queue/destroyed/query_set.spec.ts
@@ -24,11 +24,13 @@ Tests that use a destroyed query set in occlusion query on render pass encoder.
encoder.validateFinishAndSubmitGivenState(t.params.querySetState);
});
-g.test('writeTimestamp')
+g.test('timestamps')
.desc(
`
-Tests that use a destroyed query set in writeTimestamp on {non-pass, compute, render} encoder.
+Tests that use a destroyed query set in timestamp query on {non-pass, compute, render} encoder.
- x= {destroyed, not destroyed (control case)}
+
+ TODO: writeTimestamp is removed from the spec so it's skipped if it TypeErrors.
`
)
.params(u => u.beginSubcases().combine('querySetState', ['valid', 'destroyed'] as const))
@@ -39,9 +41,50 @@ Tests that use a destroyed query set in writeTimestamp on {non-pass, compute, re
count: 2,
});
- const encoder = t.createEncoder('non-pass');
- encoder.encoder.writeTimestamp(querySet, 0);
- encoder.validateFinishAndSubmitGivenState(t.params.querySetState);
+ {
+ const encoder = t.createEncoder('non-pass');
+ try {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ (encoder.encoder as any).writeTimestamp(querySet, 0);
+ } catch (ex) {
+ t.skipIf(ex instanceof TypeError, 'writeTimestamp is actually not available');
+ }
+ encoder.validateFinishAndSubmitGivenState(t.params.querySetState);
+ }
+
+ {
+ const encoder = t.createEncoder('non-pass');
+ encoder.encoder
+ .beginComputePass({
+ timestampWrites: { querySet, beginningOfPassWriteIndex: 0 },
+ })
+ .end();
+ encoder.validateFinishAndSubmitGivenState(t.params.querySetState);
+ }
+
+ {
+ const texture = t.trackForCleanup(
+ t.device.createTexture({
+ size: [1, 1, 1],
+ format: 'rgba8unorm',
+ usage: GPUTextureUsage.RENDER_ATTACHMENT,
+ })
+ );
+ const encoder = t.createEncoder('non-pass');
+ encoder.encoder
+ .beginRenderPass({
+ colorAttachments: [
+ {
+ view: texture.createView(),
+ loadOp: 'load',
+ storeOp: 'store',
+ },
+ ],
+ timestampWrites: { querySet, beginningOfPassWriteIndex: 0 },
+ })
+ .end();
+ encoder.validateFinishAndSubmitGivenState(t.params.querySetState);
+ }
});
g.test('resolveQuerySet')