Uważam, że zdecydowanie najprostszym rozwiązaniem jest używanie GLX ze względu na doskonały interfejs wysokiego poziomu do synchronizacji i podwójnego buforowania. Należy pamiętać, że GLX nie jest OpenGL, jest rozszerzeniem X. Potrzebujesz fikcyjnego kontekstu OpenGL, ponieważ SwapBuffers (z jakiegoś dziwnego powodu) tego wymaga, ale o to chodzi.
Jeśli chcesz zrobić to bez GLX z jakiegokolwiek powodu, możesz to zrobić, tworząc podwójne bufory za pomocą X Double Buffer Extension (DBE) i synchronizować ręcznie do wyświetlenia przy użyciu rozszerzenia X Syncronization. I nie uczyniły siebie, ale powinieneś być w stanie znaleźć coś dla siebie nazywając XSyncListSystemCounters (po prawidłowej inicjalizacji!):
XSyncListSystemCounters zwraca wskaźnik do tablicy liczników systemowych wspieranych przez wyświetlacz
Niestety, nie mogę znaleźć o wiele więcej. Powodzenia.
Udało ci się to naprawić? (Znalezienie dokumentacji technologii związanych z X jest trudne ...) –