From ed2f1729549dddbb346c11a632a352d83a8a3cda Mon Sep 17 00:00:00 2001 From: docentYT <63965954+docentYT@users.noreply.github.com> Date: Sat, 7 Feb 2026 19:47:32 +0100 Subject: [PATCH] Use glClientWaitSync instead of glGetSynciv --- gl/fence.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gl/fence.cpp b/gl/fence.cpp index 92f31663..b6db88f7 100644 --- a/gl/fence.cpp +++ b/gl/fence.cpp @@ -13,8 +13,8 @@ gl::fence::~fence() bool gl::fence::is_signalled() { - GLsizei len = 0; - GLint val; - glGetSynciv(sync, GL_SYNC_STATUS, 1, &len, &val); - return len == 1 && val == GL_SIGNALED; + // glClientWaitSync is faster than glGetSynciv. glGetSynciv probably tries to synchronize cpu and gpu + // https://stackoverflow.com/questions/34601376/which-to-use-for-opengl-client-side-waiting-glgetsynciv-vs-glclientwaitsync + GLenum r = glClientWaitSync(sync, GL_SYNC_FLUSH_COMMANDS_BIT, 1); + return r == GL_ALREADY_SIGNALED || r == GL_CONDITION_SATISFIED; }