I see a difference of up to 25 fps (iPad 1) when the ocean in my game is largely covered e.g. by a ship’s deck. The ocean tiles (which uses a costly shader based on the mobile/bumped specular) are 100x100 meters. In this case it was a small boat, just 8 meters long. When the camera is mounted on the ship looking towards the bow fps are about 50, when looking to the side and less of the ocean mesh is covered fps goes down to 25-30.
So i guess this improvement is caused by the graphics chip on per pixel base?
If so then I guess it would be smart to place most of my non transparent GUI elements in the lower parts of the screen where they would mostly cover parts of the ocean?
The mobile/bumped specular is the cause. I know because I’ve used it myself. Its dog-slow and will bring any ipad to its knees in short order. It’s dog slow even if its just on a plain quad with no transparency.
The reason it gets faster is because the iphone hardware doesn’t draw under solid polygons, it rejects chunks of drawing which you can’t see. It calls them “tiles” and this isn’t to be confused with your tiles.
You will see a speed boost by covering the ocean with solid polygons because it doesn’t process any rejected tiles covered by other geometry. It is not per pixel, its per tile, and the tile size is determined by the pvr chipset. Beyond3D - PowerVR Tile Based Rendering
This is specific to the pvr hardware in iphones and ipad and will not do the same on desktops.
Indeed - just tested it. The opaque GUI gives me a 5 fps boost when the screen is completely filled by the ocean - this way it does not drop below 25 fps.
As for yoru question: yeah the performance gain is the SGX superb pipeline handling. opaque pixels actually ensure that pixels behind them in depth are not even processed on the gpu (unique to the SGX, so if you port to android expect devastating performance hits), which saves a lot especially on OES 2.0 with some more or less complex pixels hader
Which shader would be fastest when creating my own opaque GUI meshes? (not just rectangles, so I won’t use Unity’s GUI, I still have enough headroom regarding polygons). There must be some way to tell the GPU “this thing is as is and in foreground under all circumstances”.
Now I think I should also add a really primitive fast occlusion culling for the ships, but I fear when I try to write my own one it would use to much CPU.
SGX is used on Android only by Samsung (Galaxy S / Tab)
All others use other GPUs be it Tegra, Qualcomms Adreno or TIs one, since 2011 there is a 5th contender in this arena that also wants to proof its worth. All if these have their own gpus with their own behaviours, but none as opted as SGX out of my view (SGX went mobile after their highly optimized PowerVR2 cards on desktop failed misserably cause they couldn’t come up with the needed base performance to compete with the Geforce gpus - now its vice versa and NVIDIA isn’t seeing any light against the SGX and its successor later this year / early next year)
as for shader: Diffuse or an even more opted version of it where you change the render queue so its always on top
What I actually found was that with the 4G my game was getting a slowdown from 30FPS to 20FPS and the reason was because I was using a skydome. When I cut the skydome into 6 pieces the rendering on the 4G actually went back up to 30FPS, there is no special shader on it ( I guess its how much it actually has to render even if its supposed to be getting clipped). If its not render call limited but rather fill-rate limited try breaking it into smaller pieces.
For TI it heavily depends on the chip.
The Omap4 built into the LG Optimus 3D for example uses an SGX (the same as the Galaxy S, but 50% overclocked), but they aren’t SGX bound. Similar to how Samsung isn’t by the way the way, TI Samsung create cpus, not complete processors (like NVIDIA and Qualcomm)
But TI in the end should be less of a worry cause they are a minority player in device sales numbers. The big ones are Qualcomm and NVIDIA when it comes to “broad device usage” and naturally Samsung with their SGX / Mali (Galaxy S2) usage due ot the fact that they sell the by far most devices of a single config