summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/maxwell/control_flow.h
diff options
context:
space:
mode:
authorFernandoS27 <fsahmkow27@gmail.com>2021-04-18 19:10:55 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:29 +0200
commitda936d6ad8cef5418b7644754ee4bcbf7f6125f8 (patch)
tree63cb827cfcf4a315287d4c32842f681f378da2e4 /src/shader_recompiler/frontend/maxwell/control_flow.h
parentvk_graphics_pipeline: Fix texture buffer descriptors (diff)
downloadyuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar.gz
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar.bz2
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar.lz
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar.xz
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.tar.zst
yuzu-da936d6ad8cef5418b7644754ee4bcbf7f6125f8.zip
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/control_flow.h')
-rw-r--r--src/shader_recompiler/frontend/maxwell/control_flow.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.h b/src/shader_recompiler/frontend/maxwell/control_flow.h
index 89966b16a..0e515c3b6 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.h
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.h
@@ -111,7 +111,8 @@ class CFG {
};
public:
- explicit CFG(Environment& env, ObjectPool<Block>& block_pool, Location start_address);
+ explicit CFG(Environment& env, ObjectPool<Block>& block_pool, Location start_address,
+ bool exits_to_dispatcher = false);
CFG& operator=(const CFG&) = delete;
CFG(const CFG&) = delete;
@@ -128,6 +129,10 @@ public:
return std::span(functions.data(), functions.size());
}
+ [[nodiscard]] bool ExitsToDispatcher() const {
+ return exits_to_dispatcher;
+ }
+
private:
void AnalyzeLabel(FunctionId function_id, Label& label);
@@ -158,6 +163,8 @@ private:
boost::container::small_vector<Function, 1> functions;
FunctionId current_function_id{0};
Location program_start;
+ bool exits_to_dispatcher{};
+ Block* dispatch_block{};
};
} // namespace Shader::Maxwell::Flow