GPUAdapter: limits-Eigenschaft
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 in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die schreibgeschützte limits
-Eigenschaft des GPUAdapter
-Interfaces gibt ein GPUSupportedLimits
-Objekt zurück, das die vom Adapter unterstützten Grenzwerte beschreibt.
Sie sollten beachten, dass Browser wahrscheinlich anstelle der genauen Grenzen jeder GPU unterschiedliche Stufenwerte verschiedener Grenzen melden, um die eindeutigen Informationen zu reduzieren, die für Drive-by-Fingerprinting verfügbar sind. Zum Beispiel könnten die Stufen eines bestimmten Grenzwertes 2048, 8192 und 32768 sein. Wenn das tatsächliche Limit Ihrer GPU 16384 ist, wird der Browser dennoch 8192 melden.
Da verschiedene Browser dies unterschiedlich handhaben und die Stufenwerte sich im Laufe der Zeit ändern können, ist es schwierig, eine genaue Angabe darüber zu machen, welche Grenzwerte zu erwarten sind — gründliche Tests werden empfohlen.
Wert
Eine Instanz des GPUSupportedLimits
-Objekts.
Beispiele
Im folgenden Code fragen wir den GPUAdapter.limits
-Wert von maxBindGroups
ab, um zu sehen, ob er gleich oder größer als 6 ist. Unsere theoretische Beispiel-App benötigt idealerweise 6 Bindungsgruppen, sodass wir, wenn der zurückgegebene Wert >= 6 ist, ein maximales Limit von 6 zum requiredLimits
-Objekt hinzufügen und ein Gerät mit dieser Grenzanforderung mittels GPUAdapter.requestDevice()
anfordern:
async function init() {
if (!navigator.gpu) {
throw Error("WebGPU not supported.");
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
throw Error("Couldn't request WebGPU adapter.");
}
const requiredLimits = {};
// App ideally needs 6 bind groups, so we'll try to request what the app needs
if (adapter.limits.maxBindGroups >= 6) {
requiredLimits.maxBindGroups = 6;
}
const device = await adapter.requestDevice({
requiredLimits,
});
// …
}
Spezifikationen
Specification |
---|
WebGPU # dom-gpuadapter-limits |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API