0
\$\begingroup\$

I would like to better understand the difference in capabilities between mobile and desktop/console graphics? What exactly are the limitations of a mobile device? What kind of operations can a high-end GPU do that a modern smartphone cannot do? It's clear that games in a desktop look much better but what is behind those differences? I am aware that the APIs supported are different (D3DMobile, OpenGL ES vs full direct3d and opengl), even XNA has the Reach and Hi-Def graphics profile. I can see some of the differences here:

http://my.safaribooksonline.com/book/programming/game-programming/9780132620185/reach-vsdot-hidef-chart/app01lev1sec1#X2ludGVybmFsX0ZsYXNoUmVhZGVyP3htbGlkPTk3ODAxMzI2MjAxODUvNDU1)

What is the impact in let's say a game, what kind of effects or visuals I cannot get in a mobile due to this limitations, and what's the reasoning behind them. What is the bottleneck or restriction that prevents mobile devices to produce them.

Any thoughts or good resources to read about will be very appreciated.

EDIT: I am aware of the price/power/heat/form factor restrictions imposed on mobile GPUs. What I am trying to get at is the implications of those differences. Let's say that you can't use some type or size or textures, or maybe there is a maximum number of polygons, or certain type of transformations are not allowed. And from that I would like to know the practical consequence (i.e. water looks less real, objects up close look pixelated, the lighting is more flat). I am just guessing, but I would like to know for sure. In short, I want to know if I were to do a game with all the features of a high-end gpu (for example, a DX11 compatible one), and write the same game for a phone. What will I be missing, and in terms of visual perception what would look different?

\$\endgroup\$
1
  • 2
    \$\begingroup\$ I would suggest simply reposting the question here, as opposed to providing a link. Also to broadly answer the question, the main difference is mobile devices have less powerful hardware. \$\endgroup\$
    – thedaian
    Jul 11, 2011 at 18:53

2 Answers 2

6
\$\begingroup\$

First, the interconnect between the GPU and the CPU is usually very narrow. For example, when developing for the iPhone, memory bandwidtch is a huge problem. People pack vertex data using 16-bit integers and use matrices to rescale them. For example, I used 0...1023 to represent [0.0, 1.0] range in OpenGL texture coordinate by applying a scaling factor of (1.0/1023.0) to incoming texture coordinates. This allowed me to use 1/2 of the bandwidth when submitting texture coordinates.

Second, the limited heat/power means a lower clock speed. That's pretty intuitive, but worth mentioning. This implies fewer shader units and slower speeds for each unit. However, that also extends to the speed of the video memory and sometimes means dedicated memory isn't even available because it would produce too much extra heat.

Third, architectural pipeline features. DirectX 11 / OpenGL 4.0 have features that require extra stages of the traditional programmable pipeline, specifically geometry shaders, tessellation shaders, hull shaders, etc. These extra stages mean more GPU die space and consequently more cost and heat. These features generally are used to add detail to scenes but aren't critical in implementing algorithms like lighting, shadows, normal mapping, etc. so they aren't really killer features like fixed function -> programmable pipeline change.

Finally, mobile GPUs lack the generality of desktop GPUs. With technologies like CUDA, OpenGL, and DirectCompute aimed to solve non-graphical problems, GPU makers had to implement more general operations like integer operations, GPU mem pointers, 64-bit floating point values, etc. which require more hardware support. These features aren't really necessary for games and so they generally don't make the cut. More hardware features, even if you don't use them, have a $ and heat cost associated with them.

Really, everything that is said can be traced to power, heat, cost in some form.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks a lot for the explanation, all that makes a lot of sense. \$\endgroup\$
    – cloudraven
    Jul 13, 2011 at 20:02
1
\$\begingroup\$

Mobile/handheld devices are less powerful. Because they have to optimize the hardware configuration withing a reasonable price range.

But, Desktop is not like that. Its modular and doesn't come as a package that can't be upgraded. You can modify it based on your need. And you are paying for a certain hardware at a time so, you get more powerful machine biased to your demand. These things are not possible in mobile devices.

In case of console, though they are under powered(when you look at the numerical figures) with respect to Desktop PC but, their architecture is different and those machine are fully dedicated for gaming. So, those hardware don't have the overhead to run a general purpose application. That's why they perform better comparing with the same configuration PC.

But, recently handheld devices are getting more and more powerful, supporting many features. But, again you can't just put is stuff into a mobile just because you can. You have a power supply limit and you have to watch out for the price of it.

That's why you can't just stuff in your Intel Core 2 duo processor in your iPhone just because its smaller then you phone. It demands power & cooling system. A handheld device is not physically capable of supporting that.

EDIT : I haven't seen any mobile device supporting over OpenGL ES 2.0 but in PC you have OpenGL 4.1 features(with necessary hardware installed). For advance visual effects you need some features from the later versions of OpenGL. One of the most notable feature, Tessellation is only supported on OpenGL 4 supported hardware.(ES stands for Embedded device) And so far its not yet possible to create an hardware supporting OpenGL 4 in an optimized manner that can used with a handheld device.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks, I understand that. A desktop GPU is actually bigger than a real phone, and I think it would consume more energy than the phone itself. I am curious about the implications of the design decisions that led to a smaller, cooler and more power efficient gpu. What is that I cannot do with one of those that I can with a full powered one. My intuition is that they are not only faster, but they also can do things than the low powered ones just cannot do no matter how much time you give them (in hardware), but I don't know and I may be very wrong. \$\endgroup\$
    – cloudraven
    Jul 11, 2011 at 19:25
  • \$\begingroup\$ @cloudraven No, your not wrong. While optimizing for mobile devices they have to modify the hardware, as a result some features are left behind. \$\endgroup\$ Jul 11, 2011 at 19:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .