Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. GPUQueue
  4. onSubmittedWorkDone()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

GPUQueue: onSubmittedWorkDone() Methode

Limited availability

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

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

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DieonSubmittedWorkDone() Methode desGPUQueue Interface gibt einPromise zurück, das aufgelöst wird, wenn alle Arbeiten, die über dieseGPUQueue an die GPU übergeben wurden, zu dem Zeitpunkt, an dem die Methode aufgerufen wird, verarbeitet wurden.

Dies schließt den Abschluss allermapAsync() Aufrufe ein, die aufGPUBuffers durchgeführt wurden, die in Befehlen verwendet wurden, die an die Queue übergeben wurden, bevoronSubmittedWorkDone() aufgerufen wird.

Hinweis:In den meisten Fällen müssen SieonSubmittedWorkDone()nicht aufrufen. Sie müssen esnicht für das Mapping eines Buffers aufrufen.mapAsync garantiert, dass die Arbeit, die vor dem Aufruf vonmapAsync an die Queue übergeben wurde, bevormapAsync zurückkehrt, abgeschlossen ist (sieheWebGPU-Spezifikation).

Die zwei Anwendungsfälle füronSubmittedWorkDone

  1. Warten auf mehrere Buffer-Mappings (langsam)

    js
    // goodawait Promise.all([  buffer1.mapAsync(),  buffer2.mapAsync(),  buffer3.mapAsync(),]);data1 = buffer1.getMappedRange();data2 = buffer2.getMappedRange();data3 = buffer3.getMappedRange();
    js
    // works but slowbuffer1.mapAsync();buffer2.mapAsync();buffer3.mapAsync();await device.queue.onSubmittedWorkDone();data1 = buffer1.getMappedRange();data2 = buffer2.getMappedRange();data3 = buffer3.getMappedRange();

    Der Grund, warum die zweite Methode langsam ist, liegt darin, dass die Implementierung möglicherweise in der Lage ist, die Buffer zu mappen, bevor alle eingereichten Arbeiten abgeschlossen sind. Zum Beispiel, wenn alle Buffer beendet sind, aber mehr Arbeit (nicht in Zusammenhang mit den Buffern) bereits eingereicht wurde, dann werden Sie mit der zweiten Methode länger warten als mit der ersten.

  2. Drosselung der Arbeit

    Wenn Sie schwere Rechenarbeiten durchführen und zu viel Arbeit auf einmal einreichen, kann der Browser Ihre Arbeit beenden. Sie können die Arbeit drosseln, indem Sie nur dann mehr Arbeit einreichen, wenn die bereits eingereichte Arbeit abgeschlossen ist.

Syntax

js
onSubmittedWorkDone()

Parameter

Keine.

Rückgabewert

EinPromise, das mitUndefined aufgelöst wird.

Beispiele

js
device.queue.submit([commandEncoder.finish()]);device.queue.onSubmittedWorkDone().then(() => {  console.log("All submitted commands processed.");});

Spezifikationen

Specification
WebGPU
# dom-gpuqueue-onsubmittedworkdone

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp