From 01af036c1f653e3e25ab270d3b2a3e33849da0fd Mon Sep 17 00:00:00 2001 From: Nguyen Dac Nam Date: Sun, 22 Mar 2020 10:38:24 +0700 Subject: marco_interpreter: write hw value when shadow ram requested --- src/video_core/macro_interpreter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/video_core') diff --git a/src/video_core/macro_interpreter.cpp b/src/video_core/macro_interpreter.cpp index 42031d80a..181310606 100644 --- a/src/video_core/macro_interpreter.cpp +++ b/src/video_core/macro_interpreter.cpp @@ -328,6 +328,12 @@ void MacroInterpreter::SetMethodAddress(u32 address) { } void MacroInterpreter::Send(u32 value) { + // Use the tracked value in shadow_regs when requested. + if (method_address.address < Engines::Maxwell3D::Regs::NUM_REGS && + maxwell3d.shadow_state.shadow_ram_control == + Engines::Maxwell3D::Regs::ShadowRamControl::Replay) { + value = maxwell3d.shadow_state.reg_array[method_address.address]; + } maxwell3d.CallMethodFromMME({method_address.address, value}); // Increment the method address by the method increment. method_address.address.Assign(method_address.address.Value() + -- cgit v1.2.3