summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/maxwell/translate_program.cpp
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-07-12 05:22:01 -0300
committerGravatar ameerj2021-07-22 21:51:40 -0400
commitbf2956d77ab0ad06c4b5505cc9906e51e5878274 (patch)
tree3aae336c0dc3fe65351d5e6e312a214351e2e2fc /src/shader_recompiler/frontend/maxwell/translate_program.cpp
parentglsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE (diff)
downloadyuzu-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.cpp20
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 @@
20namespace Shader::Maxwell { 19namespace Shader::Maxwell {
21namespace { 20namespace {
22IR::BlockList GenerateBlocks(const IR::AbstractSyntaxList& syntax_list) { 21IR::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