Yuri Kunde Schlesner
300e68c5df
VideoCore: Fix dangling lambda context in shader interpreter
The static meant that after the first execution, these lambda context
would be pointing to a random location on the stack. Fixes a random
crash when using the interpreter.
9 years ago
Jannik Vogel
df3eeea302
Retrieve shader result from new OutputRegisters-type
10 years ago
Jannik Vogel
208a74a882
Use new shader-jit signature for interpreter
10 years ago
Jannik Vogel
b3e96d8e29
Refactor access to state in shader-jit
10 years ago
Jannik Vogel
ad0acfea14
Move program_counter and call_stack from UnitState to interpreter
10 years ago
Jannik Vogel
101eb11369
Move default_attributes into Pica state
10 years ago
Jannik Vogel
acfb5257dd
Turn ShaderSetup into struct
10 years ago
Jannik Vogel
76be1439f6
Pica: Add tc0.w to OutputVertex
10 years ago
Jannik Vogel
22426f3e89
Pica: Replace logic in shader.cpp with loop
10 years ago
Emmanuel Gil Peyrot
c39a267974
VideoCore: Run include-what-you-use and fix most includes.
10 years ago
Yuri Kunde Schlesner
2396b01d5d
Common: Remove section measurement from profiler ( #1731 )
This has been entirely superseded by MicroProfile. The rest of the code
can go when a simpler frametime/FPS meter is added to the GUI.
10 years ago
Henrik Rydgard
c1ee661492
Refactor: Extract VertexLoader from command_processor.cpp.
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
10 years ago
Sam Spilsbury
48693e98fa
shader: Shader size is long uint, not uint.
10 years ago
Sam Spilsbury
164d297c6f
shader: Handle non-CALL opcodes with a break
10 years ago
Sam Spilsbury
3d9c27ec5f
shader: Format string must be provided inline and not as a variable
10 years ago
bunnei
42045d12c2
shader_jit_x64: Rename RuntimeAssert to Compile_Assert.
10 years ago
bunnei
73c082b647
shader_jit_x64.cpp: Rename JitCompiler to JitShader.
10 years ago
bunnei
76f9651a3a
shader_jit_x64: Free memory that's no longer needed after compilation.
10 years ago
bunnei
b6e8a9e52c
shader_jit_x64: Use a sorted vector instead of a set for keeping track of return addresses.
10 years ago
bunnei
276e57fea6
shader_jit_x64: Use CALL/RET instead of JMP for subroutines.
10 years ago
bunnei
0f9796a63e
shader_jit_x64: Separate initialization and code generation for readability.
10 years ago
bunnei
aec7a517ea
shader_jit_x64: Get rid of unnecessary last_program_counter variable.
10 years ago
bunnei
5e6c1ccac7
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
110725828a
shader: Remove unused 'state' argument from 'Setup' function.
10 years ago
bunnei
885208150d
shader_jit_x64: Specify shader main offset at runtime.
10 years ago
bunnei
13385606c3
shader_jit_x64: Allocate each program independently and persist for emu session.
10 years ago
bunnei
35f72f88ae
shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP instructions.
10 years ago
bunnei
88fb200dca
shader_jit_x64: Fix strict memory aliasing issues.
10 years ago
MerryMage
9f9c987924
Common: Remove Common::make_unique, use std::make_unique
10 years ago
Lioncash
7b2af63608
video_core: Don't cast away const
10 years ago
Lioncash
6d9e7e962b
shader_interpreter: use std::inner_product for the dot product
Same thing, less code.
10 years ago
Jannik Vogel
9e29ed3f66
PICA: Fix MAD/MADI encoding
10 years ago
Jannik Vogel
3941f74688
Respect vs output map
10 years ago
bunnei
fcbcf16024
shader_jit_x64: Clear cache after code space fills up.
10 years ago
bunnei
39b59df530
shader_jit_x64: Make assert outputs more useful & cleanup formatting.
10 years ago
bunnei
a5d41a373e
shader: Update log message to use proper log class.
10 years ago
Lioncash
f932c2f4ac
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
141fe87a0f
Add immediate mode vertex submission
10 years ago
bunnei
3c3e328340
pica: Implement decoding of basic fragment lighting components.
- Diffuse
- Distance attenuation
- float16/float20 types
- Vertex Shader 'view' output
10 years ago
Yuri Kunde Schlesner
b4c68589f6
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
d1096d9adc
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
2cd98a45cb
video_core: Reorganize headers
10 years ago
Lioncash
c95206abdd
video_core: Remove unnecessary includes from headers
10 years ago
Lioncash
1d7a9c8752
video_core: Remove unused variables
10 years ago
aroulin
964fa561c5
Shader JIT: Use SCALE constant from emitter
10 years ago
aroulin
f588077bbb
Shader: Fix size_t to int casts of register offsets
10 years ago
aroulin
7019a4eaeb
video_core: Fix format specifiers warnings
11 years ago
aroulin
89a7c9068f
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
36ef773fe7
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
2c48cd4b6c
Shader JIT: Fix float to integer rounding in MOVA
MOVA converts new address register values from floats to integers using truncation
11 years ago