summaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2016-03-26 21:02:15 -0400
committerGravatar bunnei2016-04-13 23:04:47 -0400
commita5a74eb121e0586706c3196d450c088280f996a5 (patch)
tree1ed5030e828e221d2c34596effaa1e680a678391 /src/video_core/shader/shader.cpp
parentshader_jit_x64: Allocate each program independently and persist for emu session. (diff)
downloadyuzu-a5a74eb121e0586706c3196d450c088280f996a5.tar.gz
yuzu-a5a74eb121e0586706c3196d450c088280f996a5.tar.xz
yuzu-a5a74eb121e0586706c3196d450c088280f996a5.zip
shader_jit_x64: Specify shader main offset at runtime.
Diffstat (limited to 'src/video_core/shader/shader.cpp')
-rw-r--r--src/video_core/shader/shader.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp
index e17368a4a..b35413488 100644
--- a/src/video_core/shader/shader.cpp
+++ b/src/video_core/shader/shader.cpp
@@ -36,8 +36,7 @@ void Setup(UnitState<false>& state) {
36#ifdef ARCHITECTURE_x86_64 36#ifdef ARCHITECTURE_x86_64
37 if (VideoCore::g_shader_jit_enabled) { 37 if (VideoCore::g_shader_jit_enabled) {
38 u64 cache_key = (Common::ComputeHash64(&g_state.vs.program_code, sizeof(g_state.vs.program_code)) ^ 38 u64 cache_key = (Common::ComputeHash64(&g_state.vs.program_code, sizeof(g_state.vs.program_code)) ^
39 Common::ComputeHash64(&g_state.vs.swizzle_data, sizeof(g_state.vs.swizzle_data)) ^ 39 Common::ComputeHash64(&g_state.vs.swizzle_data, sizeof(g_state.vs.swizzle_data)));
40 g_state.regs.vs.main_offset);
41 40
42 auto iter = shader_map.find(cache_key); 41 auto iter = shader_map.find(cache_key);
43 if (iter != shader_map.end()) { 42 if (iter != shader_map.end()) {
@@ -98,7 +97,7 @@ OutputVertex Run(UnitState<false>& state, const InputVertex& input, int num_attr
98 97
99#ifdef ARCHITECTURE_x86_64 98#ifdef ARCHITECTURE_x86_64
100 if (VideoCore::g_shader_jit_enabled) 99 if (VideoCore::g_shader_jit_enabled)
101 jit_shader->Run(&state.registers); 100 jit_shader->Run(&state.registers, g_state.regs.vs.main_offset);
102 else 101 else
103 RunInterpreter(state); 102 RunInterpreter(state);
104#else 103#else