gl_staging_buffer: Use glGetSynciv instead of glClientWaitSync
glGetSynciv is the intended API to query fence's signaled status.
This commit is contained in:
@@ -87,19 +87,10 @@ public:
|
|||||||
if (!sync) {
|
if (!sync) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
switch (glClientWaitSync(sync, 0, 0)) {
|
GLint status;
|
||||||
case GL_TIMEOUT_EXPIRED:
|
glGetSynciv(sync, GL_SYNC_STATUS, sizeof(GLint), nullptr, &status);
|
||||||
// The fence is unavailable
|
if (status == GL_UNSIGNALED) {
|
||||||
return false;
|
return false;
|
||||||
case GL_ALREADY_SIGNALED:
|
|
||||||
case GL_CONDITION_SATISFIED:
|
|
||||||
break;
|
|
||||||
case GL_WAIT_FAILED:
|
|
||||||
UNREACHABLE_MSG("Fence wait failed");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
UNREACHABLE_MSG("Unknown glClientWaitSync result");
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
// The fence has been signaled, we can destroy it
|
// The fence has been signaled, we can destroy it
|
||||||
glDeleteSync(sync);
|
glDeleteSync(sync);
|
||||||
|
|||||||
Reference in New Issue
Block a user