Przeglądaj źródła

marco_interpreter: write hw value when shadow ram requested

Nguyen Dac Nam 6 lat temu
rodzic
commit
01af036c1f
1 zmienionych plików z 6 dodań i 0 usunięć
  1. 6 0
      src/video_core/macro_interpreter.cpp

+ 6 - 0
src/video_core/macro_interpreter.cpp

@@ -328,6 +328,12 @@ void MacroInterpreter::SetMethodAddress(u32 address) {
 }
 }
 
 
 void MacroInterpreter::Send(u32 value) {
 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});
     maxwell3d.CallMethodFromMME({method_address.address, value});
     // Increment the method address by the method increment.
     // Increment the method address by the method increment.
     method_address.address.Assign(method_address.address.Value() +
     method_address.address.Assign(method_address.address.Value() +