f6715f98f5
Stop using reserved operator names (and/or/xor) with Xbyak
...
Also has the Dynarmic upgrade with the same change
2017-06-17 12:20:22 -07:00
925724c990
Pica: Set program code / swizzle data limit to 4096
...
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-05-11 15:01:27 +02:00
0cb52ee74a
Doxygen: Amend minor issues ( #2593 )
...
Corrects a few issues with regards to Doxygen documentation, for example:
- Incorrect parameter referencing.
- Missing @param tags.
- Typos in @param tags.
and a few minor other issues.
2017-02-26 17:58:51 -08:00
e10b11a5d0
video_core/shader: Document sanitized MUL operation
2017-02-12 13:29:14 -08:00
443bb3d522
Merge pull request #2550 from yuriks/pica-refactor2
...
Small VideoCore cleanups
2017-02-12 12:33:26 -08:00
e2fa1ca5e1
video_core: Fix benign out-of-bounds indexing of array ( #2553 )
...
The resulting pointer wasn't written to unless the index was verified as
valid, but that's still UB and triggered debug checks in MSVC.
Reported by garrettboast on IRC
2017-02-10 20:51:09 -08:00
60fc0b086f
VideoCore: Split regs.h inclusions
2017-02-09 00:04:24 -08:00
5759d94b5c
VideoCore: Move Regs to its own file
2017-02-04 13:59:12 -08:00
f7c7f422c6
VideoCore: Split shader regs from Regs struct
2017-02-04 13:59:11 -08:00
000e78144c
VideoCore: Split rasterizer regs from Regs struct
2017-02-04 13:08:47 -08:00
97e06b0a0d
Merge pull request #2476 from yuriks/shader-refactor3
...
Oh No! More shader changes!
2017-02-04 13:02:48 -08:00
6dc1d6e568
ShaderJIT: add 16 dummy bytes at the bottom of the stack
2017-02-03 14:53:38 +02:00
0b9c59ff22
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
f7e96dc068
shader_jit_x64_compiler: esi and edi should be persistent ( #2500 )
2017-01-31 00:38:31 -08:00
dcdffabfe6
VideoCore: Extract swrast-specific data from OutputVertex
2017-01-29 21:31:38 -08:00
8ed9f9d49f
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
92bf5c88e6
VideoCore: Split shader output writing from semantic loading
2017-01-29 21:31:37 -08:00
335df895b9
VideoCore: Consistently use shader configuration to load attributes
2017-01-29 21:31:37 -08:00
ab6954e942
VideoCore: Rename some types to more accurate names
2017-01-29 21:31:36 -08:00
0e9081b973
VideoCore/Shader: Move entry_point to SetupBatch
2017-01-25 18:53:25 -08:00
0f64274145
VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup
2017-01-25 18:53:25 -08:00
6fa3687afc
Shader: Remove OutputRegisters struct
2017-01-25 18:53:25 -08:00
9ea5eacf91
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
1a2acc3baa
Shader: Don't read ShaderSetup from global state
2017-01-25 18:53:24 -08:00
fa4ac279a7
shader_jit_x64: Don't read program from global state
2017-01-25 18:53:24 -08:00
ade7ed7c5f
VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine
2017-01-25 18:53:24 -08:00
114d6b2f97
VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines
2017-01-25 18:53:24 -08:00
8eefc62833
VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}
2017-01-25 18:53:23 -08:00
dd4a1672a7
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
bd82cffd0b
VideoCore/Shader: Add constness to methods
2017-01-25 18:53:23 -08:00
1e1f939817
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
e3caf669b0
VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup
2017-01-25 18:53:23 -08:00
34d581f2dc
VideoCore/Shader: Extract input vertex loading code into function
2017-01-25 18:53:20 -08:00
5cc94c17f6
video_core: fix shader.cpp signed / unsigned warning
2017-01-23 16:53:31 +01:00
c18cb1b192
Fix some warnings ( #2399 )
2017-01-04 13:48:29 -03:00
c135317de1
VideoCore/Shader: Extract DebugData out from UnitState
2016-12-16 00:16:25 -08:00
6e7e767645
Remove unnecessary cast
2016-12-16 00:15:55 -08:00
b5e3599704
VideoCore/Shader: Extract evaluate_condition lambda to function scope
2016-12-16 00:15:51 -08:00
960578f4e1
VideoCore/Shader: Extract call lambda up a scope and remove unused param
2016-12-15 23:08:05 -08:00
e4e962bc7c
VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffset
2016-12-15 23:08:05 -08:00
d27cb1dedc
VideoCore/Shader: Move DebugData to a separate file
2016-12-15 23:08:05 -08:00
fb9e856b91
shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing
2016-12-15 10:02:42 -08:00
f00ada3363
VideoCore: Eliminate an unnecessary copy in the drawcall loop
2016-12-14 21:00:29 -08:00
5ff3206207
shader_jit_x64: Use Reg32 for LOOP* registers, eliminating casts
2016-12-14 20:06:09 -08:00
f4e98ecf3f
VideoCore: Convert x64 shader JIT to use Xbyak for assembly
2016-12-14 20:06:08 -08:00
2d8097eecc
shader_jit: Fix non-SSE4.1 path where FLR would not truncate
2016-12-04 04:26:33 +01:00
e2cb7d7833
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
2016-12-02 04:33:15 +01:00
d9a904f9cb
VideoCore: Shader interpreter cleanups
2016-09-29 21:15:49 -07:00
26b68313b9
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
f120e78b56
Remove special rules for Windows.h and library includes
2016-09-21 00:16:33 -07:00