Unity Community


Results 1 to 13 of 13

  1. Location
    Paris
    Posts
    3,730

    iPhone hardware : interesting facts

    Just browsed again the GLBenchmark results for 3GS, and I realized some interesting things :

    - 3GS has a much higher fillrate for Multi-textures than Single-Textures
    - Ambient light is a bit more expensive than Omni
    - the most interesting ... 256x256 texturing is a lot more expensive than 512x512
    - The overall is clearly optimized for 512x512
    - NEAREST_MIPMAP_LINEAR filtering beats Linear
    - GL_MAX_VIEWPORT_WIDTH is set to 2048, as Height.


    So what I can understand is :

    - It appears that every device has a slightly higher fillrate with multi than single texturing, but with the 3GS, there's a 20000 kTexels gap, which is huge.
    Would it mean that we would have better performance with a 2 texures pass, one being a plain color, than with a single texture pass ?
    - As ambient lights are barely used when you have more than one light, would it be possible to completely shut down Ambient in a shader ?
    - Never use 256x256 textures. Never.
    - It will always be better perfs to use 2 x 512*512 textures than one 1024*1024
    - Better use NEAREST_MIPMAP_LINEAR filtering.
    - We can use the 3GS as an HD video emitter (like connecting it to a TV).



    Also, other facts :
    - 2G and 3G have same performances between each other
    - 3G just don't care about texture size at all, same perfs for all.
    - same for filtering



    So at last, there is no impact on doing those optimizations for any type of iDevice, and benefits will be greatly visible on 3GS.

    Overall, if we're using 512x512 textures, using Nearest MipMap Linear, shutting down Ambient, and optimize the texturing for Multi Textures, we can gain :
    - +14745 kTexels / second,
    - +3700 kTris / second


    edit : This is not very huge, as 3700 kTris / sec would mean 60k tris / frame at 60 FPS. And I'm really not sure about the single to multi-texture trick.
    But still interesting.


  2. Location
    Berlin
    Posts
    1,048
    60 tris is really nothing but interesting - but it's good to see in a benchmark how different texture sizes perform. 64x64 is as bad as 1024x1024, that's good to know!
    But as i have learned some days ago using mipmapping will be always faster - so when using mipmaps I've no control about the texture size anyway or am I wrong?

    I am more surprised about the fact that the iPhone is actually very british and a grandson of the Acorn Archimedes - Prozessor and GPU are both from british companies.

    So if your iDevice is slow blame the brits, if the touchscreen is not responding blame the germans, if it crashes blame the americans, if it does not survive when it falls on the floor blame the chinese


  3. Location
    Paris
    Posts
    3,730
    Oops sorry, I made a mistake, it's not 60 tris / frame, but 60K (60000).

    Finally, I think the real useful calculation would be :

    +3700 kTris / sec, which means +3700 tris / miliseconds.

    In a recent Profiler, I had :

    iPhone Unity internal profiler stats:
    cpu-player> min: 5.2 max: 15.8 avg: 10.2
    cpu-ogles-drv> min: 3.2 max: 9.7 avg: 3.9
    cpu-present> min: 1.0 max: 13.7 avg: 2.8
    frametime> min: 15.3 max: 33.2 avg: 17.2
    draw-call #> min: 6 max: 6 avg: 6 | batched: 7
    tris #> min: 10164 max: 10164 avg: 10164 | batched: 392
    verts #> min: 5198 max: 5198 avg: 5198 | batched: 264
    player-detail> physx: 0.3 animation: 1.4 culling 0.3 skinning: 5.5 batching: 0.1 render: 2.4 fixed-update-count: 0 .. 2
    mono-scripts> update: 0.1 fixedUpdate: 0.0 coroutines: 0.1
    mono-memory> used heap: 700416 allocated heap: 1417216 max number of collections: 0 collection total duration: 0.0
    So :
    tris #> avg: 10164

    in :
    render: 2.4

    which means 4235 tris / ms.

    In that number, we must count all the shaders differencies and other graphic workouts that exceed a simple textured mesh display.
    So it's not very accurate.

    But that would abstractly mean that instead of doing a 2.4 rendertime, I'd do a 1.3 rendertime.

    Plus the kTexels / second boost that is impossible to measure right now.

    Would be interesting to make some bench using those optimizations, and without.


  4. Location
    China
    Posts
    1,009
    What????? 256*256 > 512*512???

    Really
    My Blog:Http://Www.1Vr.Cn
    Unity Tencent QQ Group:2453819,34643309,7838310,7838228
    Unity Forum: http://www.iu3d.com
    Development Environment:Unity Pro & iPhone Adv & MacBook Pro & iPhone & iPod & iPad & Zpad.


  5. Location
    Berlin
    Posts
    1,048
    What about the results of the iphone 2G and 3G in this database? It always says 512k triangles/s. I guess it's just not tested ? I mean the 3GS can't be 10 times faster.


  6. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by VIC20
    What about the results of the iphone 2G and 3G in this database? It always says 512k triangles/s. I guess it's just not tested ? I mean the 3GS can't be 10 times faster.
    Yes it is
    (GPU wise)

    (video comparison on a demo)

    Although, I think it effectively misses somes tests about 2G/3G. But those numbers seem quite realistic.


  7. Location
    Barcelona
    Posts
    395
    Quote Originally Posted by Minevr
    What????? 256*256 > 512*512???

    Really
    I am not only worried about the performance crazyness... how can it be even the same?

    This makes me think I can't trust those results.


  8. Location
    England
    Posts
    155

    Re: iPhone hardware : interesting facts

    Quote Originally Posted by n0mad
    - It will always be better perfs to use 2 x 512*512 textures than one 1024*1024
    Did you mean:

    It will always be better perfs to use 4 x 512*512 textures than one 1024*1024

    ?
    Busting bottles over the heads of saints since '68

  9. Volunteer Moderator
    Posts
    23,700

    Re: iPhone hardware : interesting facts

    Quote Originally Posted by n0mad
    - It will always be better perfs to use 2 x 512*512 textures than one 1024*1024
    No, incorrect math aside , multiple textures = multiple draw calls = much slower than any minor differences in texture performance, if they do in fact exist.

    --Eric


  10. Location
    Paris
    Posts
    3,730

    Re: iPhone hardware : interesting facts

    Quote Originally Posted by ader
    Quote Originally Posted by n0mad
    - It will always be better perfs to use 2 x 512*512 textures than one 1024*1024
    Did you mean:

    It will always be better perfs to use 4 x 512*512 textures than one 1024*1024

    ?
    Oh my .... well yes

    Quote Originally Posted by Eric5h5
    Quote Originally Posted by n0mad
    - It will always be better perfs to use 2 x 512*512 textures than one 1024*1024
    No, incorrect math aside , multiple textures = multiple draw calls = much slower than any minor differences in texture performance, if they do in fact exist.

    --Eric
    Aw, that's true.

    Anyway, there must be a trick


  11. Location
    Paris
    Posts
    3,730
    Quote Originally Posted by shadowman
    Quote Originally Posted by Minevr
    What????? 256*256 > 512*512???

    Really
    I am not only worried about the performance crazyness... how can it be even the same?

    This makes me think I can't trust those results.
    I've seen such odd facts in other hardwares as well.

    If this benchmark is serious (and since it has been existing for years, I'm sure it's serious), there might be some weird explanation behind the new GPU pipeline.

    Just like the one where AlphaTest is slower than Blending on iDevices, but not in other big GPUs (PC, consoles, etc).


  12. Location
    japan
    Posts
    989
    not from my knowledge , but I hear that texture size things is related to how in the hardware the binary data are stocked that will make a "normal" reason for such behaviors, hearing that from some core engineer guys ( didn't really understand all the speech ..)

    so that shouldn't be weird things but somethings totally normal form "the core enginneer" point of view ,

    I wonder if there is some infos on teh web about that particular things in a more general way ...


  13. Location
    Paris
    Posts
    3,730
    Hey, I found a post in Toucharcade developers forums :


    Quote Originally Posted by hackdirt
    Video on the 3GS is undoubtedly faster, but the 3GS has a deprecated VFP unit that runs more slowly on the 3GS than 2G devices. Thus, if a game uses VFP optimizations for heavy duty floating point operations (such as matrix operations), the game will certainly run more slowly on the 3GS.
    If this is true, this is very important, as every skinning operations were put on VFP in iUnity 1.5.

    Is it confirmed ?

    edit : I have some kind of proof that 3GS is less effective with VFP than older models : If I put a negative X scale (= mirroring) on a 41 bones skinnedMesh, my global frametime is nearly cut by an half.
    On my 3G, it is barely visible.

    I read a post from ReJ some time ago, where he was stating that they'll put native Neon optimization instead of Neon VFP in a future build.
    That would mean replacement of VFP I guess, and if the guy in the quote says truth, that would mean a big skinning/physics/vector perf overall. Until I'm completely wrong.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •