每晚版本的Firefox均提供WebGPU支持

发布有关集成WebGPU帮助规范的信息 在Firefox的每晚版本中,现在 提供用于3D图形处理的编程接口 在GPU端进行计算,在概念上类似于Vulkan API,metal和Direct3D12。该规范由Mozilla,Google,Apple,Microsoft和由W3C组织创建的工作组的社区代表开发。

WebGPU的主要目标是创建一个安全,方便,便携式和高性能的软件界面 可以在具有3D图形技术的Web平台上使用,并具有现代系统图形API提供的功能,例如Windows上的Direct3D 12,macOS上的Metal和Linux上的Vulkan。

从概念上讲 WebGPU与WebGL的区别与Vulkan与OpenGL的区别相同 而且它不是基于特定的图形API,而是通用层,通常使用Vulkan,Metal和Direct3D中可用的相同低级基元。

在Firefox中,提供了“ dom.webgpu.enabled”设置以启用WebGPU 在约:配置。 除了渲染CanvasContext之外,还需要包含WebRender合成系统(about:config中的“ gfx.webrender.all”)。

WebGPU的实现基于用Rust编写的wgpu项目代码,并且可以在Linux,Android,Windows和macOS上的DX12,Vulkan和Metal API之上工作(正在开发DX11和OpenGL ES 3.0支持)。

关于WebGPU

网络GPU 为JavaScript应用程序提供用于底层控制的工具 关于组织, 处理命令并将其传输到GPU, 管理相关资源,内存,缓冲区,纹理对象和已编译的图形着色器。 这种方法将 支持更高性能的图形应用 通过减少开销并提高使用GPU的效率。

网络GPU 可以为网络创建完整的复杂3D项目 其性能不比直接与Vulkan,Metal或Direct3D通信但与特定平台无关的独立程序差。

通过移植本机图形程序提供附加功能 可以基于网络技术运行的形式 通过使用WebAssembly技术。

除了3D图形之外, WebGPU还涵盖了与消除GPU旁的计算相关的可能性 并支持着色器开发。 可以使用WebGPU着色器语言创建着色器或以SPIR-V中间格式指定着色器,然后将其翻译为当前驱动程序支持的着色器语言。

网络GPU 使用单独的资源管理,准备工作和命令传输 到GPU(在WebGL中,一个对象同时负责所有事情)。 提供了三个单独的上下文:GPUDevice,用于创建纹理和缓冲区等资源; GPUCommandEncoder对单个命令进行编码,包括渲染和计算阶段; GPUCommandBuffer排队等待在GPU上执行。

WebGPU和WebGL之间的第二个区别是处理状态的不同方法。 WebGPU中提出了两个对象:GPURenderPipeline和GPUComputePipeline,它们允许组合开发人员预定义的几种状态,这使浏览器不会在其他工作上浪费资源,例如重新编译着色器。 支持的状态包括:着色器,顶点缓冲区和属性布局,附加组布局,混合,深度和图案,渲染后输出格式。

WebGPU的第三个功能是绑定模型,这在很多方面 类似于汇集Vulkan中存在的资源的方法。 为了将资源分组,WebGPU提供了一个GPUBindGroup对象,该对象可以通过键入命令与其他类似对象关联以在着色器中使用。

通过创建此类组,驱动程序可以提前执行必要的准备操作,而浏览器则可以更快地在拉动调用之间切换资源链接。

数据来源: https://hacks.mozilla.org/


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。