Broadcomm opengles 2 speed issue

B5262118b588a5a420230bfbef4a2cdf
0
Stainless 151 May 13, 2013 at 10:09

BCM97425

Has anyone worked on this box?

My new renderer runs at 177fps on my old Macbook , and at 205fps on my Samsung Galaxy S3 but only runs at 12fps on this box.

The box has more than enough grunt, so it shouldn’t be this slow.

I cannot find any specs on the graphics card other than “1gig pixels per second” but several 2d games run at 60hz when the device is running 1080p and everyone I have talked to says it’s a good platform.

I’ve emails in with Broadcom, but they are always slow to reply and I’m banging my head against a wall and a deadline.

any ideas gratefully received

7 Replies

Please log in or register to post a reply.

3c5be51fdeec526e1f232d6b68cc0954
0
Sol_HSA 119 May 13, 2013 at 13:21

It may be you’ve hit an unoptimized pipeline somehow. Are you, for instance, modifying textures in the middle of a frame? Do you switch render targets? Do you switch render targets back and forth within a frame? Or maybe you’re doing something the hardware doesn’t directly support, like some specific vertex format, and you get lots of extra software processing..

All in all, hard to tell outright.

B5262118b588a5a420230bfbef4a2cdf
0
Stainless 151 May 13, 2013 at 18:00

I’ve done some more profiling, it looks like the interface between system ram and video ram is INCREDIBLY slow

I’ve raised a ticket on the drivers, should not be as slow as this.

All I’m doing is throwing a load of tris at the hardware, sorted by texture and shader. Nothing particularly expensive. Less than 100K tris as well.

If my mobile phone can run it at 205fps, this box should blitz it, but the best I have managed is 15fps.

Something really wrong somewhere.

I’m going to try VBO’s tomorrow to see if I am right. They should be stored in video ram by default.

3c5be51fdeec526e1f232d6b68cc0954
0
Sol_HSA 119 May 14, 2013 at 09:12

It may be something completely unintuitive that just forces the driver to do things in a slow way.

B5262118b588a5a420230bfbef4a2cdf
0
Stainless 151 May 14, 2013 at 10:40

True, I have several people looking into it. However I’m not doing anything weird, it’s basic rendering with 3 different shaders.

I rewrote my code to use VBO’s and got a huge speed increase, on my laptop it went up to 426 FPS

I’m waiting for my guy in Reading to turn up at the office and test on the real hardware, fingers crossed.

B5262118b588a5a420230bfbef4a2cdf
0
Stainless 151 May 14, 2013 at 11:14

Average FPS 387.430054
Breakdown {
Draw triangles 0.001119
Bind texture 0.000372
Bind shader 0.000133
Maths 0.000031
Send data 0.000674
}

:D :D :D

Thank the force for that

So going from vertex arrays to VBO’s gave a 375fps increase.

Man that’s weird

3c5be51fdeec526e1f232d6b68cc0954
0
Sol_HSA 119 May 14, 2013 at 12:41

It’s not weird. Conceptually, the driver has to create a new VBO every time you draw using a vertex array. With vertex arrays, nothing stops you from mucking with the data at any point, so the driver has to create an internal VBO and make a copy of your vertex array data.

..what the heck makes me a “senior member” and you just a “member” ? =)

EDIT:
Also, if you don’t happen to have your vertex data in the format the driver wants, it also has to do the conversion every time you draw, while when using VBOs, the conversion only happens once.

B5262118b588a5a420230bfbef4a2cdf
0
Stainless 151 May 15, 2013 at 00:33

From broadcom …..

There isn’t really a distinction between system and video RAM, that’s PC thinking, we only have a single unified memory system on our STBs.

The real difference between the two methods is one references the data by pointer while the other copies and processes the data every frame.

Sounds like they do some sort of processing on the vertex buffer before the GPU can handle it.

I’m going to go and see the graphic team next week so will be able to get more detail on what happens at the hardware level then.

I’ll report back when I get more data.

..what the heck makes me a “senior member” and you just a “member” ? =)

:D No idea