summaryrefslogtreecommitdiffstats
path: root/src/video_core/macro/macro.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2022-03-05 08:01:13 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2023-01-01 22:43:57 +0100
commitc541559767c3912940ee3d73a122530b3edde9f1 (patch)
tree9924302d2b8e383ce8824ccc219da42417bbc6d4 /src/video_core/macro/macro.cpp
parentMacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect. (diff)
downloadyuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar.gz
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar.bz2
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar.lz
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar.xz
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.tar.zst
yuzu-c541559767c3912940ee3d73a122530b3edde9f1.zip
Diffstat (limited to 'src/video_core/macro/macro.cpp')
-rw-r--r--src/video_core/macro/macro.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/video_core/macro/macro.cpp b/src/video_core/macro/macro.cpp
index 505d81c1e..01dd25f95 100644
--- a/src/video_core/macro/macro.cpp
+++ b/src/video_core/macro/macro.cpp
@@ -13,6 +13,7 @@
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
#include "common/settings.h"
+#include "video_core/engines/maxwell_3d.h"
#include "video_core/macro/macro.h"
#include "video_core/macro/macro_hle.h"
#include "video_core/macro/macro_interpreter.h"
@@ -40,8 +41,8 @@ static void Dump(u64 hash, std::span<const u32> code) {
macro_file.write(reinterpret_cast<const char*>(code.data()), code.size_bytes());
}
-MacroEngine::MacroEngine(Engines::Maxwell3D& maxwell3d)
- : hle_macros{std::make_unique<Tegra::HLEMacro>(maxwell3d)} {}
+MacroEngine::MacroEngine(Engines::Maxwell3D& maxwell3d_)
+ : hle_macros{std::make_unique<Tegra::HLEMacro>(maxwell3d_)}, maxwell3d{maxwell3d_} {}
MacroEngine::~MacroEngine() = default;
@@ -61,6 +62,7 @@ void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) {
if (cache_info.has_hle_program) {
cache_info.hle_program->Execute(parameters, method);
} else {
+ maxwell3d.RefreshParameters();
cache_info.lle_program->Execute(parameters, method);
}
} else {
@@ -106,6 +108,7 @@ void MacroEngine::Execute(u32 method, const std::vector<u32>& parameters) {
cache_info.hle_program = std::move(hle_program);
cache_info.hle_program->Execute(parameters, method);
} else {
+ maxwell3d.RefreshParameters();
cache_info.lle_program->Execute(parameters, method);
}
}