It’s common to think of Imagination Technologies and companies like us that are in the business of selling world-class semiconductor IP that powers some of the most exciting consumer electronics and interactive systems on the planet as hardware companies.
Our products are most easily discussed in the context of silicon, and in terms of flops, milli-watts and square millimetres. It’s a natural frame for what we do, and we love discussing how our IP manifests in the hardware in those terms.
But you’d be doing Imagination and the incredibly hard work we put in to semiconductor IP a huge disservice if you didn’t also think about the impact of our software and the software we have to integrate with. In fact, despite being a “hardware” company, software is often the majority of the story when it comes to the success of a product featuring our technology.
You can cram all the raw graphics and compute power you like into an incredibly efficient architecture, world beating as we believe ours to be, but it’s nothing without the software that lets it talk to the outside world. Flops are trivially wasted, power increases, and silicon area goes unused if the software doesn’t ask the hardware to do the right thing.
Our driver can’t issue the hardware with the right instructions to extract the maximum flops/mm2, frames/second/mW, or whatever other metric you care to measure us by, without a great shader compiler. That shader compiler is a complex and intricate beast, performing a constant balancing act of assembly and optimization versus run-time cost. It doesn’t get issued shaders to compile if our driver doesn’t implement the right interfaces to the right shader-driver APIs in a correct, high performance way.
Those are just two pieces of our stack that gets built from a robust, well tested, optimised, mature and stable mesh of code, created by our world-class software engineers all over the globe.
The software side weaves its way from the very firmware that causes the graphics core to wake up and respond to all future commands, all the way up to finally putting finished pixels in the right place for a display controller to read and put them on the screen.
Without the software, the hardware can’t do anything. It can’t even wake itself up and do any work. We invest heavily in both sides to provide a world-beating complete solution that marries a leadership tile-based deferred rendering architecture to the complete software stack above.
We have more experience doing that across all major APIs and operating system platforms than any other graphics vendor out there, semiconductor-IP-only or not. For example, our investment in Microsoft DirectX drivers and Windows expertise stands at well over a decade now. With Microsoft Windows now a real option for embedded system with Windows 8 and Windows RT, that expertise isn’t something you can easily buy in or build overnight and this gives us an incredible foundation to build on that you can’t get anywhere else in the embedded graphics world.
So the next time you notice that your favorite game is running at a great frame rate and looks fantastic, or that your swipes between screens of icons to launch your favorite app is silky smooth, that’s in large part down to the very hard work of not only the hardware, but the software too.