After some profilling, it seems that main botleneck now is related to binning, framebuffer is rather fat (rgba8 + d24s8) so this does not help, i could reduce it to rgb16, but I need stencil so d24s8 must be here.
How the binning exacly work ? Just like 'predicated tiling' on xbox360 console ? (for first tile the whole command buffer is played, and all vertex shader are executed, filling the Hi-Z (for whole frame) and rasterise to that tile, and queres are made into HiZ to determine if individual DrawCalls will be visible in subsequent tiles, then the command buffer is replayed for all remaining tiles and queres are used to trivialy discard DrawCalls that do not contribute to that tile (based on HiZ)) - or there is different logic behind it ?
All in all in my game I already have screenspace bounding box for each unit (skinned object with possibly costly vertex shader, etc. etc.), so I could use this information to feed QCOM_tiled_rendering extension ... but again IS THIS EXTENSION SUPPORTED ON ANDROID ? couse i could not find in in GLESv2.so so link fails.
If the extension is not supported, is there any other way to hint driver that the particular drawcall belongs only to specified bins and it should not execute vertex shader for all the other ?
Thanks for any information on this!
Ps. BTW, why all those fancy extensions are in extension string but are not supported on android platform ? This is somehow misleading, i know that hardware may do some cool thing, but i could not use it since from unknown reason it's not exposed to programmer ;]