summaryrefslogtreecommitdiffstats
path: root/src/video_core/macro
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-05-10 23:07:21 +0200
committerLiam <byteslice@airmail.cc>2022-05-10 23:07:21 +0200
commite158951695f6ed5626adc0685431a78c5a13867a (patch)
treebab8f3fc2bec9934968c7a8fd09ead2b93d5a1e6 /src/video_core/macro
parentMerge pull request #8320 from liamwhite/macro-dump (diff)
downloadyuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.gz
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.bz2
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.lz
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.xz
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.tar.zst
yuzu-e158951695f6ed5626adc0685431a78c5a13867a.zip
Diffstat (limited to 'src/video_core/macro')
-rw-r--r--src/video_core/macro/macro.cpp5
-rw-r--r--src/video_core/macro/macro.h3
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) {
uploaded_macro_code[method].push_back(data);
}
+void MacroEngine::ClearCode(u32 method) {
+ macro_cache.erase(method);
+ uploaded_macro_code.erase(method);
+}
+
void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) {
auto compiled_macro = macro_cache.find(method);
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:
// Store the uploaded macro code to compile them when they're called.
void AddCode(u32 method, u32 data);
+ // Clear the code associated with a method.
+ void ClearCode(u32 method);
+
// Compiles the macro if its not in the cache, and executes the compiled macro
void Execute(u32 method, const std::vector<u32>& parameters);