Yuri Kunde Schlesner
cb89a67a80
Merge pull request #2476 from yuriks/shader-refactor3
...
Oh No! More shader changes!
2017-02-04 13:02:48 -08:00
wwylele
2bc786be73
ShaderJIT: add 16 dummy bytes at the bottom of the stack
2017-02-03 14:53:38 +02:00
Weiyi Wang
6580180759
Common/x64: remove legacy emitter and abi ( #2504 )
...
These are not used any more since we moved shader JIT to xbyak.
2017-01-31 01:06:42 -08:00
Merry
6b2f12869e
shader_jit_x64_compiler: esi and edi should be persistent ( #2500 )
2017-01-31 00:38:31 -08:00
Yuri Kunde Schlesner
1a3c583a0f
VideoCore: Extract swrast-specific data from OutputVertex
2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner
bf1614c693
VideoCore/Shader: Clean up OutputVertex::FromAttributeBuffer
...
This also fixes a long-standing but neverthless harmless memory
corruption bug, whech the padding of the OutputVertex struct would get
corrupted by unused attributes.
2017-01-29 21:31:38 -08:00
Yuri Kunde Schlesner
dcdaff5ecc
VideoCore: Split shader output writing from semantic loading
2017-01-29 21:31:37 -08:00
Yuri Kunde Schlesner
067b9b54bd
VideoCore: Consistently use shader configuration to load attributes
2017-01-29 21:31:37 -08:00
Yuri Kunde Schlesner
a4a4b6408c
VideoCore: Rename some types to more accurate names
2017-01-29 21:31:36 -08:00
Yuri Kunde Schlesner
ab0b74b0f3
VideoCore/Shader: Move entry_point to SetupBatch
2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner
1994f1a6f2
VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup
2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner
c863fc36ce
Shader: Remove OutputRegisters struct
2017-01-25 18:53:25 -08:00
Yuri Kunde Schlesner
b0ec4da3b0
Shader: Initialize conditional_code in interpreter
...
This doesn't belong in LoadInputVertex because it also happens for
non-VS invocations. Since it's not used by the JIT it seems adequate to
initialize it in the interpreter which is the only thing that cares
about them.
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner
e500250c97
Shader: Don't read ShaderSetup from global state
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner
5b046f49c9
shader_jit_x64: Don't read program from global state
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner
46fc50931f
VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner
931a2b0ca4
VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines
2017-01-25 18:53:24 -08:00
Yuri Kunde Schlesner
88b533871e
VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner
73e7bc2592
VideoCore/Shader: Split shader uniform state and shader engine
...
Currently there's only a single dummy implementation, which will be
split in a following commit.
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner
f887eccd74
VideoCore/Shader: Add constness to methods
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner
03d2b6aa89
VideoCore/Shader: Use only entry_point as ShaderSetup param
...
This removes all implicit dependency of ShaderState on global PICA
state.
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner
d6533112fe
VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup
2017-01-25 18:53:23 -08:00
Yuri Kunde Schlesner
2771bde17a
VideoCore/Shader: Extract input vertex loading code into function
2017-01-25 18:53:20 -08:00
Kloen
55c137a3ab
video_core: fix shader.cpp signed / unsigned warning
2017-01-23 16:53:31 +01:00
Jonathan Hao
1df720ed08
Fix some warnings ( #2399 )
2017-01-04 13:48:29 -03:00
Yuri Kunde Schlesner
7d4827f520
VideoCore/Shader: Extract DebugData out from UnitState
2016-12-16 00:16:25 -08:00
Yuri Kunde Schlesner
e847c70fb6
Remove unnecessary cast
2016-12-16 00:15:55 -08:00
Yuri Kunde Schlesner
d94a04ced7
VideoCore/Shader: Extract evaluate_condition lambda to function scope
2016-12-16 00:15:51 -08:00
Yuri Kunde Schlesner
fc3d8c77c8
VideoCore/Shader: Extract call lambda up a scope and remove unused param
2016-12-15 23:08:05 -08:00
Yuri Kunde Schlesner
4a688688b1
VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffset
2016-12-15 23:08:05 -08:00
Yuri Kunde Schlesner
ec7b3940b0
VideoCore/Shader: Move DebugData to a separate file
2016-12-15 23:08:05 -08:00
Yuri Kunde Schlesner
50a3f434a0
shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing
2016-12-15 10:02:42 -08:00
Yuri Kunde Schlesner
d8fc6ee91b
VideoCore: Eliminate an unnecessary copy in the drawcall loop
2016-12-14 21:00:29 -08:00
Yuri Kunde Schlesner
8ec064951f
shader_jit_x64: Use Reg32 for LOOP* registers, eliminating casts
2016-12-14 20:06:09 -08:00
Yuri Kunde Schlesner
2d892f845c
VideoCore: Convert x64 shader JIT to use Xbyak for assembly
2016-12-14 20:06:08 -08:00
Jannik Vogel
3020767914
shader_jit: Fix non-SSE4.1 path where FLR would not truncate
2016-12-04 04:26:33 +01:00
Jannik Vogel
62c76b4207
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
2016-12-02 04:33:15 +01:00
Yuri Kunde Schlesner
d4bcba2ca1
VideoCore: Shader interpreter cleanups
2016-09-29 21:15:49 -07:00
Yuri Kunde Schlesner
7872ec7cc3
VideoCore: Fix out-of-bounds read in ShaderSetup::ProduceDebugInfo
...
As far as I can tell, memset was replaced by a fill without correcting
the parameter type, causing an out-of-bounds array read in the Vec4
constructor.
2016-09-29 21:11:36 -07:00
Yuri Kunde Schlesner
32bddfa1f5
Remove special rules for Windows.h and library includes
2016-09-21 00:16:33 -07:00
Yuri Kunde Schlesner
fa5d9d8266
Use negative priorities to avoid special-casing the self-include
2016-09-21 00:15:56 -07:00
Emmanuel Gil Peyrot
1138ec0d49
Remove empty newlines in #include blocks.
...
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Yuri Kunde Schlesner
1e4a5da9f4
Manually tweak source formatting and then re-run clang-format
2016-09-18 21:14:25 -07:00
Emmanuel Gil Peyrot
628ed4376a
Sources: Run clang-format on everything.
2016-09-18 09:38:01 +09:00
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.
2016-09-15 22:15:11 -07:00
Jannik Vogel
df3eeea302
Retrieve shader result from new OutputRegisters-type
2016-05-16 18:55:51 +02:00
Jannik Vogel
208a74a882
Use new shader-jit signature for interpreter
2016-05-13 09:41:55 +02:00
Jannik Vogel
b3e96d8e29
Refactor access to state in shader-jit
2016-05-13 09:20:14 +02:00
Jannik Vogel
ad0acfea14
Move program_counter and call_stack from UnitState to interpreter
2016-05-12 19:05:42 +02:00
Jannik Vogel
101eb11369
Move default_attributes into Pica state
2016-05-12 19:05:41 +02:00