Spec-Zone.ru › Web APIs

GPU: метод requestAdapter()

Ограниченное использование

Эта функция не относится к Baseline, так как она не работает во всех наиболее широко используемых браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод requestAdapter() интерфейса GPU возвращает Promise, который выполняется с объектом экземпляра GPUAdapter. Из этого вы можете запросить GPUDevice, информацию об адаптере, возможности и ограничения.

Обратите внимание, что пользовательский агент выбирает, возвращать ли адаптер. В таком случае он выбирает его в соответствии с предоставленными параметрами. Если параметры не указаны, устройство предоставит доступ к адаптеру по умолчанию, который обычно достаточно эффективен для большинства целей.

Синтаксис

requestAdapter()
requestAdapter(options)

Параметры

options Необязательно

Объект, содержащий следующие свойства:

powerPreference Необязательно

Перечисление, которое может быть использовано для предоставления подсказки пользовательскому агенту о том, какой класс адаптера следует выбрать из доступных адаптеров системы. Доступные значения:

  • undefined (или не указано), что не дает подсказки.
  • "low-power", который дает подсказку, чтобы уделить приоритет экономии энергии над производительностью. Если ваше приложение работает нормально с этим значением, рекомендуется его использовать, так как это может значительно увеличить время автономной работы портативных устройств. Это обычно значение по умолчанию, если не указаны параметры.
  • "high-performance", который дает подсказку, чтобы уделить приоритет производительности над энергопотреблением. Рекомендуется указывать это значение только в крайнем случае, так как это может значительно уменьшить время автономной работы портативных устройств. Также это может привести к увеличению потерь GPUDevice — система иногда выбирает переключение на адаптер с меньшим энергопотреблением, чтобы сэкономить энергию.

Основная цель этой подсказки — повлиять на то, какой графический процессор используется в системе с несколькими графическими процессорами. Например, некоторые ноутбуки имеют интегрированный графический процессор с низким энергопотреблением и дискретный графический процессор с высокой производительностью. На выбор адаптера могут влиять различные факторы, включая состояние заряда батареи, подключенные дисплеи или съемные графические процессоры.

Примечание: В Chrome на устройствах macOS с двумя графическими процессорами, если requestAdapter() вызывается без powerPreference опции, возвращается дискретный графический процессор с высокой производительностью, когда устройство пользователя подключено к электросети. В противном случае возвращается интегрированный графический процессор с низким энергопотреблением.

Адаптеры по умолчанию

Адаптер, предоставленный пользовательским агентом, может быть адаптером по умолчанию, если он определит, что это наиболее подходящий вариант, доступный на данный момент. Адаптер по умолчанию обычно имеет существенные недостатки с точки зрения производительности в обмен на сочетание более широкой совместимости, более предсказуемого поведения или улучшенной конфиденциальности. Например, некоторые браузеры могут предложить программную реализацию API через адаптер по умолчанию. Адаптер по умолчанию не будет доступен на всех системах.

Если вы хотите предотвратить работу ваших приложений на адаптерах по умолчанию, вы должны проверить атрибут GPUAdapter.isFallbackAdapter перед запросом GPUDevice.

Примечание: Спецификация включает forceFallbackAdapter опцию для requestAdapter(). Это булево значение, которое, если установлено в true, заставляет пользовательский агент вернуть адаптер по умолчанию, если он доступен. Пока этот вариант не поддерживается ни одним браузером.

Возвращаемое значение

A Promise, который выполняется с объектом экземпляра GPUAdapter, если запрос успешен.

requestAdapter() вернет null если подходящий адаптер недоступен.

Исключения

Нет.

Примеры

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 device = await adapter.requestDevice();

  //...
}

Спецификации

Спецификация
WebGPU
# dom-gpu-requestadapter

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
requestAdapter
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
предварительная версияВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на ChromeOS, macOS и Windows.
предварительная версия 121 Нет 81 Нет 25.0 121
discrete_adapter_default_ac
115В настоящее время поддерживается только на устройствах macOS с двумя графическими процессорами.
115В настоящее время поддерживается только на устройствах macOS с двумя графическими процессорами.
Нет
101В настоящее время поддерживается только на устройствах macOS с двумя графическими процессорами.
Нет 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/GPU/requestAdapter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API