summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_compute_pipeline.h
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-02-02 04:38:13 +0100
committerGitHub <noreply@github.com>2023-02-02 04:38:13 +0100
commit8a33f8bd303221fdcbdebe2579e3fbefa03b385e (patch)
tree47c1df67181d5f6752b9f532c5c4284510d4aff1 /src/video_core/renderer_opengl/gl_compute_pipeline.h
parentMerge pull request #9703 from ameerj/txq-ms (diff)
parentgl_compute_pipeline: Force context flush when loading shader cache (diff)
downloadyuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar.gz
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar.bz2
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar.lz
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar.xz
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.tar.zst
yuzu-8a33f8bd303221fdcbdebe2579e3fbefa03b385e.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_compute_pipeline.h')
-rw-r--r--src/video_core/renderer_opengl/gl_compute_pipeline.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.h b/src/video_core/renderer_opengl/gl_compute_pipeline.h
index 6534dec32..9bcc72b59 100644
--- a/src/video_core/renderer_opengl/gl_compute_pipeline.h
+++ b/src/video_core/renderer_opengl/gl_compute_pipeline.h
@@ -50,7 +50,8 @@ class ComputePipeline {
public:
explicit ComputePipeline(const Device& device, TextureCache& texture_cache_,
BufferCache& buffer_cache_, ProgramManager& program_manager_,
- const Shader::Info& info_, std::string code, std::vector<u32> code_v);
+ const Shader::Info& info_, std::string code, std::vector<u32> code_v,
+ bool force_context_flush = false);
void Configure();
@@ -65,6 +66,8 @@ public:
}
private:
+ void WaitForBuild();
+
TextureCache& texture_cache;
BufferCache& buffer_cache;
Tegra::MemoryManager* gpu_memory;
@@ -81,6 +84,11 @@ private:
bool use_storage_buffers{};
bool writes_global_memory{};
+
+ std::mutex built_mutex;
+ std::condition_variable built_condvar;
+ OGLSync built_fence{};
+ bool is_built{false};
};
} // namespace OpenGL