Forums - What does Vertex Index Memory Read (Bytes) actually mean (possibly a bug) ?

3 posts / 0 new
Last post
What does Vertex Index Memory Read (Bytes) actually mean (possibly a bug) ?
jvaarala
Join Date: 7 Oct 15
Posts: 7
Posted: Fri, 2016-03-18 15:42

I have a test scene where I render two triangles across a screen (fullscreen 'blit') and I get Vertex Index Memory Read (bytes) as 4184640 bytes.

It seems to scale depending on the pixels filled on the screen (smaller it is, smaller the number). Since there is binning going on I assume there may be some index-read multiplication happening (vs. 6 bytes for a naive implementation), but those numbers seem a bit excessive.

Is it some other counter it's reading from hardware that's just labeled wrong?

Running on OSX, Nexus 5x with Marshmallow, and Snapdragon Profiler 1.4

PS. the first draw call numbers are still wrong. But I can work around this issue by adding a dummy draw call to the scene. Otherwise the 1.4 is an improvement over the earlier ones because now I actually get a complete record of the performance counters for all draw calls (previously it was giving me blank entries here and there).

 

 

 

 

 

  • Up0
  • Down0
Carlos Dominguez Moderator
Join Date: 27 Jul 15
Location: San Diego
Posts: 110
Posted: Thu, 2016-03-24 10:19

Hi,

I'm glad you saw an improvement from 1.3 to 1.4 as far as metrics go. We are still looking at the issue you mentioned of the first drawcall and I'm glad you were able to work around it.

As far as I'm aware your concern about 'Vertex Index Memory Read' could definitely be a bug as I would think should not change based on scale. The only explanation I can think of is that it might be computed per tile and once the triangles get small enough that aren't being binned and processed by some tiles then less overall work will be made for vertex processing. 

Regardless, I'll raise a task to look into this and follow up internally on it. Thanks for using Snapdragon Profiler and reporting this!

Carlos

  • Up0
  • Down0
jvaarala
Join Date: 7 Oct 15
Posts: 7
Posted: Thu, 2016-03-24 16:01

My expectation pretty much is that that number should be at worst:

2 (triangles) * 3 (indices/triangle) * 2 (ushort indices0 * number of bins

If every bin needs to read the indices. But that would even be say maximum about 240 bytes or so for 2 triangles spanning the whole screen. So I suspect that number is not coming from the correct performance counter.

 

And thanks for the good job on the tool! It has already been a really valuable tool for me, but with the correct perf. counters it's going to be even more so.

Cheers,

    Jani 

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.