diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-07-26 03:27:16 +0200 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2021-11-16 22:11:28 +0100 |
commit | 6f3a41abe2caa617ae540fb7e4a3c4a092478963 (patch) | |
tree | 27a9a2fc200b38db0502a0e2a26b2b7cb062b8a3 /src/video_core/renderer_opengl/gl_shader_cache.cpp | |
parent | spirv: Implement rescaling patching (diff) | |
download | yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar.gz yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar.bz2 yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar.lz yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar.xz yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.tar.zst yuzu-6f3a41abe2caa617ae540fb7e4a3c4a092478963.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index 02682bd76..42ef67628 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp @@ -426,16 +426,14 @@ std::unique_ptr<GraphicsPipeline> ShaderCache::CreateGraphicsPipeline( // Normal path programs[index] = TranslateProgram(pools.inst, pools.block, env, cfg, host_info); - for (const auto& desc : programs[index].info.storage_buffers_descriptors) { - total_storage_buffers += desc.count; - } + total_storage_buffers += + Shader::NumDescriptors(programs[index].info.storage_buffers_descriptors); } else { // VertexB path when VertexA is present. auto& program_va{programs[0]}; auto program_vb{TranslateProgram(pools.inst, pools.block, env, cfg, host_info)}; - for (const auto& desc : program_vb.info.storage_buffers_descriptors) { - total_storage_buffers += desc.count; - } + total_storage_buffers += + Shader::NumDescriptors(program_vb.info.storage_buffers_descriptors); programs[index] = MergeDualVertexPrograms(program_va, program_vb, env); } } @@ -510,10 +508,7 @@ std::unique_ptr<ComputePipeline> ShaderCache::CreateComputePipeline( Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()}; auto program{TranslateProgram(pools.inst, pools.block, env, cfg, host_info)}; - u32 num_storage_buffers{}; - for (const auto& desc : program.info.storage_buffers_descriptors) { - num_storage_buffers += desc.count; - } + const u32 num_storage_buffers{Shader::NumDescriptors(program.info.storage_buffers_descriptors)}; Shader::RuntimeInfo info; info.glasm_use_storage_buffers = num_storage_buffers <= device.GetMaxGLASMStorageBufferBlocks(); |