diff options
| author | 2021-07-12 05:22:01 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:40 -0400 | |
| commit | bf2956d77ab0ad06c4b5505cc9906e51e5878274 (patch) | |
| tree | 3aae336c0dc3fe65351d5e6e312a214351e2e2fc /src/shader_recompiler/frontend/maxwell/translate_program.cpp | |
| parent | glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE (diff) | |
| download | yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.gz yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.xz yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.zip | |
shader: Avoid usage of C++20 ranges to build in clang
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate_program.cpp')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate_program.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.cpp b/src/shader_recompiler/frontend/maxwell/translate_program.cpp index 83c77967d..c067d459c 100644 --- a/src/shader_recompiler/frontend/maxwell/translate_program.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate_program.cpp | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | #include <algorithm> | 5 | #include <algorithm> |
| 6 | #include <memory> | 6 | #include <memory> |
| 7 | #include <ranges> | ||
| 8 | #include <vector> | 7 | #include <vector> |
| 9 | 8 | ||
| 10 | #include "common/settings.h" | 9 | #include "common/settings.h" |
| @@ -20,12 +19,19 @@ | |||
| 20 | namespace Shader::Maxwell { | 19 | namespace Shader::Maxwell { |
| 21 | namespace { | 20 | namespace { |
| 22 | IR::BlockList GenerateBlocks(const IR::AbstractSyntaxList& syntax_list) { | 21 | IR::BlockList GenerateBlocks(const IR::AbstractSyntaxList& syntax_list) { |
| 23 | auto syntax_blocks{syntax_list | std::views::filter([](const auto& node) { | 22 | size_t num_syntax_blocks{}; |
| 24 | return node.type == IR::AbstractSyntaxNode::Type::Block; | 23 | for (const auto& node : syntax_list) { |
| 25 | })}; | 24 | if (node.type == IR::AbstractSyntaxNode::Type::Block) { |
| 26 | IR::BlockList blocks(std::ranges::distance(syntax_blocks)); | 25 | ++num_syntax_blocks; |
| 27 | std::ranges::transform(syntax_blocks, blocks.begin(), | 26 | } |
| 28 | [](const IR::AbstractSyntaxNode& node) { return node.data.block; }); | 27 | } |
| 28 | IR::BlockList blocks; | ||
| 29 | blocks.reserve(num_syntax_blocks); | ||
| 30 | for (const auto& node : syntax_list) { | ||
| 31 | if (node.type == IR::AbstractSyntaxNode::Type::Block) { | ||
| 32 | blocks.push_back(node.data.block); | ||
| 33 | } | ||
| 34 | } | ||
| 29 | return blocks; | 35 | return blocks; |
| 30 | } | 36 | } |
| 31 | 37 | ||