首先看下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 | 相关知识概述的更多相关文章

  1. 【转】java NIO 相关知识

    原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...

  2. Magento 架构基础知识概述

    Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...

  3. 04StringBuffer相关知识、Arrays类、类型互换、正则、Date相关

    04StringBuffer相关知识.Arrays类.类型互换.正则.Date相关-2018.7.12 1.StringBuffer A:StringBuffer的构造方法: public Strin ...

  4. 【Spark】Spark任务调度相关知识

    文章目录 准备知识 DAG 概述 shuffle 概述 SortShuffleManager 普通机制 bypass机制 Spark任务调度 流程 准备知识 要弄清楚Spark的任务调度流程,就必须要 ...

  5. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  6. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

  7. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

  8. UIViewController相关知识

    title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...

  9. NSString使用stringWithFormat拼接的相关知识

    NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...

随机推荐

  1. IDEA配置连接(自建Maven仓库)私服并打包上传

    maven的setting.xml文件配置 在servers标签里配置 <server> <id>privete_maven</id> <!--账号密码需要与 ...

  2. 【LeetCode】505. The Maze II 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BFS 日期 题目地址:https://leetcod ...

  3. 【LeetCode】477. Total Hamming Distance 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 位运算 日期 题目地址:https://leetco ...

  4. 【剑指Offer】扑克牌顺子 解题报告(Python)

    [剑指Offer]扑克牌顺子 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...

  5. 15 - Vue3 UI Framework - 完工部署

    项目官网也基本完成了,接下来我们再讲一下如何将项目官网部署到 GitHub Pages 上 返回阅读列表点击 这里 项目配置 常见的模式有三种,即 History 模式 Hash 模式 Memory ...

  6. Linq和Lambda 性能对比

    Linq和Lambda 性能对比 1.Where() 使用LINQ创建一个简单的where查询 var query = from person in PersonCollection where pe ...

  7. Capstone CS5268 Type-C转HDMI+VGA带PD快充+USB3.1扩展坞方案

    CS5268是一种高度集成的单芯片,适用于多个细分市场和显示应用,如拓展坞.扩展底座等. 2.CS5268参数说明 总则 USB Type-C规范1.2 HDMI规范v2.0b兼容发射机,数据速率高达 ...

  8. tcache BUUCTF gyctf_2020_signin

    Ubuntu18.04的题 用到了两个特性: 一个是 calloc 的特点:不会分配 tcache chunk 中的 chunk 另一个是 tcache 的特点:在分配 fastbin 中的 chun ...

  9. UML的定义和组成详细介绍

    目录 1.UML 1.1概述 1.2 UML是一种建模语言 1.3 UML语言包含三方面 2.UML支持软件体系结构建模 2.1 逻辑视图 2.2 实现(开发)视图 2.3 部署视图 2.4 过程视图 ...

  10. SpringBoot读取外部配置文件的方法

    SpringBoot读取外部配置文件的方法 Spring高级之注解@PropertySource详解(超详细) 1.@PropertySource(value = {"classpath:c ...