diff options
| author | 2022-05-10 17:07:21 -0400 | |
|---|---|---|
| committer | 2022-05-10 17:07:21 -0400 | |
| commit | e158951695f6ed5626adc0685431a78c5a13867a (patch) | |
| tree | bab8f3fc2bec9934968c7a8fd09ead2b93d5a1e6 /src/video_core/macro | |
| parent | Merge pull request #8320 from liamwhite/macro-dump (diff) | |
| download | yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.gz yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.xz yuzu-e158951695f6ed5626adc0685431a78c5a13867a.zip | |
video_core/macro: clear code on upload address assignment
Diffstat (limited to 'src/video_core/macro')
| -rw-r--r-- | src/video_core/macro/macro.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/macro/macro.h | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/macro/macro.cpp b/src/video_core/macro/macro.cpp index 86393c49c..e7279efcd 100644 --- a/src/video_core/macro/macro.cpp +++ b/src/video_core/macro/macro.cpp | |||
| @@ -45,6 +45,11 @@ void MacroEngine::AddCode(u32 method, u32 data) { | |||
| 45 | uploaded_macro_code[method].push_back(data); | 45 | uploaded_macro_code[method].push_back(data); |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | void MacroEngine::ClearCode(u32 method) { | ||
| 49 | macro_cache.erase(method); | ||
| 50 | uploaded_macro_code.erase(method); | ||
| 51 | } | ||
| 52 | |||
| 48 | void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) { | 53 | void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) { |
| 49 | auto compiled_macro = macro_cache.find(method); | 54 | auto compiled_macro = macro_cache.find(method); |
| 50 | if (compiled_macro != macro_cache.end()) { | 55 | if (compiled_macro != macro_cache.end()) { |
diff --git a/src/video_core/macro/macro.h b/src/video_core/macro/macro.h index 7e12c16dc..07d97ba39 100644 --- a/src/video_core/macro/macro.h +++ b/src/video_core/macro/macro.h | |||
| @@ -117,6 +117,9 @@ public: | |||
| 117 | // Store the uploaded macro code to compile them when they're called. | 117 | // Store the uploaded macro code to compile them when they're called. |
| 118 | void AddCode(u32 method, u32 data); | 118 | void AddCode(u32 method, u32 data); |
| 119 | 119 | ||
| 120 | // Clear the code associated with a method. | ||
| 121 | void ClearCode(u32 method); | ||
| 122 | |||
| 120 | // Compiles the macro if its not in the cache, and executes the compiled macro | 123 | // Compiles the macro if its not in the cache, and executes the compiled macro |
| 121 | void Execute(u32 method, const std::vector<u32>& parameters); | 124 | void Execute(u32 method, const std::vector<u32>& parameters); |
| 122 | 125 | ||