1
0
Fork 0
forked from suyu/suyu

Use new shader-jit signature for interpreter

This commit is contained in:
Jannik Vogel 2016-05-13 09:38:40 +02:00
parent 4e01e9ffc5
commit 1308afe2c2
3 changed files with 8 additions and 8 deletions

View file

@ -84,9 +84,9 @@ OutputVertex ShaderSetup::Run(UnitState<false>& 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<true> 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;
}

View file

@ -41,11 +41,11 @@ struct CallStackElement {
};
template<bool Debug>
void RunInterpreter(UnitState<Debug>& state) {
void RunInterpreter(const ShaderSetup& setup, UnitState<Debug>& state, unsigned offset) {
// TODO: Is there a maximal size for this?
boost::container::static_vector<CallStackElement, 16> 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<Debug>& state) {
}
// Explicit instantiation
template void RunInterpreter(UnitState<false>& state);
template void RunInterpreter(UnitState<true>& state);
template void RunInterpreter(const ShaderSetup& setup, UnitState<false>& state, unsigned offset);
template void RunInterpreter(const ShaderSetup& setup, UnitState<true>& state, unsigned offset);
} // namespace

View file

@ -11,7 +11,7 @@ namespace Shader {
template <bool Debug> struct UnitState;
template<bool Debug>
void RunInterpreter(UnitState<Debug>& state);
void RunInterpreter(const ShaderSetup& setup, UnitState<Debug>& state, unsigned offset);
} // namespace