I have a AMD radeon HD 7770 video card, Today I upgrade video driver to Catalyst 13.9 in my Windows 7 x64 machine.
I have a big program which use openGL heavily, it runs fine in the past several years, but after the upgrade, it will sometimes crash in openGL function call related to Sync object. Such as glDeleteSync and glClientWaitSync. One thing I must point out is that I call sync object function in different threads, such as I create a sync object in one thread and wait it in another thread.
Since my program is very huge, it is not possible to attach it.
Does anybody also encounter this problem?
Hi,
When you say that you're creating the sync object in one thread and waiting in another, do you mean that you are attempting to share sync objects across contexts, or that you are that you move a single context from one thread to another? How do you ensure that the creating thread has created the sync object before you manipulate it in the other context?
Thanks,
Graham
Yes, I share a sync object between two contexts. And I am sure the sync object has already been created in a context when I use glClientWaitSync to this sync object in another context through some kind of thread synchronization mechanism.
But I also encounter crash in the case of moving context to another thread. That is: I create a sync object in a working thread while in context A, and call glClientWaitSync to it in the same thread, that works fine. But at the exit of my program I make current the context A in GUI thread to do some cleanup work(such as delete pbo, textures...), and when I call glDeleteSync to delete the sync object, it will crash in atio6axx.dll due to read acccess violation.
Hi gsellers,
I wrote a sample program to reproduce the openGL sync object regression, I want to know how can I upload this sample as an attachment in a reply? Thanks.
Hi gsellers,
Can you reproduce this issue using the attached sample program?
Hi gsellers,
Finally I managed to upload the sample program to reproduce this regression.
Build it under Windows 7 x64 with VC10 and run it, it will crash in "glDeleteSync(g_syncObj);"