summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/maxwell/control_flow.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-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