GPURenderPassEncoder: beginOcclusionQuery()-Methode

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 startet eine Occlusion-Query am angegebenen Index des relevanten GPUQuerySet (bereitgestellt als Wert der occlusionQuerySet-Deskriptoreigenschaft beim Aufruf von GPUCommandEncoder.beginRenderPass(), um den Render-Pass auszuführen).

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 generiert und der GPURenderPassEncoder wird ungültig:

  • Ein GPUQuerySet wurde in der occlusionQuerySet-Deskriptoreigenschaft angegeben, als der ursprüngliche GPUCommandEncoder.beginRenderPass() aufgerufen wurde.
  • queryIndex ist kleiner als GPUQuerySet.count.
  • In den queryIndex wurde im gleichen Render-Pass noch nicht geschrieben.
  • 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

Siehe auch