[Chrome翻译]使用SwiftShader进行通用渲染,现在已经开源了。

2,064 阅读2分钟

原文地址:

原文作者:

发布时间:2016年6月29日,星期三

SwiftShader是一个在CPU上进行高性能图形渲染的软件库。谷歌已经在多个产品中使用了这个库,包括Chrome、Android开发工具和云服务。从今天开始,SwiftShader完全开源,扩大了它的潜在应用池。

自2009年以来,Chrome浏览器已经使用SwiftShader在不能完全支持硬件加速渲染的系统上实现3D渲染。虽然像WebGL这样的3D内容是为GPU编写的,但有些用户的设备没有能够执行这些内容的图形硬件。另一些用户的驱动程序可能存在严重的bug,这可能会使3D渲染变得不可靠,甚至无法实现。Chrome在这些系统上使用SwiftShader,以确保所有用户都能使用3D网页内容。

image.png

在GPU不足的机器上运行没有SwiftShader的Chrome浏览器(左)无法运行WebGL Globe实验。启用SwiftShader的同一台机器(右)能够完全渲染内容。

SwiftShader实现了Chrome和Android使用的相同的OpenGL ES图形API。将SwiftShader开源,将使其他浏览器厂商能够普遍支持3D内容,并推动整个网络平台的发展。尤其是无条件的WebGL支持,让网络开发者可以创建更多吸引人的内容,如休闲游戏、教育应用、协作内容创建软件、产品展示、虚拟旅游。SwiftShader在云端也有应用,可以在无GPU系统上进行渲染。

为了给用户提供最佳的性能,SwiftShader采用了多种技术,在CPU上高效地进行图形计算。动态代码生成能够在运行时针对手头的任务定制代码,而不是更常见的编译时优化。通过使用Reactor,这种复杂的方法被简化了,Reactor是一种定制的C++嵌入式语言,具有直观的命令式语法。SwiftShader还以SIMP方式使用矢量操作,加上多线程技术,以提高CPU可用内核和矢量单元的并行性。这样就可以实现实时渲染,用于Android上的应用流等用途。

开发者可以从其git仓库访问SwiftShader源代码。注册邮件列表,以保持最新的发展,并与其他来自开源社区的SwiftShader开发者合作。


www.deepl.com 翻译