diff options
| author | 2019-08-25 01:08:35 -0300 | |
|---|---|---|
| committer | 2019-09-04 01:55:01 -0300 | |
| commit | 701dedcfad3001c1aecb2d714da1e22cc407a5ea (patch) | |
| tree | 990c44e2e99ad830e5b028f3dae0d08961623e2a /src/video_core/macro_interpreter.h | |
| parent | Merge pull request #2835 from chris062689/master (diff) | |
| download | yuzu-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.h | 8 |
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 | ||
| 30 | private: | 30 | private: |
| 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 |