Draw Calls are more than expected (Bitmap fonts are not batched!)

Why is that? If there is no physics or heavy AI, shouldn’t GPU be much more loaded than CPU? Most of the time we do rendering, don’t we?

Trying to explain this, rendering can be break down into 3 stage if you only consider the interaction between CPU and GPU,

  1. CPU prepare data
  2. send data from memory to GPU memory
  3. GPU process data (draw call)

Actually step 2 can be really slow, depending on hardware architecture. Because it’s an I/O between different hardware. So sometimes, avoid the I/O is better than saving a draw call, one way to do it is to keep the static data in GPU memory like Label, tilemap, it will increase the draw call, but save the I/O operation which actually result in faster rendering.

Thank you very much for explaining @nite. I just want to understand why keeping the static data in GPU memory like Label, tilemap, should increase the draw calls?

You’re correct, they could still be batched, hmm, just not that easy.

is there any news on this? I’m trying to change CCLabel from SpriteBatchNode to Sprite, but still fail to render it

@nite
is there anyway I can contact you? I’m working on this right now, but having trouble in rendering. Maybe we can work together on this

this is my latest update on this

Is there some kind of offset for the font?

@siauw could you please share the code? I just encountered this problem myself- It would seem it’s not taking into account the letter origins.

In v3.6, fonts are still not processed by auto batching.

Cheers!