I have a scenario where I upload VBOs from a worker thread using glBufferData. After the glBufferData, I insert a glFenceSync. The VBOs are rendered in the render thread using glDrawArrays after waiting for the fence using glClientWaitSync. I disabled the glFenceSync once for a test and experienced no visual artifacts or otherwise odd behaviour.
My question is: Can this behaviour be expected under these circumstances? Or am I just lucky? Do PowerVR drivers take additional efforts to enforce synchronization on its buffers if a draw command is issued?