Hacker News new | ask | show | jobs
by tmurray 5074 days ago
GPUs do a lot more in mobile today than probably occurs to you off the top of your head if you're not extremely familiar with them.

First of all, you have to worry about the actual act of running OpenGL ES applications. This is a non-trivial API with lots and lots of performance tuning required, and don't forget you need a GLSL compiler (which in turn is not trivial at all).

Now, you need to support video decoding. Usually GPUs accelerate this in some low-power way for common formats (H264, etc), so you need to jump through a lot of software hoops to support that for various formats and such. Also, don't forget to add support for HDCP (also not trivial) and content protection throughout your video pipeline, because if you don't, you will be flayed alive by the content cartels.

After that, you need to optimize for power. This turns out to be way more software intensive than you think because a lot of times software has to make the call about whether to pick super-low-power but high-latency mode X or higher-power but lower-latency mode Y. This is also probably where you handle a lot of thermal runaway style cases.

Finally, throughout this entire process, you have to be making sure that everything works. While you're writing the software to get things up and running, any bug you hit in SW could be indicative of a hardware bug. When you do hit something that looks like a hardware bug, it's not like you say, "oh hey let's break out the debugger and see what's up!" A relatively easy hardware bug at this stage of development still probably takes on the order of a few man-months, and a hard one takes well over man-years and millions of dollars (find very short repro case, root cause, investigate software workarounds, design ECO, verify ECO, kick off a new spin).

These are the bare-bones you-can-possibly-be-a-player-in-the-market requirements; how well you do optimizing these various cases will determine how well your chip can do in the market.