diff options
| author | bunnei <bunneidev@gmail.com> | 2015-07-22 23:25:30 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2015-08-15 18:01:07 -0400 |
| commit | 094ae6fadb57883e25d412443fcae987ddf240ef (patch) | |
| tree | 8817c9b0672bd02be3fa32a02f3f126f0ecfb664 /src/video_core/shader/shader_jit.cpp | |
| parent | d67e2f78b77c0739caa8c6a915685aa8961a519c (diff) | |
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.
Diffstat (limited to 'src/video_core/shader/shader_jit.cpp')
| -rw-r--r-- | src/video_core/shader/shader_jit.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
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 |
