From 094ae6fadb57883e25d412443fcae987ddf240ef Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 22 Jul 2015 23:25:30 -0400 Subject: Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders. - Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT. --- src/video_core/shader/shader_jit.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/video_core/shader/shader_jit.cpp (limited to 'src/video_core/shader/shader_jit.cpp') diff --git a/src/video_core/shader/shader_jit.cpp b/src/video_core/shader/shader_jit.cpp new file mode 100644 index 000000000..69fb7f6be --- /dev/null +++ b/src/video_core/shader/shader_jit.cpp @@ -0,0 +1,36 @@ +// Copyright 2015 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "video_core/pica.h" + +#include "shader.h" +#include "shader_jit.h" + +namespace Pica { + +namespace Shader { + +JitShader::JitShader() : jitted(nullptr) { +} + +void JitShader::DoJit(JitCompiler& jit) { + jitted = jit.Compile(); +} + +void JitShader::Run(UnitState& state) { + if (jitted) + jitted(&state); +} + +JitCompiler::JitCompiler() { + AllocCodeSpace(1024 * 1024 * 4); +} + +void JitCompiler::Clear() { + ClearCodeSpace(); +} + +} // namespace Shader + +} // namespace Pica -- cgit v1.2.3