summaryrefslogtreecommitdiff
path: root/src/video_core/macro_interpreter.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-08-25 01:08:35 -0300
committerGravatar ReinUsesLisp2019-09-04 01:55:01 -0300
commit701dedcfad3001c1aecb2d714da1e22cc407a5ea (patch)
tree990c44e2e99ad830e5b028f3dae0d08961623e2a /src/video_core/macro_interpreter.h
parentMerge pull request #2835 from chris062689/master (diff)
downloadyuzu-701dedcfad3001c1aecb2d714da1e22cc407a5ea.tar.gz
yuzu-701dedcfad3001c1aecb2d714da1e22cc407a5ea.tar.xz
yuzu-701dedcfad3001c1aecb2d714da1e22cc407a5ea.zip
maxwell_3d: Avoid moving macro_params
Diffstat (limited to 'src/video_core/macro_interpreter.h')
-rw-r--r--src/video_core/macro_interpreter.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/video_core/macro_interpreter.h b/src/video_core/macro_interpreter.h
index cde360288..76b6a895b 100644
--- a/src/video_core/macro_interpreter.h
+++ b/src/video_core/macro_interpreter.h
@@ -25,7 +25,7 @@ public:
25 * @param offset Offset to start execution at. 25 * @param offset Offset to start execution at.
26 * @param parameters The parameters of the macro. 26 * @param parameters The parameters of the macro.
27 */ 27 */
28 void Execute(u32 offset, std::vector<u32> parameters); 28 void Execute(u32 offset, std::size_t num_parameters, const u32* parameters);
29 29
30private: 30private:
31 enum class Operation : u32 { 31 enum class Operation : u32 {
@@ -162,10 +162,12 @@ private:
162 MethodAddress method_address = {}; 162 MethodAddress method_address = {};
163 163
164 /// Input parameters of the current macro. 164 /// Input parameters of the current macro.
165 std::vector<u32> parameters; 165 std::unique_ptr<u32[]> parameters;
166 std::size_t num_parameters = 0;
167 std::size_t parameters_capacity = 0;
166 /// Index of the next parameter that will be fetched by the 'parm' instruction. 168 /// Index of the next parameter that will be fetched by the 'parm' instruction.
167 u32 next_parameter_index = 0; 169 u32 next_parameter_index = 0;
168 170
169 bool carry_flag{}; 171 bool carry_flag = false;
170}; 172};
171} // namespace Tegra 173} // namespace Tegra