summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-02-20 11:55:32 -0400
committerGravatar Fernando Sahmkow2020-04-22 11:36:17 -0400
commit1fb516cd979ed0dbf8fa7cb4f6a334932dfb6434 (patch)
tree123d3f3e906e1af35c4bbced2d9029bc93fb4653 /src/video_core/renderer_opengl
parentFenceManager: Manage syncpoints and rename fences to semaphores. (diff)
downloadyuzu-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.cpp6
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
606void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { 608void 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
633void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) { 636void RasterizerOpenGL::ResetCounter(VideoCore::QueryType type) {
@@ -652,6 +655,9 @@ void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) {
652} 655}
653 656
654bool RasterizerOpenGL::MustFlushRegion(VAddr addr, u64 size) { 657bool 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