diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-06-15 03:06:29 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:38 +0200 |
commit | 74f683787eeba7b6e8f5868134f445240733f8fd (patch) | |
tree | 880306114a423a5854172bc9e4b66e20be1932e6 /src/video_core/renderer_opengl/gl_graphics_pipeline.h | |
parent | glsl: Add Shader_GLSL logging (diff) | |
download | yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.gz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.bz2 yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.lz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.xz yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.tar.zst yuzu-74f683787eeba7b6e8f5868134f445240733f8fd.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_graphics_pipeline.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_graphics_pipeline.h b/src/video_core/renderer_opengl/gl_graphics_pipeline.h index dc791be53..58deafd3c 100644 --- a/src/video_core/renderer_opengl/gl_graphics_pipeline.h +++ b/src/video_core/renderer_opengl/gl_graphics_pipeline.h @@ -20,10 +20,15 @@ namespace OpenGL { +namespace ShaderContext { +struct Context; +} + class Device; class ProgramManager; using Maxwell = Tegra::Engines::Maxwell3D::Regs; +using ShaderWorker = Common::StatefulThreadWorker<ShaderContext::Context>; struct GraphicsPipelineKey { std::array<u64, 6> unique_hashes; @@ -65,8 +70,8 @@ public: BufferCache& buffer_cache_, Tegra::MemoryManager& gpu_memory_, Tegra::Engines::Maxwell3D& maxwell3d_, ProgramManager& program_manager_, StateTracker& state_tracker_, - std::array<std::string, 5> assembly_sources, - std::array<std::string, 5> glsl_sources, + ShaderWorker* thread_worker, VideoCore::ShaderNotify* shader_notify, + std::array<std::string, 5> sources, const std::array<const Shader::Info*, 5>& infos, const VideoCommon::TransformFeedbackState* xfb_state); @@ -82,6 +87,10 @@ public: return writes_global_memory; } + [[nodiscard]] bool IsBuilt() const noexcept { + return is_built.load(std::memory_order::relaxed); + } + private: void GenerateTransformFeedbackState(const VideoCommon::TransformFeedbackState& xfb_state); @@ -108,6 +117,7 @@ private: bool use_storage_buffers{}; bool writes_global_memory{}; + std::atomic_bool is_built{false}; static constexpr std::size_t XFB_ENTRY_STRIDE = 3; GLsizei num_xfb_attribs{}; |