Imagination PowerVR SDK Blog

ParamBufferSize in powervr.ini



hi all,

What would happen if ParamBufferSize is too small, when I draw a mount of triangles using OpenGL ES 2.0 ?

I have encountered a problem :
triangles drawn at the back, seem show in frames, then disappear in next frames, and then show again.

A friend told me that it’s because ParamBufferSize is not enough. But I googled parameter buffer, still have no idea why this happens.

Should I cut down the size of VBO? or DrawCall?



Hi Kenshin,

The app hint ParamBufferSize controls how big the parameter buffer is initially, the parameter buffer stores data produced by the tiling engine. If the GPU overflows the parameter buffer during vertex processing it will enter smart parameter mode (SPM) and attempt to grow the parameter buffer. You can use PVRTune to profile your application to determine if SPM is entered. However the system is designed to be of as little disruption to a render as possible - you may notice some hitching for example but you should not loose vertices as a result.

You could probably approximate roughly how big of a parameter buffer you require by determining the size of your vertex data, i.e. number of vertices * size (in bytes).

From what you are describing though it sounds like the triangles popping in and out of view are on / close to the frustums far plane and when you move the camera slightly they oscillate between getting culled and drawn, due to floating point imprecision of the Z buffer.

Hope this helps,