How does a mobile GPU work? [pdf]
armkeil.blob.core.windows.net
armkeil.blob.core.windows.net
I can't say I'm personally too interested in mobile GPUs. I know they're a very different architecture than Desktop GPUs and have some important optimizations with regards to memory bandwidth. (Desktop GPUs can just run higher-power RAM for more bandwidth, IIRC Mobile GPUs need to rely upon optimizations that Desktop GPUs simply don't care about yet). EDIT: Oh wow, now that I'm done reading the .pdf, I think they did a good job explaining this in comic-book form.
I can assume though that video game programmers who optimize for specifically mobile-GPUs can get a graphical advantage over their competitors though. So even if its not my cup of tea, its probably very useful to others.
----------
On the "Manga Guide" perspective: these books are a lot of fun and I feel like they're a good introduction. As a comic-book format, they are very quick to read.
Its hit-and-miss though. "Manga Guide to Linear Algebra" is awful and uninspired. Skip, just not worth your time.
But "Manga Guide to SQL" is great. I think the story about the Princess trying to organize Apples in her kingdom (and thinking about customers, businesses, etc. etc.) very naturally teaches SQL. So much of SQL and Databases are about learning a hypothetical business, that a grand story about a Fairy, a princess, a kingdom losing money that needs more organization (etc. etc.) really helps out.
Knowing that Customer's Address and how it can conflict with other customers in 1st or 2nd normal form, but how 3rd normal form fixes the possible conflict (etc. etc.) solidifies SQL ideas and theories with a story.
I think that's the key. Some subjects (and authors) are able to properly weave a story into the explanation. A subject like Linear Algebra probably can't have any story weaved in, so they kind of failed at that. SQL does, and I think a "Mobile GPU as a factory / tour of the factory comic book style" could make sense.
Even though it's not strictly a mobile GPU design, the hybrid architecture is definitely a shift.
https://www.realworldtech.com/tile-based-rasterization-nvidi...
AMD is tile based:
https://pcper.com/2017/01/amd-vega-gpu-architecture-preview-...
Intel is tile based (section 5.2):
https://www.intel.com/content/dam/develop/external/us/en/doc...
The technology originated with PowerVR in 1996, today known as Imagination Technologies, who designed the ancestor architecture to Apple's GPUs today.
Someone correct me if I'm wrong, but I asume it's a simulator for the driver, probably to simulate there's a PowerVR GPU in the system.
Just looking through the driver source code and seeing all those #ifdef blocks for all possible combinations of HW, SW, APIs, etc scattered everywhere is making my head spin.
Hopefully they had some IDE that would collapse all the unused blocks, as it reminds me of one of my gigs in embedded where the IDE didn't have such a feature and it was brutal following the code.
It’s the simulator that I suspect is derived from the RTL - hwsabsim.c is a good example…
(Why are there several websites…)
Or is that something that only happened after the switch to the unified shader model?
There's often a memory hierarchy as well - for example the "tile" memory might be special dedicated high-speed memory, as it was on the XBox 360. So you could end up with one type of memory being used for the input vertex/index data and a different kind used for the "bins" containing shaded vertex data.
(Despite being a high-power desktop-grade GPU part, the XBox 360 had "predicated tiling" mode which would partition the screen up into big tiles, much like described in ARM's PDF. They did this to support multisampling at high resolutions.)
Also, unless things have changed, modern NVIDIA GPUs are sort of tile based, albeit not in the same way as an ARM mobile GPU. See https://www.youtube.com/watch?v=Nc6R1hwXhL8 for a demo of this. This type of rasterization implies buffering the shaded vertex data in order to be able to rasterize multiple vertices in a single "tile" at once.