Welcome to the latest in our series of Visionary interviews with our key thinkers at the company. In this instalment, we spend some time with Carlos Sarria, Senior Developer Technology Manager, for PowerVR Developer Technology. Carlos has been with the company since the late ‘90s and was part of many of the company’s early success in console and mobile. He now heads up the Developer Technology team supporting customers around the world. Carlos gives us some great insights into the history of the company and where we could be heading.
So Carlos, tell me about your background. How did you first get in touch with technology and what path did you take to arrive at Imagination?
Actually, my story is unusual because my background was not in computing – I studied architecture. My father was a maths teacher and when I was very little I had a computer at home – a Commodore VIC-20. Soon I started to teach myself programming and in just a couple of months, I was a better programmer than my own father. I started to write games for my three older brothers. I did everything! The artwork, the programming, the music. And my brothers used to play the games. I also wrote programmes for my father’s maths classes and I did stuff in AutoCAD, the architectural program.
I later decided to come here to the UK to try something new. I spent about a year in London, doing odd jobs, and then I went to Westminster College. That was great as it was paid for by the government and gave me access to computers. That enabled me to tailor my CV for the technology market and prepare a disk with some examples of my programming. The first company I sent it to was here – though Imagination was called VideoLogic back then. That was in 1997 and I’ve been here ever since! For me, it was a dream job. We were actually a privately owned company and there were only 75 people counting everybody – hardware engineers, software engineers, marketing people.
In my interview, we discussed 3D graphics, which I have always been fascinated by. My background was important for the company, as they were looking for an engineer with some kind of artistic background to write demos to promote our technology.
What were your best memories from those early days?
One of the best memories I have was actually the first job I did in this company. I was asked to create a screensaver. They are out of fashion now, but in 1997 everybody had to have one or otherwise your CRT screen would suffer burn-in when not in use. My idea was to use 3D graphics. The demos I produced were actually quite strange; abstract. They were popular though and we bundled them with VideoLogic cards. I remember the company owner coming to me one day and saying “You know, my wife loved your screensavers.” It’s always good when your boss’s wife loves your work!
These days you are head of ‘DevTech’. What does DevTech do and why is it important?
We do application-level support. This includes everything that anybody developing applications on our hardware might require. That includes tools that will help you do debugging and profiling of 3D graphics applications. So if an application is not performing as expected, you can identify the problem. Our tools help you deploy more successfully to more devices.
We also provide example code. This is important because it shows developers how to do things effectively, for both hardware and software. If you can understand the best way to use our PowerVR technology, your application will go much faster.
The other thing we provide is documentation, which is very important. We have documentation where we describe our hardware architecture, performance optimisations and different programming techniques.
And the last thing is direct support – a hotline where if developers have a problem they call us and say “guys, I’ve got a glitch here.” It can even mean that we go to them and help them try to fix the issue.
Also, there’s an element of ecosystem creation. We go to events, meet developers, and promote the brand. Developers need to know that we can assist them. It’s marketing, but on a very technical level.
Everything we provide together is the SDK – the software development kit. This contains everything a developer needs to develop applications for a specific platform. The SDK helps developers deploy applications that run well on our hardware and, if that happens, you can sell more hardware.
You’ve been at Imagination since the early days. What were the high and low points? Is there anything of which you’re particularly proud?
I would say I was proud of MGL, the API I designed and helped to implement for our MBX core. It was written in a modern way. It was object-oriented and very low level much like Vulkan is now. People talk about Vulkan’s low-level approach but we were doing it ten years ago. It gave full access to the hardware through what was called a slave-port where you passed the commands to the hardware. You could actually program the hardware directly if you wanted to, but it was also high level enough so you could write applications on your own.
I would also say that I’m very, very proud of my own team. They are fantastic engineers.
A low point for me was when a very important games company (which I am not going to mention) decided not to support the Dreamcast, regardless of all the support we gave them. It doesn’t matter if you liked their games or not; some games are what make or break a platform.
What makes Imagination’s approach different? What things do you have to consider when you’re putting SDKs and the tools together?
One thing that is very important to us is that we have always been seen as mavericks. We have done things completely differently from anybody else out there. It made our technology shine but it also made our life quite difficult at times, because if you go to a game developer you cannot just talk to them about conventional graphics. You need to talk to them about how our PowerVR architecture works.
We use Tile Based Deferred Rendering (TBDR) rather than an immediate mode renderer (IMR) and the difference is absolutely massive. The developer needs to think to be able to get the best out of PowerVR architecture. That was one of the best things about the Dreamcast. It meant that the developers actually focused on getting the best out of it, so they actually managed to get absolutely gorgeous games.
The reason for that is our technology is clever. Instead of brute force, like IMR where everything you send is rendered, we look at what you want to do and try not to render the things that are not visible in the frame. So when you start sending polygons to the GPU we don’t render anything. We just transform the vertices and store everything in a buffer. We take that buffer, analyse it so we only render the things that are actually visible on the screen.
For example, take an object where there’s a translucent area all around, with a large area in the centre that’s not translucent. If you split the object in two, into the opaque area and the translucent area, instead of sending the whole object as translucent, any pixels that are behind the opaque part will not be processed. Now, something as simple as this might look less relevant because today’s GPUs are so fast that you don’t need this kind of trick, but this is not true when you consider the incredible resolution of modern devices and devices of the future. This does demonstrate how you need to think in a different way to get the best from our technology.
Our architecture is so successful in the mobile market because one of the things we save is memory bandwidth. This is absolutely critical because bandwidth and memory access are what drains the battery and reduces performance.
A lot of your work, therefore, involves supporting developers. How do you manage that relationship and what are the challenges?
I would say the biggest challenge is fragmentation, especially in the Android market. If you are a developer, you have to deal with many different architectures with hundreds of different models with varying performance capabilities and feature sets. What do you do with that? How do you handle all those phones? They don’t. They cannot. They can’t test on every single device so they choose the most prominent platforms at the moment. Sometimes when a new phone comes out and we test applications, some of them are broken. Why is that? It’s because the developers have never tested on this specific platform. Sometimes they say, “Well, your platform must be bad”. But actually, our platform might be better – you only have to optimise for it.
Now, if you happen to have a flagship device using your technology in the market, developers will come to you. But if you do not, then you have to reach out to them and be more pro-active. This moves the emphasis away from technology to marketing. Right now there are several phones in the market that use our PowerVR Rogue GPU – with nine devices having been released this year alone – and a lot more to come. Still, we cannot relax and we need to keep our ecosystem well-oiled, and so we are doubling our developer support team right now.
These days a lot of noise is made about AI and neural networks rather than graphics. Is that where you think the focus in the industry is moving?
No, I would not say the focus is moving from graphics to Deep Neural Network (DNN) acceleration. Yes, there is a very important focus on DNN. But graphics are very much still here. OK, there is possibly a level of saturation that has been reached so people are thinking, “We are happy with the graphics we have got now, so why don’t we invest in other things to make more intelligent devices?” But the importance of advancing graphics performance is never going to go away – for games, for user interfaces, for new applications, and new markets, such as VR and AR and automotive. Resolutions are going up and the prices need to go down. The chips have to be smaller, cheaper to produce and ever more efficient.
Some might say why do you need anything better than Candy Crush? But that is the same argument as ten years ago when Java game developers were saying, why do we need anything better than this – and they got blown away by graphically complex games.
For example, I think what Oculus does in immersive VR is a paradigm shift and we’re going to get there sooner or later. To succeed in VR, we will have to move to a completely untethered, cable-free system. I really believe in the not too distant future you are going to have the power that you have now on desktop on mobile devices because it is what the market will require.
This kind of separation between mobile and desktop spaces has already started disappearing. Laptops are taking the place of desktop machines and tablets are taking the place of laptops. What is needed is something that is very powerful, that you can take anywhere with you and can do everything you want it to do.
What sort of time frame would you put on this?
Well, there are many unknowns. When I joined this company one of the things I had on my desk was glasses with shutters that enabled you to see in 3D. But it was a gimmick and gave you a headache. When I saw the Oculus I thought, OK, now we’re getting somewhere. I hadn’t seen VR for twenty years, but this felt like something new. But while things were progressing very quickly, sadly it has slowed down a lot because the hardware is not there. The resolution is still too low and headaches occur as the refresh rate is not fast enough. But we’ll get there! Take the movie Ready Player One – amazing! For me, it’s not far from what could happen.
What else can we look forward to in graphics? How might the work that you do be further improved and enhanced?
The TV industry is just starting to talk about 8K, but 16K will come – you will have displays that will cover the entire wall and these will need GPUs. Games will move to film-quality graphics – much beyond PlayStation 4. You have to understand that the requirements of 3D grows exponentially so when you just add a bit of complexity to it, the amount of power you need to run it grows exponentially, so it’s not that easy to reach a level of perfection. Ten years ago people were saying, “In five years we will have movie quality real-time 3D graphics.” Well, it hasn’t happened yet. There will, of course, be paradigm shifts such as ray tracing that might get us there. We have many patents on this technology and we could return to it when the time is right.
What about technologies other than graphics? Where do you think we might go in the future? What are the possibilities?
While I said the industry is not moving exclusively to neural networks, hardware acceleration for this is absolutely a fast growing and exciting field. The focus is mainly on acceleration for image enhancement, surveillance cameras, virtual assistants, self-driving cars, etc. But, actually, I’m excited about the opportunities the field represents for gaming. Currently, it’s pretty difficult to use any kind of compute in games on the GPU because it’s busy doing graphics! Just as once the GPU was a coprocessor for the CPU, now we’re talking about dedicated co-processors sitting alongside the GPU to lighten the load for compute. These are going to be very fast chips and game developers are saying, “OK, we can use this.”
You would be amazed at the number of things you can use it for, such as generating procedural assets and for artificial intelligence. You will have intelligent enemies that act in a way that’s not scripted. You want the characters that are with you in the game to have their own personalities, and independently do their own things. Games are going to become increasingly intelligent and life-like and that is going to take us one step closer to this kind of film quality. Actually, now, you are going to be part of the film.
I think we will be the leaders to get us there. We have always been ahead of our time, and that’s where we want to stay; that’s where we feel comfortable. It’s what we do.