summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorAmeer J <52414509+ameerj@users.noreply.github.com>2021-07-10 22:06:19 +0200
committerGitHub <noreply@github.com>2021-07-10 22:06:19 +0200
commit907b2324d3a570ff726fe064ba425924d6dc0426 (patch)
tree1b3a16691ab5835900a5eee0a05a871b6b774a71 /src/video_core/renderer_opengl
parentMerge pull request #6573 from lat9nq/cpu-settings-cleanup-2 (diff)
parentBuffer Cache: Address Feedback. (diff)
downloadyuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.gz
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.bz2
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.lz
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.xz
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.zst
yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp8
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 07ad0e205..a4ed8f68f 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -634,6 +634,13 @@ void RasterizerOpenGL::SignalSyncPoint(u32 value) {
fence_manager.SignalSyncPoint(value);
}
+void RasterizerOpenGL::SignalReference() {
+ if (!gpu.IsAsync()) {
+ return;
+ }
+ fence_manager.SignalOrdering();
+}
+
void RasterizerOpenGL::ReleaseFences() {
if (!gpu.IsAsync()) {
return;
@@ -650,6 +657,7 @@ void RasterizerOpenGL::FlushAndInvalidateRegion(VAddr addr, u64 size) {
void RasterizerOpenGL::WaitForIdle() {
glMemoryBarrier(GL_ALL_BARRIER_BITS);
+ SignalReference();
}
void RasterizerOpenGL::FragmentBarrier() {
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 482efed7a..d8df71962 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -83,6 +83,7 @@ public:
void ModifyGPUMemory(GPUVAddr addr, u64 size) override;
void SignalSemaphore(GPUVAddr addr, u32 value) override;
void SignalSyncPoint(u32 value) override;
+ void SignalReference() override;
void ReleaseFences() override;
void FlushAndInvalidateRegion(VAddr addr, u64 size) override;
void WaitForIdle() override;