diff options
| author | 2020-02-20 11:55:32 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:17 -0400 | |
| commit | 1fb516cd979ed0dbf8fa7cb4f6a334932dfb6434 (patch) | |
| tree | 123d3f3e906e1af35c4bbced2d9029bc93fb4653 /src/video_core/renderer_opengl | |
| parent | FenceManager: Manage syncpoints and rename fences to semaphores. (diff) | |
| download | yuzu-1fb516cd979ed0dbf8fa7cb4f6a334932dfb6434.tar.gz yuzu-1fb516cd979ed0dbf8fa7cb4f6a334932dfb6434.tar.xz yuzu-1fb516cd979ed0dbf8fa7cb4f6a334932dfb6434.zip | |
GPU: Implement Flush Requests for Async mode.
Diffstat (limited to 'src/video_core/renderer_opengl')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index e52e5961f..fbd81b895 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -601,6 +601,8 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) { | |||
| 601 | EndTransformFeedback(); | 601 | EndTransformFeedback(); |
| 602 | 602 | ||
| 603 | ++num_queued_commands; | 603 | ++num_queued_commands; |
| 604 | |||
| 605 | system.GPU().TickWork(); | ||
| 604 | } | 606 | } |
| 605 | 607 | ||
| 606 | void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { | 608 | void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { |
| @@ -628,6 +630,7 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { | |||
| 628 | const auto& launch_desc = system.GPU().KeplerCompute().launch_description; | 630 | const auto& launch_desc = system.GPU().KeplerCompute().launch_description; |
| 629 | glDispatchCompute(launch_desc.grid_dim_x, launch_desc.grid_dim_y, launch_desc.grid_dim_z); | 631 | glDispatchCompute(launch_desc.grid_dim_x, launch_desc.grid_dim_y, launch_desc.grid_dim_z); |
| 630 | ++num_queued_commands; | 632 | ++num_queued_commands; |
| 633 | system.GPU().TickWork(); | ||
| 631 | } | 634 | } |
| 632 | 635 | ||
| 633 | void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) { | 636 | void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) { |
| @@ -652,6 +655,9 @@ void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) { | |||
| 652 | } | 655 | } |
| 653 | 656 | ||
| 654 | bool RasterizerOpenGL::MustFlushRegion(VAddr addr, u64 size) { | 657 | bool RasterizerOpenGL::MustFlushRegion(VAddr addr, u64 size) { |
| 658 | if (!Settings::IsGPULevelExtreme()) { | ||
| 659 | return buffer_cache.MustFlushRegion(addr, size); | ||
| 660 | } | ||
| 655 | return texture_cache.MustFlushRegion(addr, size) || buffer_cache.MustFlushRegion(addr, size); | 661 | return texture_cache.MustFlushRegion(addr, size) || buffer_cache.MustFlushRegion(addr, size); |
| 656 | } | 662 | } |
| 657 | 663 | ||