标签:对象 WebGPU 知识 实现 概述 GPU 适配器 设备
首先看下WebGPU的目标:
-
同时支持实时屏幕渲染和离屏渲染。
-
使通用计算能够在 GPU 上高效执行。
-
支持针对各种原生 GPU API 的实现:Microsoft 的 D3D12、Apple 的 Metal 和 Khronos 的 Vulkan。
-
提供一种人类可创作的语言来指定在 GPU 上运行的计算。
-
可在浏览器的多进程架构中实现,维护Web的安全性。
-
尽可能让应用程序在不同的用户系统和浏览器之间可移植地工作。
-
以有用但范围仔细的方式与 Web 平台的其余部分交互(基本上以一种或另一种方式共享图像)。
-
提供在 Web 上公开现代 GPU 功能的基础。 WebGPU 的结构类似于所有当前的原生 GPU API,即使它不提供它们的所有功能。 有计划稍后扩展它以具有更现代的功能。
非目标:
-
公开对根本不可编程或灵活性较差的硬件的支持,例如 DSP 或专门的机器学习硬件。
-
公开支持不能进行通用计算的硬件(如旧手机 GPU 甚至旧台式机 GPU)。
-
彻底公开本机 GPU API 上可用的所有功能(某些功能仅在单一供应商的 GPU 上可用,或者太小众而无法添加到 WebGPU)。
-
允许广泛混合和匹配 WebGL 和 WebGPU 代码。
-
与 CSS Houdini 等页面渲染流程紧密集成。
适配器和设备
WebGPU“适配器”(GPUAdapter
)是一个对象,用于标识系统上的特定 WebGPU 实现(例如,集成或离散 GPU 上的硬件加速实现,或软件实现)。 同一页面上的两个不同的“GPUAdapter”对象可以指代同一个底层实现,或指两个不同的底层实现(例如集成和离散 GPU)。
页面可见的适配器集由用户代理决定。
WebGPU“设备”(GPUDevice
)表示与WebGPU适配器的逻辑连接。 之所以称为“设备”,是因为它抽象了底层实现(例如视频卡)并封装了单个连接:拥有设备的代码可以充当适配器的唯一用户。
作为这种封装的一部分,设备是从它创建的所有 WebGPU 对象(纹理等)的根所有者,只要设备丢失或损坏,就可以(内部)释放这些对象。 单个网页上的多个组件可以各自拥有自己的 WebGPU 设备。
所有 WebGPU 的使用都是通过 WebGPU 设备或从它创建的对象完成的。 从这个意义上说,它服务于“WebGLRenderingContext”目的的一个子集; 然而,与 WebGLRenderingContext
不同的是,它不与画布对象相关联,并且大多数命令是通过“子”对象发出的。
标签:对象,WebGPU,知识,实现,概述,GPU,适配器,设备 来源: https://www.cnblogs.com/wenhao0807/p/15818882.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。