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

Why vulkan has much higher input primitives than OpenGL?

I create a very simple scene in UE4(empty level so only default material floor and a sky) and I notice the vulkan version has much higher input primitives than opengl (below are data in 10 seconds range)

Then I use render doc to capture the scene on both vulkan and opengl, and it turns out the primitives send to GPU are same:

The streamline says the input primitives means "The total number of input primitives to the rendering process" so I guess they should match the vertices count submitted to GPU and if we submit same number of vertices(and of course with same primitive type), we should expect they have same input primitives.

Can mali expert help to have a look at this issue? I can provide the apk, streamline files and render doc capture files if needed.

Thanks!

Parents
  • What GPU are you running on, and with which driver version?

    Older OpenGL ES drivers had some optimizations to remove large spatial jumps in index buffers, but this has a high CPU cost and generally isn't possible on Vulkan due to the more literal approach to memory management. On newer OpenGL ES and Vulkan drivers I'd expect to see the same behaviour on both. On pre-Valhall hardware this will look like the Vulkan numbers in Streamline, on Valhall or newer hardware it should look like the OpenGL ES numbers in Streamline.

    In general we recommend using index buffers where every index between min and max index is used, and avoid using sparsely sampling indices from a large index range. 

    HTH, 
    Pete

Reply
  • What GPU are you running on, and with which driver version?

    Older OpenGL ES drivers had some optimizations to remove large spatial jumps in index buffers, but this has a high CPU cost and generally isn't possible on Vulkan due to the more literal approach to memory management. On newer OpenGL ES and Vulkan drivers I'd expect to see the same behaviour on both. On pre-Valhall hardware this will look like the Vulkan numbers in Streamline, on Valhall or newer hardware it should look like the OpenGL ES numbers in Streamline.

    In general we recommend using index buffers where every index between min and max index is used, and avoid using sparsely sampling indices from a large index range. 

    HTH, 
    Pete

Children