When i am timing graphics stuff, I use 'finish()' It inserts a token into the pipeline and returns when that token has passed through. For large no of other GL calls, the cost of finish will be negligible.. Mike