GPUBuffer: mapAsync() 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 mapAsync()
Methode der GPUBuffer
Schnittstelle bildet den angegebenen Bereich des GPUBuffer
. Sie gibt ein Promise
zurück, das sich auflöst, wenn der Inhalt des GPUBuffer
bereit ist, um darauf zuzugreifen. Während der GPUBuffer
abgebildet ist, kann er in keinen GPU-Befehlen verwendet werden.
Sobald der Puffer erfolgreich abgebildet ist (was über GPUBuffer.mapState
überprüft werden kann), werden Aufrufe von GPUBuffer.getMappedRange()
ein ArrayBuffer
zurückgeben, das die aktuellen Werte des GPUBuffer
enthält, die nach Bedarf von JavaScript gelesen und aktualisiert werden können.
Wenn Sie die Arbeit mit den Werten des GPUBuffer
abgeschlossen haben, rufen Sie GPUBuffer.unmap()
auf, um ihn wieder abzubilden und für die GPU zugänglich zu machen.
Syntax
mapAsync(mode)
mapAsync(mode, offset, size)
Parameter
mode
-
Ein bitweises Flag, das angibt, ob der
GPUBuffer
zum Lesen oder Schreiben abgebildet ist. Mögliche Werte sind:GPUMapMode.READ
-
Der
GPUBuffer
ist zum Lesen abgebildet. Werte können gelesen werden, aber alle Änderungen amArrayBuffer
, die durchGPUBuffer.getMappedRange()
zurückgegeben werden, werden verworfen, sobaldGPUBuffer.unmap()
aufgerufen wird.Die Abbildung im Lesemodus kann nur bei
GPUBuffer
s verwendet werden, die eine Nutzung vonGPUBufferUsage.MAP_READ
haben (d.h. wenn sie mitGPUDevice.createBuffer()
erstellt wurden). GPUMapMode.WRITE
-
Der
GPUBuffer
ist zum Schreiben abgebildet. Werte können gelesen und aktualisiert werden – alle Änderungen amArrayBuffer
, die durchGPUBuffer.getMappedRange()
zurückgegeben werden, werden in denGPUBuffer
gespeichert, sobaldGPUBuffer.unmap()
aufgerufen wird.Die Abbildung im Schreibmodus kann nur bei
GPUBuffer
s verwendet werden, die eine Nutzung vonGPUBufferUsage.MAP_WRITE
haben (d.h. wenn sie mitGPUDevice.createBuffer()
erstellt wurden).
offset
Optional-
Eine Zahl, die den Offset in Bytes vom Beginn des Puffers bis zum Beginn des Bereichs darstellt, der abgebildet werden soll. Wenn
offset
weggelassen wird, ist der Standardwert 0. size
Optional-
Eine Zahl, die die Größe des Bereichs in Bytes darstellt, der abgebildet werden soll. Wenn
size
weggelassen wird, erstreckt sich der abgebildete Bereich bis zum Ende desGPUBuffer
.
Rückgabewert
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn mapAsync()
aufgerufen wird, andernfalls wird eine OperationError
DOMException
ausgelöst, das Versprechen abgelehnt und ein GPUValidationError
erzeugt:
offset
ist ein Vielfaches von 8.- Der gesamte Bereich, der abgebildet werden soll (
size
, falls angegeben, oderGPUBuffer.size
-offset
, falls nicht), ist ein Vielfaches von 4. - Der gesamte Bereich, der abgebildet werden soll, liegt innerhalb der Grenzen des
GPUBuffer
. - Wenn der Modus
GPUMapMode.READ
ist, hat derGPUBuffer
eine Nutzung vonGPUBufferUsage.MAP_READ
. - Wenn der Modus
GPUMapMode.WRITE
ist, hat derGPUBuffer
eine Nutzung vonGPUBufferUsage.MAP_WRITE
.
Beispiele
Siehe die Hauptseite GPUBuffer
für ein Beispiel.
Spezifikationen
Specification |
---|
WebGPU # dom-gpubuffer-mapasync |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mapAsync |
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
- Die WebGPU API