This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

mali gpu counter

Hello, recently I am studying mali gpu counters and encountered some questions about the counter "primitive loaded" and "primitives dropped". I refer to the counter explaination here https://community.arm.com/docs/DOC-10182#jive_content_id_321_COMPUTE_TASKS .

It says the counter "Primitives loaded" increments for every primitive read from the tile list, but not all of these triangles will necessarily be visible in the current tile, due to the use of the hierarchical tiler. What does the counter mean? the number of triangles in one frame or the number of triangles in a single tile?  or maybe something else? Could you explain in detail?

Parents
  • Mali is a tile-based renderer (see The Mali GPU: An Abstract Machine, Part 2 - Tile-based Rendering) which means that we break up the fragment rendering into a series of 16x16 pixel tiles.

    We have to read the primitive data for every tile, so if you had one large triangle which covered a 720p screen you would get one triangle seen by the tiler (this is the application triangle count), and 3600 triangles read by the fragment shading (one triangle, read once per tile).

    The exact count doesn't matter too much - don't try to compute it - but do watch out for the ratio of the number of primitives loaded versus the number of fragment threads created. This gives some means to compute an average triangle size, from the point of view of the fragment shading operation. In general you want to keep the number of fragments per loaded primitive relatively high (rule of thumb - higher than 10) - triangles are expensive so keep them relatively large.

    HTH,
    Pete

Reply
  • Mali is a tile-based renderer (see The Mali GPU: An Abstract Machine, Part 2 - Tile-based Rendering) which means that we break up the fragment rendering into a series of 16x16 pixel tiles.

    We have to read the primitive data for every tile, so if you had one large triangle which covered a 720p screen you would get one triangle seen by the tiler (this is the application triangle count), and 3600 triangles read by the fragment shading (one triangle, read once per tile).

    The exact count doesn't matter too much - don't try to compute it - but do watch out for the ratio of the number of primitives loaded versus the number of fragment threads created. This gives some means to compute an average triangle size, from the point of view of the fragment shading operation. In general you want to keep the number of fragments per loaded primitive relatively high (rule of thumb - higher than 10) - triangles are expensive so keep them relatively large.

    HTH,
    Pete

Children
No data