Не знаю, как WASI, но Firefox начиная с версии 79 (July 28, 2020) поддерживает многопоточность в WebAssembly:
«вы можете использовать WebAssembly Threads в своих приложениях, если ваш код компилируется с использованием SharedArrayBuffer и Atomics.»
«SharedArrayBuffer может быть использован только в контексте, который считается безопасным, чтобы предотвратить атаки, такие как Spectre.»
«Настройка заголовков CORS важна для обеспечения безопасности
веб-приложений и правильной работы с ресурсами, находящимися на других доменах.»
«для использования многопоточности в WebAssembly в Firefox
необходимо, чтобы ваш сайт использовал HTTPS и чтобы
были выполнены определенные условия безопасности, такие как
настройка заголовков CORS и использование заголовка Cross-Origin-Embedder-Policy.»
Эти заголовки помогут обеспечить безопасный контекст для использования многопоточности в WebAssembly.
Ранее (не совсем) по теме:
asm.js оказывается не умеет работать с GC
===================================================================================================
# WebGPU
https://github.com/gpuweb/gpuweb/wiki/I … ion-Status
В Firefox для включения WebGPU в about:config предусмотрена настройка "dom.webgpu.enabled".
dom.webgpu.enabled = true
https://www.opennet.ru/opennews/art.shtml?num=52800
Концептуально WebGPU отличается от WebGL примерно так же, как Vulkan отличается от OpenGL
requires a browser restart after changes to work properly
https://bugzilla.mozilla.org/show_bug.cgi?id=1814745
(bug resolved)
Кроме 3D-графики WebGPU охватывает и возможности, связанные с выносом вычислений на сторону GPU
и поддержкой разработки шейдеров. Шейдеры могут создаваться
на языке WebGPU Shading Language или задаваться
в промежуточном формате SPIR-V
представляет собой универсальную прослойку, в общем виде использующую
те же низкоуровневые примитивы, что имеются в Vulkan, Metal и Direct3D.
Реализация WebGPU основана на коде проекта wgpu, написанного на языке Rust и способного работать поверх
API DX12, Vulkan и Metal в Linux, Android, Windows и macOS (в разработке также находится поддержка DX11 и OpenGL ES 3.0).
Для отрисовки CanvasContext также требуется включение системы композитинга WebRender ("gfx.webrender.all" в about:config),
написанной на языке Rust и выносящей на сторону GPU операции отрисовки содержимого страницы.
Отредактировано Лис (2025-04-01 14:41:26)