diff options
| author | 2020-02-17 22:29:04 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:12 -0400 | |
| commit | 165ae823f522aa981129927f42e76763a9fa6006 (patch) | |
| tree | 5b20ac78e3946e50aa37f76a1446a42654bf3511 /src/video_core/renderer_opengl | |
| parent | FenceManager: Implement should wait. (diff) | |
| download | yuzu-165ae823f522aa981129927f42e76763a9fa6006.tar.gz yuzu-165ae823f522aa981129927f42e76763a9fa6006.tar.xz yuzu-165ae823f522aa981129927f42e76763a9fa6006.zip | |
ThreadManager: Sync async reads on accurate gpu.
Diffstat (limited to 'src/video_core/renderer_opengl')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 35bed444f..bbf37a00d 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -650,6 +650,10 @@ void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) { | |||
| 650 | query_cache.FlushRegion(addr, size); | 650 | query_cache.FlushRegion(addr, size); |
| 651 | } | 651 | } |
| 652 | 652 | ||
| 653 | bool RasterizerOpenGL::MustFlushRegion(VAddr addr, u64 size) { | ||
| 654 | return texture_cache.MustFlushRegion(addr, size) || buffer_cache.MustFlushRegion(addr, size); | ||
| 655 | } | ||
| 656 | |||
| 653 | void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) { | 657 | void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) { |
| 654 | MICROPROFILE_SCOPE(OpenGL_CacheManagement); | 658 | MICROPROFILE_SCOPE(OpenGL_CacheManagement); |
| 655 | if (addr == 0 || size == 0) { | 659 | if (addr == 0 || size == 0) { |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index 6d173a922..5c0f88e6f 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h | |||
| @@ -67,6 +67,7 @@ public: | |||
| 67 | void Query(GPUVAddr gpu_addr, VideoCore::QueryType type, std::optional<u64> timestamp) override; | 67 | void Query(GPUVAddr gpu_addr, VideoCore::QueryType type, std::optional<u64> timestamp) override; |
| 68 | void FlushAll() override; | 68 | void FlushAll() override; |
| 69 | void FlushRegion(VAddr addr, u64 size) override; | 69 | void FlushRegion(VAddr addr, u64 size) override; |
| 70 | bool MustFlushRegion(VAddr addr, u64 size) override; | ||
| 70 | void InvalidateRegion(VAddr addr, u64 size) override; | 71 | void InvalidateRegion(VAddr addr, u64 size) override; |
| 71 | void OnCPUWrite(VAddr addr, u64 size) override; | 72 | void OnCPUWrite(VAddr addr, u64 size) override; |
| 72 | void SyncGuestHost() override; | 73 | void SyncGuestHost() override; |