glClientWaitSync: sync is not the name of an existing Sync Object

I currently test shared contextes with a render thread that issues render commands and a background thread that issues buffer uploads. I use fence sync for synchronization of the two. Recently however I have to fight with segfaults, so I enabled a debug context with error callbacks and got the following error message:

glClientWaitSync: sync is not the name of an existing Sync Object(GL_INVALID_VALUE)

I added logging to every glDeleteSync call too see who might destroy the sync object but it apparently never happens.

What commands besides glDeleteSync could cause a deletion of the sync object in a way that the error above is triggered?


Hi desperado,

I can’t think of any other commands that can cause a deletion of a sync object leading to the error you’re describing. In glDeleteSync ( a sync object can be flagged and deleted later when no longer associated with any fence / glWaitSync / glClientWaitSync command. I’d recommend using glGetSynciv ( to query for the status of a sync object before a call to glDeleteSync and proceed to deletion when it corresponds. Probably after some debugging you’ll figure out what’s causing the segfault and you’ll be able to remove the glGetSynciv call.

Please let me know if you continue experiencing any issues.

Best regards,


it crashes in glClientWaitSync. The sourcecode addresses seem to be like this:


I issued a ticket but didn’t receive an answer yet.

Hello desperado,

Sorry for the ticket, I saw it. I kept the replies in the forum in case other users come across the same problem in the future and this post is of help for them.

I’ll switch to the ticket so we can continue helping you from there.

Best regards,

© Imagination Technologies Limited. All rights reserved.
Privacy PolicyTerms & ConditionsTrademarksCookies