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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
beginOcclusionQuery
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.
Has more compatibility info.

Siehe auch