The official PowerVR documentation says that you have to use float, everywhere, where it's possible to make operation without convertion. But i found a post , where you can see a clear example the clear example, that sometimes it's better to use another type, then float So I ask to share some expirience about using variable types in shaders, who already do dosens of "what if"
Hi, First of all - the post you refer to doesn't seem to account for the TBDR architecture of PowerVR. Drawing overlapping opaque quads will result in the GPU discarding non-visible quads, and that will skew the numbers. More over - using fixed4 can sometimes be a bad idea performance-wise (especially with regards to swizzling). In fact - HLSLSupport.cginc (part of the global includes shipped with Unity) will redefine fixed to half for non-GLSL/non-PSSL (i.e. also for PSM). And finally - converting between precision formats can be costly (i.e. mixing half and float). Some additional tips can be found here : http://docs.unity3d.com/Manual/SL-ShaderPerformance.html