|
|
|
@ -35,7 +35,13 @@ static std::unordered_map<u64, std::unique_ptr<JitShader>> shader_map;
|
|
|
|
|
static const JitShader* jit_shader;
|
|
|
|
|
#endif // ARCHITECTURE_x86_64
|
|
|
|
|
|
|
|
|
|
void Setup() {
|
|
|
|
|
void ClearCache() {
|
|
|
|
|
#ifdef ARCHITECTURE_x86_64
|
|
|
|
|
shader_map.clear();
|
|
|
|
|
#endif // ARCHITECTURE_x86_64
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderSetup::Setup() {
|
|
|
|
|
#ifdef ARCHITECTURE_x86_64
|
|
|
|
|
if (VideoCore::g_shader_jit_enabled) {
|
|
|
|
|
u64 cache_key = (Common::ComputeHash64(&g_state.vs.program_code, sizeof(g_state.vs.program_code)) ^
|
|
|
|
@ -54,18 +60,12 @@ void Setup() {
|
|
|
|
|
#endif // ARCHITECTURE_x86_64
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shutdown() {
|
|
|
|
|
#ifdef ARCHITECTURE_x86_64
|
|
|
|
|
shader_map.clear();
|
|
|
|
|
#endif // ARCHITECTURE_x86_64
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MICROPROFILE_DEFINE(GPU_VertexShader, "GPU", "Vertex Shader", MP_RGB(50, 50, 240));
|
|
|
|
|
MICROPROFILE_DEFINE(GPU_Shader, "GPU", "Shader", MP_RGB(50, 50, 240));
|
|
|
|
|
|
|
|
|
|
OutputVertex Run(UnitState<false>& state, const InputVertex& input, int num_attributes) {
|
|
|
|
|
OutputVertex ShaderSetup::Run(UnitState<false>& state, const InputVertex& input, int num_attributes) {
|
|
|
|
|
auto& config = g_state.regs.vs;
|
|
|
|
|
|
|
|
|
|
MICROPROFILE_SCOPE(GPU_VertexShader);
|
|
|
|
|
MICROPROFILE_SCOPE(GPU_Shader);
|
|
|
|
|
|
|
|
|
|
state.program_counter = config.main_offset;
|
|
|
|
|
state.debug.max_offset = 0;
|
|
|
|
@ -140,7 +140,7 @@ OutputVertex Run(UnitState<false>& state, const InputVertex& input, int num_attr
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DebugData<true> ProduceDebugInfo(const InputVertex& input, int num_attributes, const Regs::ShaderConfig& config, const ShaderSetup& setup) {
|
|
|
|
|
DebugData<true> ShaderSetup::ProduceDebugInfo(const InputVertex& input, int num_attributes, const Regs::ShaderConfig& config, const ShaderSetup& setup) {
|
|
|
|
|
UnitState<true> state;
|
|
|
|
|
|
|
|
|
|
state.program_counter = config.main_offset;
|
|
|
|
|