diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp index d36d3d78e..161097610 100644 --- a/src/video_core/shader/shader.cpp +++ b/src/video_core/shader/shader.cpp @@ -84,9 +84,9 @@ OutputVertex ShaderSetup::Run(UnitState& state, const InputVertex& input, if (VideoCore::g_shader_jit_enabled) jit_shader->Run(setup, state, config.main_offset); else - RunInterpreter(state); + RunInterpreter(setup, state, config.main_offset); #else - RunInterpreter(state); + RunInterpreter(setup, state, config.main_offset); #endif // ARCHITECTURE_x86_64 // Setup output data @@ -157,7 +157,7 @@ DebugData ShaderSetup::ProduceDebugInfo(const InputVertex& input, int num_ state.conditional_code[0] = false; state.conditional_code[1] = false; - RunInterpreter(state); + RunInterpreter(setup, state, config.main_offset); return state.debug; } diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 3a827d11f..714e8bfd5 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -41,11 +41,11 @@ struct CallStackElement { }; template -void RunInterpreter(UnitState& state) { +void RunInterpreter(const ShaderSetup& setup, UnitState& state, unsigned offset) { // TODO: Is there a maximal size for this? boost::container::static_vector call_stack; - u32 program_counter = g_state.regs.vs.main_offset; + u32 program_counter = offset; const auto& uniforms = g_state.vs.uniforms; const auto& swizzle_data = g_state.vs.swizzle_data; @@ -647,8 +647,8 @@ void RunInterpreter(UnitState& state) { } // Explicit instantiation -template void RunInterpreter(UnitState& state); -template void RunInterpreter(UnitState& state); +template void RunInterpreter(const ShaderSetup& setup, UnitState& state, unsigned offset); +template void RunInterpreter(const ShaderSetup& setup, UnitState& state, unsigned offset); } // namespace diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index 6048cdf3a..bb3ce1c6e 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -11,7 +11,7 @@ namespace Shader { template struct UnitState; template -void RunInterpreter(UnitState& state); +void RunInterpreter(const ShaderSetup& setup, UnitState& state, unsigned offset); } // namespace