GPURenderPassEncoder: Methode beginOcclusionQuery()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die beginOcclusionQuery()-Methode der GPURenderPassEncoder-Schnittstelle beginnt eine Occlusion Query am angegebenen Index des betreffenden GPUQuerySet (bereitgestellt als Wert der occlusionQuerySet-Descriptor-Eigenschaft bei der Ausführung von GPUCommandEncoder.beginRenderPass() zur Durchführung des Render-Passes).

Syntax

js
beginOcclusionQuery(queryIndex)

Parameter

queryIndex

Der Index im GPUQuerySet, bei dem die Occlusion Query beginnt.

Rückgabewert

Keiner (Undefined).

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn beginOcclusionQuery() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und der GPURenderPassEncoder wird ungültig:

  • Ein GPUQuerySet wurde in der occlusionQuerySet-Descriptor-Eigenschaft angegeben, als der ursprüngliche GPUCommandEncoder.beginRenderPass() aufgerufen wurde.
  • queryIndex ist kleiner als GPUQuerySet.count.
  • Der queryIndex wurde nicht bereits im gleichen Render-Pass beschrieben.
  • Eine Occlusion Query ist für diesen Render-Pass nicht bereits aktiv (d.h. durch einen vorherigen beginOcclusionQuery()-Aufruf).

Beispiele

js
// ...

// Create a query set to hold the occlusion queries
const querySet = device.createQuerySet({
  type: "occlusion",
  count: 32,
});

// Render pass descriptor object, including the querySet
const renderPassDescriptor = {
  colorAttachments: [
    {
      clearValue: clearColor,
      loadOp: "clear",
      storeOp: "store",
      view: context.getCurrentTexture().createView(),
    },
  ],
  occlusionQuerySet: querySet,
};

// Begin the render pass
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// Begin an occlusion query at index 0
passEncoder.beginOcclusionQuery(0);

// Run some rendering commands
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);

// End the occlusion query
passEncoder.endOcclusionQuery();

// ...

Spezifikationen

Specification
WebGPU
# dom-gpurenderpassencoder-beginocclusionquery

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch