Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

General mobile multi core GPU question

Discussion in 'Shaders' started by VIC20, May 29, 2013.

  1. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,687
    Maybe a stupid question but how exactly does the benefit of multi core GPUs work? (PowerVR).
    How does such a GPU spread the workload on the cores?

    When a huge portion (or all of it) of the screen is filled by a single object/shader will there be any benefit from multi core GPUs for this object? As you can see I have no idea :)
     
  2. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Mobile has no multi core gpu in the traditional sense.
    They don't act as multiple gpus, they act as a single gpu which distribute the rendering work on different screen tiles across them. They can do so cause they operate on a single memory layer with all common knowledge and distinct data to calculate (mutually distinct pixels)

    As such you always benefit from the multicore aside of a single case: when the object is ultra heavy and only in a single tile.
    But achieving that is nearly impossible unless you do it on full purpose ie artificially trash the performance on purpose ;)
     
  3. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,687
    Thanks.
     
  4. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,770
    The term "core" is very loosely defined; anyone calls "cores" on anything they want.

    What PowerVR guys mean, is that they have some sort of "cluster of transistors on the GPU that can do some work". And some GPUs have multiple clusters. And since PowerVR is very much a tile-based architecture (i.e. they process rendering in small rectangles on the screen, for example 16x16 pixels or similar) - then these "cores" just grab yet-unprocessed tiles and process them.

    So in practice, you don't have to think about these "cores" at all, just know that more cores = faster GPU, since it will be able to fetch process more tiles at the same time.

    This is in fact very similar to desktop GPU on the high level - they have multiple "execution units" or "shader backends" or "CUDA cores" or "threads" or whatever each vendor calls them. So they can process multiple vertices or multiple pixels in parallel. You don't have to worry about that either.