GPUSupportedLimits
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех наиболее широко используемых браузерах.
Экспериментально: Это экспериментальная технология экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс GPUSupportedLimits API WebGPU описывает поддерживаемые пределы GPUAdapter.
Объект GPUSupportedLimits для текущего адаптера доступен через свойство GPUAdapter.limits.
Обратите внимание, что вместо отчета о точных пределах каждого графического процессора, браузеры, скорее всего, сообщат о разных значениях уровней различных пределов, чтобы уменьшить уникальную информацию, доступную для определения устройства. Например, уровнями определённого предела могут быть 2048, 8192 и 32768. Если фактический предел вашего графического процессора составляет 16384, браузер все равно сообщит 8192.
Учитывая, что разные браузеры обрабатывают это по-разному, а значения уровней могут меняться со временем, сложно предоставить точное представление о том, какие значения пределов ожидать — рекомендуется тщательное тестирование.
Свойства экземпляра
Следующие пределы представлены свойствами в объекте GPUSupportedLimits. Подробные описания того, к чему относятся пределы, см. в разделе Пределы спецификации.
| Название предела | Значение по умолчанию |
|---|---|
maxTextureDimension1D | 8192 |
maxTextureDimension2D | 8192 |
maxTextureDimension3D | 2048 |
maxTextureArrayLayers | 256 |
maxBindGroups | 4 |
maxBindingsPerBindGroup | 640 |
maxDynamicUniformBuffersPerPipelineLayout | 8 |
maxDynamicStorageBuffersPerPipelineLayout | 4 |
maxSampledTexturesPerShaderStage | 16 |
maxSamplersPerShaderStage | 16 |
maxStorageBuffersPerShaderStage | 8 |
maxStorageTexturesPerShaderStage | 4 |
maxUniformBuffersPerShaderStage | 12 |
maxUniformBufferBindingSize | 65536 байт |
maxStorageBufferBindingSize | 134217728 байт (128 МБ) |
minUniformBufferOffsetAlignment | 256 байт |
minStorageBufferOffsetAlignment | 256 байт |
maxVertexBuffers | 8 |
maxBufferSize | 268435456 байт (256 МБ) |
maxVertexAttributes | 16 |
maxVertexBufferArrayStride | 2048 байт |
maxInterStageShaderComponents | 60 |
maxInterStageShaderVariables | 16 |
maxColorAttachments | 8 |
maxColorAttachmentBytesPerSample | 32 |
maxComputeWorkgroupStorageSize | 16384 байт |
maxComputeInvocationsPerWorkgroup | 256 |
maxComputeWorkgroupSizeX | 256 |
maxComputeWorkgroupSizeY | 256 |
maxComputeWorkgroupSizeZ | 64 |
maxComputeWorkgroupsPerDimension | 65535 |
Примеры
В следующем коде мы запрашиваем значение GPUAdapter.limits maxBindGroups , чтобы проверить, равно ли оно или больше 6. Нашему теоретическому приложению идеально нужны 6 групп связей, поэтому, если возвращаемое значение больше или равно 6, мы добавляем максимальный предел 6 к объекту requiredLimits. Затем мы запрашиваем устройство с этим ограничением, используя GPUAdapter.requestDevice():
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,
});
// ...
}
Спецификации
| Спецификация |
|---|
| WebGPU # gpusupportedlimits |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
GPUSupportedLimits |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
|---|---|---|---|---|---|---|---|---|---|---|---|
maxBindGroups |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxBindGroupsPlusVertexBuffers |
120 | 120 | Нет | 106 | preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxBindingsPerBindGroup |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxBufferSize |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxColorAttachmentBytesPerSample |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxColorAttachments |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeInvocationsPerWorkgroup |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeWorkgroupSizeX |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeWorkgroupSizeY |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeWorkgroupSizeZ |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeWorkgroupStorageSize |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxComputeWorkgroupsPerDimension |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxDynamicStorageBuffersPerPipelineLayout |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxDynamicUniformBuffersPerPipelineLayout |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxInterStageShaderComponents |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxInterStageShaderVariables |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
|---|---|---|---|---|---|---|---|---|---|---|---|
maxSampledTexturesPerShaderStage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxSamplersPerShaderStage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxStorageBufferBindingSize |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxStorageBuffersPerShaderStage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxStorageTexturesPerShaderStage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxTextureArrayLayers |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxTextureDimension1D |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxTextureDimension2D |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxTextureDimension3D |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxUniformBufferBindingSize |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxUniformBuffersPerShaderStage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxVertexAttributes |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxVertexBufferArrayStride |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
maxVertexBuffers |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
minStorageBufferOffsetAlignment |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
minUniformBufferOffsetAlignment |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительный просмотр | 121 | Нет | 81 | Нет | 25.0 | 121 |
|---|
См. также
- API WebGPU
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits