Google's SwiftShader Released
Year by year, plain-old HTML 5 websites are becoming fancier, and right now, the home entertainment world is buzzing about VR and 3D. But most sites are missing the boat; they have no 3D content. Well, that's about to change.
Google recently opened the source code for its SwiftShader project. If you have used Google Chrome or Android, you probably have seen SwiftShader in action before. It's a high-performance software renderer that improves the performance of games or 3D content on low-end machines.
Until recently, SwiftShader was a closed-source project. Although Android and Chromium are open source, SwiftShader always was distributed as a separate component, covered by a proprietary license. Now that Google has released SwiftShader to the world, other web browser developers will be able to use it too. This, in turn, should stimulate the development of richer 3D web content.
This isn't the first time we've heard about new software bringing 3D to the web. Various solutions have been proposed since the late 1990s. Obscure developers and massive companies have released both free and expensive software to make it a reality. Even the W3C got in on the act.
3D CSS and WEBGL have been standards for some time, but web developers have been reluctant to use them. Inconsistent browser support for 3D is one reason why they have been unwilling to dive into the third dimension, but recent versions of the popular browsers all have offered relatively solid support for these technologies. So, what's holding web developers back? It's mainly a lack of hardware support.
High-end gaming PCs and consoles ship with dedicated 3D graphics cards, and they can render 3D web content without difficulty. But, low-end PCs usually lack dedicated GPUs. Instead, they rely on much cheaper integrated GPUs or software rendering. Both of those solutions fall short of the power needed for smooth 3D web content.
As Linux users, we often face a different problem—insufficient driver support. In other words, some desktop Linux users have great hardware, but their GPU drivers are buggy (or they don't offer the full range of features).
The GPU manufacturers typically put all their efforts into developing Windows drivers, neglecting Linux desktop users. Sometimes, there are no official Linux drivers, and the community has to painstakingly build them from scratch.
For these reasons, the 3D web has not been a level playing field. Web developers and designers have shied away from developing 3D content because a large number of users can't consume it.
Google worked out a simple solution for the problem back in 2009 and licensed SwiftShader from TransGaming. TransGaming is a company that created games for smart TVs, which typically are quite underpowered systems. SwiftShader was one of the tools the company developed to give its games a wow factor, and of course, the source code was closed.
It re-creates the same software interface that GPU drivers offer, so games and web browsers can treat it exactly the same as a real GPU driver. However, all of the complex 3D rendering is performed by the PC's CPU using optimized algorithms.
SwiftShader isn't magic—you still get much better performance from dedicated graphics hardware with hundreds of cores. But, that's not the point. It offers better performance than the common software rendering libraries. It makes software rendering bearable.
The SwiftShader license is why Google Chrome has led the field in support for 3D web features. But even if Chrome offered great support, web developers still had to think about all the users who used different browsers. Until 3D content could run on all PCs and devices, most developers wouldn't touch it.
Last year, TransGaming decided to sell its SwiftShader technology to raise funds. The smart TV gaming platform was not bringing in enough money, so the company sold SwiftShader to Google for a cool $1.25 million. Since then, TransGaming has stepped out of the game development arena entirely—in fact, it's no longer a tech company.
So, after playing with the code for a year, Google is releasing SwiftShader as free software for the whole world to use, which is great. As other browsers start using it, we should see much better support for 3D, even on old or low-spec machines.
Does that mean that every website is about to turn into a jumbled mass of VR? Has William Gibson's vision of "cyberspace" finally arrived? Hopefully, no. Instead, web designers will gain a new tool they can use to make the web a better place. And web-based gaming should improve significantly as well.