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_compute_pipeline.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_compute_pipeline.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp index aa1cc592f..19c8ca7b2 100644 --- a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp +++ b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp @@ -19,15 +19,6 @@ using VideoCommon::ImageId; constexpr u32 MAX_TEXTURES = 64; constexpr u32 MAX_IMAGES = 16; -template <typename Range> -u32 AccumulateCount(const Range& range) { - u32 num{}; - for (const auto& desc : range) { - num += desc.count; - } - return num; -} - size_t ComputePipelineKey::Hash() const noexcept { return static_cast<size_t>( Common::CityHash64(reinterpret_cast<const char*>(this), sizeof *this)); @@ -58,17 +49,17 @@ ComputePipeline::ComputePipeline(const Device& device, TextureCache& texture_cac std::copy_n(info.constant_buffer_used_sizes.begin(), uniform_buffer_sizes.size(), uniform_buffer_sizes.begin()); - num_texture_buffers = AccumulateCount(info.texture_buffer_descriptors); - num_image_buffers = AccumulateCount(info.image_buffer_descriptors); + num_texture_buffers = Shader::NumDescriptors(info.texture_buffer_descriptors); + num_image_buffers = Shader::NumDescriptors(info.image_buffer_descriptors); - const u32 num_textures{num_texture_buffers + AccumulateCount(info.texture_descriptors)}; + const u32 num_textures{num_texture_buffers + Shader::NumDescriptors(info.texture_descriptors)}; ASSERT(num_textures <= MAX_TEXTURES); - const u32 num_images{num_image_buffers + AccumulateCount(info.image_descriptors)}; + const u32 num_images{num_image_buffers + Shader::NumDescriptors(info.image_descriptors)}; ASSERT(num_images <= MAX_IMAGES); const bool is_glasm{assembly_program.handle != 0}; - const u32 num_storage_buffers{AccumulateCount(info.storage_buffers_descriptors)}; + const u32 num_storage_buffers{Shader::NumDescriptors(info.storage_buffers_descriptors)}; use_storage_buffers = !is_glasm || num_storage_buffers < device.GetMaxGLASMStorageBufferBlocks(); writes_global_memory = !use_storage_buffers && |