新版下载地址:https://www.apple.com.cn/safari/
Safari将从91预览版开始支援WebGPU API,以及WebGPU API的着色语言WSL,Webkit官方提到,由Apple与其他W3C成员共同开发的新网页绘图API WebGPU,具有高效能3D绘图以及平行资料运算的能力,而且比WebGL API的使用方法还要简单许多。
在WebGL中渲染物件之前,开发者需要为每一个物件设定一系列的状态变更呼叫,渲染单一物件可能就要呼叫超过10个函式,但在WebGPU中只需要两行,因为所有状态都打包进工作管线状态物件(Pipeline State Object),而且为了降低验证状态成本,因此在WebGPU中,只会在工作管线创建之后,于渲染循环外执行一次,以避免在绘图呼叫中,执行高成本的状态分析。
而渲染的资源设定也应用了相同的概念,大多数渲染算法需要一组资源以绘制特定的材质,在WebGL中,需要逐一绑定需要的资源,而WebGPU的资源则会被批次打包进绑定群组(Bind Groups)。此外,浏览器验证物件也与使用物件的工作分离,而这能让开发者获得更多的控制,决定进行高成本操作的时机。
WebGPU API支援了有别于现有HLSL以及GLSL的新渲染语言WSL,官方提到,WSL与GLSL同属于文字语言,并放弃与HLSL相容,经重新设计的WSL更简单也更低阶,编译速度更快,与当前网页技术整合的更完全,能成为良好的编译目标语言。
WebGPU获得了许多渲染机制上的改进,因此绘图表现也比WebGL好上许多,开发团队模拟游戏渲染物件的方式,在MacBook Pro以及iMac Pro上进行三角形基准测试,维持每秒60影格的速度绘制不同属性的三角形,以MacBook Pro整合芯片执行,WebGPU的绘制呼叫执行速度为WebGL的2.19倍,而使用独立绘图芯片速度大幅提升4.49倍,在iMac Pro上更提升7.64倍。
WebGPU与WebGL相同,WebGPU API也是透过JavaScript存取,开发人员提到,这是因为大部分的网页开发人员都熟悉JavaScript,而他们希望未来可以创建支援WebAssembly的WebGPU API。