diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2023-03-08 04:33:11 +0100 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2023-03-09 02:29:25 +0100 |
commit | 03137086dbb341052121e798ef7895ace19dd685 (patch) | |
tree | 594a97bbe781712b03a7f034e20df830a5964f43 /src/video_core/renderer_opengl/gl_resource_manager.cpp | |
parent | Merge pull request #9890 from Kelebek1/reverb_fix (diff) | |
download | yuzu-03137086dbb341052121e798ef7895ace19dd685.tar yuzu-03137086dbb341052121e798ef7895ace19dd685.tar.gz yuzu-03137086dbb341052121e798ef7895ace19dd685.tar.bz2 yuzu-03137086dbb341052121e798ef7895ace19dd685.tar.lz yuzu-03137086dbb341052121e798ef7895ace19dd685.tar.xz yuzu-03137086dbb341052121e798ef7895ace19dd685.tar.zst yuzu-03137086dbb341052121e798ef7895ace19dd685.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_resource_manager.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_resource_manager.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.cpp b/src/video_core/renderer_opengl/gl_resource_manager.cpp index 3a664fdec..eae8fd110 100644 --- a/src/video_core/renderer_opengl/gl_resource_manager.cpp +++ b/src/video_core/renderer_opengl/gl_resource_manager.cpp @@ -3,6 +3,7 @@ #include <string_view> #include <glad/glad.h> +#include "common/assert.h" #include "common/microprofile.h" #include "video_core/renderer_opengl/gl_resource_manager.h" #include "video_core/renderer_opengl/gl_shader_util.h" @@ -158,6 +159,15 @@ void OGLSync::Release() { handle = 0; } +bool OGLSync::IsSignaled() const noexcept { + // At least on Nvidia, glClientWaitSync with a timeout of 0 + // is faster than glGetSynciv of GL_SYNC_STATUS. + // Timeout of 0 means this check is non-blocking. + const auto sync_status = glClientWaitSync(handle, 0, 0); + ASSERT(sync_status != GL_WAIT_FAILED); + return sync_status != GL_TIMEOUT_EXPIRED; +} + void OGLFramebuffer::Create() { if (handle != 0) return; |