aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader_jit_x64.cpp
AgeCommit message (Collapse)Author
2018-01-12Remove references to PICA and rasterizers in video_coreJames Rowe
2017-05-11Pica: Set program code / swizzle data limit to 4096Jannik Vogel
One of the later commits will enable writing to GS regs. It turns out that on startup, most games will write 4096 GS program words. The current limit of 1024 would hence result in 3072 (4096 - 1024) error messages: ``` HW.GPU <Error> video_core/shader/shader.cpp:WriteProgramCode:229: Invalid GS program offset 1024 ``` New constants have been introduced to represent these limits. The swizzle data size has also been raised. This matches the given field sizes of [GPUREG_SH_OPDESCS_INDEX](https://3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_OPDESCS_INDEX) and [GPUREG_SH_CODETRANSFER_INDEX](https://www.3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_CODETRANSFER_INDEX) (12 bit = [0; 4095]).
2017-01-25VideoCore/Shader: Move entry_point to SetupBatchYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetupYuri Kunde Schlesner
2017-01-25shader_jit_x64: Don't read program from global stateYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngineYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}Yuri Kunde Schlesner
2016-12-16VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner
2016-12-16Remove unnecessary castYuri Kunde Schlesner
2016-12-15VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffsetYuri Kunde Schlesner
2016-12-15shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexingYuri Kunde Schlesner
2016-12-14shader_jit_x64: Use Reg32 for LOOP* registers, eliminating castsYuri Kunde Schlesner
2016-12-14VideoCore: Convert x64 shader JIT to use Xbyak for assemblyYuri Kunde Schlesner
2016-12-04shader_jit: Fix non-SSE4.1 path where FLR would not truncateJannik Vogel
2016-12-02shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shiftedJannik Vogel
2016-09-21Remove special rules for Windows.h and library includesYuri Kunde Schlesner
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-05-13Refactor access to state in shader-jitJannik Vogel
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot
2016-04-25shader: Shader size is long uint, not uint.Sam Spilsbury
2016-04-25shader: Handle non-CALL opcodes with a breakSam Spilsbury
2016-04-24shader: Format string must be provided inline and not as a variableSam Spilsbury
2016-04-13shader_jit_x64: Rename RuntimeAssert to Compile_Assert.bunnei
2016-04-13shader_jit_x64.cpp: Rename JitCompiler to JitShader.bunnei
2016-04-13shader_jit_x64: Free memory that's no longer needed after compilation.bunnei
2016-04-13shader_jit_x64: Use a sorted vector instead of a set for keeping track of ↵bunnei
return addresses.
2016-04-13shader_jit_x64: Use CALL/RET instead of JMP for subroutines.bunnei
2016-04-13shader_jit_x64: Separate initialization and code generation for readability.bunnei
2016-04-13shader_jit_x64: Get rid of unnecessary last_program_counter variable.bunnei
2016-04-13shader_jit_x64: Execute certain asserts at runtime.bunnei
- This is because we compile the full shader code space, and therefore its common to compile malformed instructions.
2016-04-13shader_jit_x64: Specify shader main offset at runtime.bunnei
2016-04-13shader_jit_x64: Allocate each program independently and persist for emu session.bunnei
2016-04-13shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP ↵bunnei
instructions.
2016-04-13shader_jit_x64: Fix strict memory aliasing issues.bunnei
2016-03-16Merge pull request #1503 from bunnei/clear-jit-cachebunnei
Clear JIT cache
2016-03-15PICA: Fix MAD/MADI encodingJannik Vogel
2016-03-12shader_jit_x64: Clear cache after code space fills up.bunnei
2016-03-12shader_jit_x64: Make assert outputs more useful & cleanup formatting.bunnei
2016-03-02Add immediate mode vertex submissionDwayne Slater
2016-01-27Merge pull request #1367 from yuriks/jit-jmpbunnei
Shader JIT: Fix off-by-one error when compiling JMPs
2016-01-24Shader: Implement "invert condition" feature of IFU instructionYuri Kunde Schlesner
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.
2016-01-24Shader JIT: Fix off-by-one error when compiling JMPsYuri Kunde Schlesner
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.
2015-09-10video_core: Remove unused variablesLioncash
2015-09-07Shader JIT: Use SCALE constant from emitteraroulin
2015-09-07Shader: Fix size_t to int casts of register offsetsaroulin
2015-09-02Merge pull request #1088 from aroulin/x64-emitter-abi-callbunnei
x64: Proper stack alignment in shader JIT function calls