This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Combined vs individual glClear performance

Hi,

Basically I wanted to know if calling glClear with all buffers bits to clear is faster than clearing them all individually.

So:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

is faster thabn:

glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_DEPTH_BUFFER_BIT);

Cheers!

  • While the driver may possibly be clever enough to combine them if they're next to each other, I really don't see any advantage to the second option. It'll always be faster to do a command once rather than twice. And the first is very clear from a code reading point of view. You don't want to risk traversing through all that memory more times than you need to.

  • It depends on where the clears are. 

    If they are before any glDraw...() calls in the render pass, then they will be combined. On Mali this is a free "start of tile" initialization.

    If they are after any draws then they will not be combined, and will be a "not free" shader-based clear.

  • Thanks! This is what I wanted to confirm. The individual glClears are one after the other without any other GL call in between.