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);
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.