bunnei
60aa72e117
shader_jit_x64: Use a sorted vector instead of a set for keeping track of return addresses.
10 years ago
bunnei
60749f2cda
shader_jit_x64: Use CALL/RET instead of JMP for subroutines.
10 years ago
bunnei
1d45b57939
shader_jit_x64: Separate initialization and code generation for readability.
10 years ago
bunnei
6e0319eec9
shader_jit_x64: Get rid of unnecessary last_program_counter variable.
10 years ago
bunnei
f3afe24594
shader_jit_x64: Execute certain asserts at runtime.
- This is because we compile the full shader code space, and therefore its common to compile malformed instructions.
10 years ago
bunnei
ffcf7ecee9
shader: Remove unused 'state' argument from 'Setup' function.
10 years ago
bunnei
a5a74eb121
shader_jit_x64: Specify shader main offset at runtime.
10 years ago
bunnei
c9d10de644
shader_jit_x64: Allocate each program independently and persist for emu session.
10 years ago
bunnei
4632791a40
shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP instructions.
10 years ago
bunnei
135aec7bea
shader_jit_x64: Fix strict memory aliasing issues.
10 years ago
MerryMage
a06dcfeb61
Common: Remove Common::make_unique, use std::make_unique
10 years ago
Lioncash
63e956cc7a
video_core: Don't cast away const
10 years ago
Lioncash
4d89df8df2
shader_interpreter: use std::inner_product for the dot product
Same thing, less code.
10 years ago
Jannik Vogel
9aad2f29bb
PICA: Fix MAD/MADI encoding
10 years ago
Jannik Vogel
f746a00964
Respect vs output map
10 years ago
bunnei
6efb710b28
shader_jit_x64: Clear cache after code space fills up.
10 years ago
bunnei
c103759cdc
shader_jit_x64: Make assert outputs more useful & cleanup formatting.
10 years ago
bunnei
46f78b7f19
shader: Update log message to use proper log class.
10 years ago
Lioncash
88d604383e
Common: Get rid of alignment macros
The gl rasterizer already uses alignas,
so we may as well move everything over.
10 years ago
Dwayne Slater
6b775034dd
Add immediate mode vertex submission
10 years ago
bunnei
b003075570
pica: Implement decoding of basic fragment lighting components.
- Diffuse
- Distance attenuation
- float16/float20 types
- Vertex Shader 'view' output
10 years ago
Yuri Kunde Schlesner
083d2d89a5
Shader: Implement "invert condition" feature of IFU instruction
If the bit 0 of the JMPU instruction is set, then the jump condition
will be inverted. That is, a jump will happen when the boolean is false
instead of when it is true.
10 years ago
Yuri Kunde Schlesner
c1071c1ff7
Shader JIT: Fix off-by-one error when compiling JMPs
There was a mistake in the JMP code which meant that one instruction at
the destination would be skipped when the jump was taken. This commit
also changes the meaning of the culprit parameter to make it less
confusing and avoid similar mistakes in the future.
10 years ago
Lioncash
aec28ed91e
video_core: Reorganize headers
10 years ago
Lioncash
1fa772393b
video_core: Remove unnecessary includes from headers
10 years ago
Lioncash
526eb33d1e
video_core: Remove unused variables
10 years ago
aroulin
1484a23530
Shader JIT: Use SCALE constant from emitter
10 years ago
aroulin
87e3b9ffc0
Shader: Fix size_t to int casts of register offsets
10 years ago
aroulin
ba998b85a1
video_core: Fix format specifiers warnings
10 years ago
aroulin
179ad35c2e
x64: Proper stack alignment in shader JIT function calls
Import Dolphin stack handling and register saving routines
Also removes the x86 parts from abi files
11 years ago
aroulin
84959be150
Shader JIT: Fix SGE/SGEI NaN behavior
SGE was incorrectly emulated w.r.t. NaN behavior as the CMPSS SSE
instruction was used with NLT
11 years ago
aroulin
f52d8c1a9b
Shader JIT: Fix float to integer rounding in MOVA
MOVA converts new address register values from floats to integers using truncation
11 years ago
archshift
dd0e1061ef
Shader JIT: ifdef out reference to ifdef'd out shader_map
shader_map was only defined on x86 architectures, but was cleared on shutdown
with no ifdef protection. Ifdef this out so non-x86 architectures can be built.
11 years ago
Yuri Kunde Schlesner
0fcabd2b11
Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
11 years ago
Yuri Kunde Schlesner
d8ef20c856
Shader JIT: Tiny micro-optimization in DPH
11 years ago
Yuri Kunde Schlesner
630a850d4d
Shaders: Fix multiplications between 0.0 and inf
The PICA200 semantics for multiplication are so that when multiplying
inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by
IEEE. This is relied upon by games.
Fixes #1024 (missing OoT interface items)
11 years ago
Yuri Kunde Schlesner
082b74fa24
Shaders: Explicitly conform to PICA semantics in MAX/MIN
11 years ago
Yuri Kunde Schlesner
76247170df
Shader JIT: Add name to second scratch register (XMM4)
11 years ago
Lioncash
fa5076eb9b
shader_jit: Replace two MDisp usages with MatR
11 years ago
Yuri Kunde Schlesner
455147ee95
Shader JIT: Fix CMP NaN behavior to match hardware
11 years ago
aroulin
03c5cfead4
Shader: Use std::sqrt for float instead of sqrt
11 years ago
aroulin
fa552f11ef
Shader: RCP and RSQ computes only the 1st component
11 years ago
aroulin
2f1514b904
Shader: implement DPH/DPHI in JIT
11 years ago
aroulin
2e7cf2f6cf
Shader: implement DPH/DPHI in interpreter
Tests revealed that the component with w=1 is
SRC1 and not SRC2, it is now fixed on 3dbrew.
11 years ago
aroulin
f3e8f42718
Shader: implement SGE, SGEI and SLT in JIT
11 years ago
aroulin
863730f6a7
Shader: implement SGE, SGEI in interpreter
11 years ago
aroulin
2f9eb98f03
Shader: Save caller-saved registers in JIT before a CALL
11 years ago
aroulin
7d3a6016d6
Shader: implement EX2 and LG2 in JIT
11 years ago
aroulin
638e47c04d
Shader: implement EX2 and LG2 in interpreter
11 years ago
Tony Wasserka
96820ae42a
Build fix for Debug configurations.
11 years ago