GPUSupportedFeatures
WebGPU API的GPUSupportedFeatures
接口是一个类似于Set
的对象,它描述了GPUAdapter
支持的其他功能。
当前适配器的GPUSupportedFeatures
对象可以通过GPUAdapter.features
属性访问。
请注意,并非所有支持 WebGPU 的浏览器都提供所有功能,即使底层硬件支持这些功能。这可能是由于底层系统、浏览器或适配器中的限制造成的。例如
- 底层系统可能无法以与特定浏览器兼容的方式保证功能的公开。
- 浏览器供应商可能没有找到一种安全的方法来实现对该功能的支持,或者可能还没有开始着手实施。
如果您希望在 WebGPU 应用程序中利用特定附加功能,建议进行彻底的测试。
可用功能
我们没有列出 WebGPU 可用的所有附加功能的精确集合,因为这些功能在不同的实现和物理设备之间会有所不同,并且会随着时间的推移而发生变化。有关列表,请参阅规范中的功能索引。
实例属性
实例方法
示例
js
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 adapterFeatures = adapter.features;
// Return the size of the set
console.log(adapterFeatures.size);
// Check whether a feature is supported by the adapter
console.log(adapterFeatures.has("texture-compression-astc"));
// Iterate through all the set values using values()
const valueIterator = adapterFeatures.values();
for (const value of valueIterator) {
console.log(value);
}
// Iterate through all the set values using keys()
const keyIterator = adapterFeatures.keys();
for (const value of keyIterator) {
console.log(value);
}
// Iterate through all the set values using entries()
const entryIterator = adapterFeatures.entries();
for (const entry of entryIterator) {
console.log(entry[0]);
}
// Iterate through all the set values using forEach()
adapterFeatures.forEach((value) => {
console.log(value);
});
//...
}
规范
规范 |
---|
WebGPU # gpu-supportedfeatures |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- The WebGPU API