summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/src/webgpu/api/validation/encoding/queries/common.ts
blob: 66e8e78b13e9f919e727d1c7f1b9e7d8dd5a0df3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { GPUTest } from '../../../../gpu_test.js';

export function createQuerySetWithType(
  t: GPUTest,
  type: GPUQueryType,
  count: GPUSize32
): GPUQuerySet {
  return t.device.createQuerySet({
    type,
    count,
  });
}

export function beginRenderPassWithQuerySet(
  t: GPUTest,
  encoder: GPUCommandEncoder,
  querySet?: GPUQuerySet
): GPURenderPassEncoder {
  const view = t.device
    .createTexture({
      format: 'rgba8unorm' as const,
      size: { width: 16, height: 16, depthOrArrayLayers: 1 },
      usage: GPUTextureUsage.RENDER_ATTACHMENT,
    })
    .createView();
  return encoder.beginRenderPass({
    colorAttachments: [
      {
        view,
        clearValue: { r: 1.0, g: 0.0, b: 0.0, a: 1.0 },
        loadOp: 'clear',
        storeOp: 'store',
      },
    ],
    occlusionQuerySet: querySet,
  });
}