By Justin Agrell
It has been over a decade since computers have become fast enough for general-purpose work. Even the cheapest available laptop can load dynamic websites littered with HD video ads and decode and scroll them without a hiccup. There once was a time when processor speed was the major metric people were concerned with. A computer going from 40 megahertz to 100 megahertz was a noticeable, notable jump.
Given that, it’s of great interest to see that the new kid on the block, virtual reality, is finally mixing things up after what seems like quite a few years of stagnation in the industry. Our processors and GPUs can no longer go up in speed, so now they’re going sideways with multiple cores. This change breaks the way systems once functioned, and the solution for developing in this new way is Vulkan. Vulkan is an API (application programming interface) created and maintained by Khronos Group that pioneers modern application development as we know it.
OpenGL has long been the cross-platform graphics development standard of choice. Any operating system worth its salt supports it, including OSX, Windows, Debian, RedHat, and even Solaris. It has evolved from a fixed number of supported visual effects to using a complete language to define its own graphics. The major flaw with OpenGL is that it’s always been built around the idea of a single fast GPU core. Since the modern era prefers multiple cores working together quickly and efficiently, OpenGL fails to utilize all of the available resources. Even in its latest versions, though recognizing the existence of other cores, it struggles to use them efficiently.
The other new contenders to Vulkan are Microsoft’s DirectX 12 and Apple’s Metal. The failure of these competitors is that they are only available to their own platforms. For Microsoft, they’ve restricted DirectX 12 to the Xbox One and Windows 10 systems; For Apple, Metal is designed to work for IOS, tvOS, and OS X. As we have seen in the past, developers will always prefer the path of the largest support base. So, when choosing a development tool, always go with the one that works on all platforms.
Graphics cards are one technology where everyone has always begged for “more, more, more,” never to be satisfied. This has pushed the industry to create cards so powerful that they eventually outpaced computer’s central processing units themselves in performing certain tasks. It didn’t take long for other industries to take notice of this power and demand that they be able to use it for their own applications. NVIDIA announced CUDA as a way to develop software using their graphics cards for improved calculating speed and Apple pushed for OpenCL as an open standard for doing the same across all platforms. All new popular graphics platforms — DirectX, Metal, and Vulkan — will now include the ability to program for non-graphical applications by default, thus removing the need for competing standards, not just in graphics but in high-speed calculations as well.
Vulkan works on mobile devices as well as desktops. It’s designed to be as close to the hardware as possible and uses many methods to take advantage of all available resources to its benefit. Vulkan represents a new level of cross-platform control the likes of which we have never seen before. Developers will now be able to create their software with immediate desktop and mobile deployment capability. The low-level access will mean more efficient software, allowing for the low latency reactions required for virtual reality to flourish. Add to this the unrestricted deployment on systems such as Linux and you’ve got unhindered creativity instantly deployed to mobile platforms. That saves a large amount of critical development time.
I’ve been gaming since the DOS days. It was exciting to see the first dedicated graphics cards come about just after Windows 95’s release. There was a magical time once, when Windows XP came out, and there was no doubt which system was going to have the best software out there. But it was finally in 2013 when you could no longer deny the shift in how the world used computers. Games like “Flappy Bird” started making developers large sums of cash and Valve Software announced SteamOS, which forced the hand of game developers even further from Microsoft’s dominance. It was at this point that the future of development had to be on multiple platforms. It needs to be scalable and open. Vulkan is still currently in its infancy, but I promise that in the next few years it will change the computer industry as we know it.
Justin Agrell has been a certified IT technician since 2005. He loves Linux, adventure motorcycling, and computer gaming. To get in touch, just email him at Justin@U4E.US.