diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2023-01-30 03:04:46 +0100 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2023-01-30 03:32:12 +0100 |
commit | 720ff380978e4e353ec878953c261b3a1b6451d7 (patch) | |
tree | 02a7fe6182ec18f933ede578a4602e0cc757b6d0 /src/video_core/renderer_opengl/gl_shader_cache.cpp | |
parent | gl_graphics_pipeline: Force context flush when loading shader cache (diff) | |
download | yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar.gz yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar.bz2 yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar.lz yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar.xz yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.tar.zst yuzu-720ff380978e4e353ec878953c261b3a1b6451d7.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index 15812b678..626ea7dcb 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp @@ -286,7 +286,7 @@ void ShaderCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading, file.read(reinterpret_cast<char*>(&key), sizeof(key)); queue_work([this, key, env = std::move(env), &state, &callback](Context* ctx) mutable { ctx->pools.ReleaseContents(); - auto pipeline{CreateComputePipeline(ctx->pools, key, env)}; + auto pipeline{CreateComputePipeline(ctx->pools, key, env, true)}; std::scoped_lock lock{state.mutex}; if (pipeline) { compute_cache.emplace(key, std::move(pipeline)); @@ -560,8 +560,8 @@ std::unique_ptr<ComputePipeline> ShaderCache::CreateComputePipeline( } std::unique_ptr<ComputePipeline> ShaderCache::CreateComputePipeline( - ShaderContext::ShaderPools& pools, const ComputePipelineKey& key, - Shader::Environment& env) try { + ShaderContext::ShaderPools& pools, const ComputePipelineKey& key, Shader::Environment& env, + bool force_context_flush) try { LOG_INFO(Render_OpenGL, "0x{:016x}", key.Hash()); Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()}; @@ -590,7 +590,7 @@ std::unique_ptr<ComputePipeline> ShaderCache::CreateComputePipeline( } return std::make_unique<ComputePipeline>(device, texture_cache, buffer_cache, program_manager, - program.info, code, code_spirv); + program.info, code, code_spirv, force_context_flush); } catch (Shader::Exception& exception) { LOG_ERROR(Render_OpenGL, "{}", exception.what()); return nullptr; |