GPUCommandEncoder: resolveQuerySet()-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 resolveQuerySet()-Methode der GPUCommandEncoder-Schnittstelle kodiert einen Befehl, der ein GPUQuerySet auflöst und die Ergebnisse in einen angegebenen GPUBuffer kopiert.

Syntax

js
resolveQuerySet(querySet, firstQuery, queryCount, destination, destinationOffset)

Parameter

querySet

Ein GPUQuerySet-Objekt, das das Abfrageset darstellt, das aufgelöst werden soll.

firstQuery

Die Indexnummer des ersten Abfragewerts, der in den Puffer kopiert werden soll.

queryCount

Die Anzahl der Abfragen, die in den Puffer kopiert werden sollen, beginnend mit firstQuery.

destination

Ein GPUBuffer, der den Puffer darstellt, in den die Abfragewerte kopiert werden sollen.

destinationOffset

Eine Zahl, die den Offset in Bytes vom Beginn des Puffers darstellt, ab dem die Abfragewerte geschrieben werden sollen.

Rückgabewert

Keiner (Undefined).

Validierung

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

  • Das destination.buffer-GPUBuffer.usage enthält das GPUBufferUsage.QUERY_RESOLVE-Flag.
  • firstQuery ist kleiner als die Anzahl der Abfragen in querySet.
  • firstQuery + queryCount ist kleiner oder gleich der Anzahl der Abfragen in querySet.
  • destinationOffset ist ein Vielfaches von 256.
  • destinationOffset + 8 × queryCount ist kleiner oder gleich destination.size.

Beispiele

js
// ...

const queryBuffer = device.createBuffer({
  size: 1024,
  usage: GPUBufferUsage.QUERY_RESOLVE,
});

const querySet = device.createQuerySet({
  type: "timestamp",
  count: 32,
});

// ...

const commandEncoder = device.createCommandEncoder();

// Write timestamps to querySet
commandEncoder.writeTimestamp(querySet, 0);
// ...
commandEncoder.writeTimestamp(querySet, 1);
// etc.

// ...

commandEncoder.resolveQuerySet(
  querySet,
  0, // First query to write
  16, // Number of queries to count
  queryBuffer,
  0, // Buffer offset
);

// ...

Spezifikationen

Specification
WebGPU
# dom-gpucommandencoder-resolvequeryset

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
resolveQuerySet
Experimental

Legend

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

Full support
Full support
Partial support
Partial 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