Jannik Vogel
ba722be2ac
Pica: Write GS registers
...
This adds the handlers for the geometry shader register writes which will call the functions from the previous commit to update registers for the GS.
2017-05-12 16:22:37 +02:00
Jannik Vogel
3fd3775d35
Pica: Write shader registers in functions
...
The commit after this one adds GS register writes, so this moves the VS handlers into functions so they can be re-used and extended more easily.
2017-05-12 16:22:37 +02:00
Jannik Vogel
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
Jannik Vogel
1b397c77fa
Pica/Regs: Correct bit width for blend-equations
2017-04-08 18:33:17 +02:00
Jannik Vogel and Yuri Kunde Schlesner
e594e63bb5
OpenGL: Check if uniform block exists before updating it ( #2581 )
2017-02-18 11:46:26 -08:00
Jannik Vogel
6ed4206f87
Minor cleanup in GLSL code
2016-12-25 21:38:10 +01:00
Jannik Vogel
88f409aec9
Offset lighting LUT samples correctly
2016-12-25 21:37:26 +01:00
Jannik Vogel
fc4591fa49
ASSERT that shader was linked successfully
2016-12-05 21:11:24 +01:00
Jannik Vogel
4088afe23c
Report shader uniform block size in case of mismatch
2016-12-05 21:11:24 +01:00
Jannik Vogel
0edc986861
Print broken shader code to log
2016-12-05 21:11:24 +01:00
Jannik Vogel
0aee903ada
gdbstub: Remove unused include
2016-12-05 19:09:16 +01:00
Jannik Vogel
d2c39bdb29
Unify Windows ICON resource name
2016-12-05 19:09:16 +01:00
Jannik Vogel
45d941d62e
Support mingw cross-compile
2016-12-05 19:09:16 +01:00
Jannik Vogel
2d8097eecc
shader_jit: Fix non-SSE4.1 path where FLR would not truncate
2016-12-04 04:26:33 +01:00
Jannik Vogel
e2cb7d7833
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
2016-12-02 04:33:15 +01:00
Jannik Vogel
8efeb6ee2b
Remove unused version.h
2016-12-01 16:38:46 +01:00
Jannik Vogel
7a79fa7a90
OpenGL: Avoid error on unsupported lighting LUT
2016-08-30 19:30:26 +02:00
Jannik Vogel
ac6853c585
AppVeyor: Cache chocolatey packages
2016-08-29 15:19:50 +02:00
Jannik Vogel
ede028fe4d
Add GPL license.txt and README.md to builds
2016-06-21 14:19:46 +02:00
Jannik Vogel
a12571c709
OpenGL: Implement fog
2016-06-07 00:06:28 +02:00
Jannik Vogel
ebee2513a9
Rasterizer: Implement fog
2016-06-07 00:06:28 +02:00
Jannik Vogel
57855a1701
Pica: Add fog state
2016-06-07 00:06:28 +02:00
Jannik Vogel
c900c092e3
OpenGL: Avoid undefined behaviour for UNIFORM_BLOCK_DATA_SIZE
2016-06-07 00:06:28 +02:00
Jannik Vogel
6a28f46844
OpenGL: Set shader_dirty on lighting changes
2016-05-23 23:28:13 +02:00
Jannik Vogel
30a01584f2
Pica: Name LightSrc.config register
2016-05-23 23:28:13 +02:00
Jannik Vogel
8e905b3af6
Pica: Name lighting.config0 and .config1 registers
2016-05-23 23:28:13 +02:00
Jannik Vogel
068bd6f728
OpenGL: Use uniforms for dist_atten_bias and dist_atten_scale
2016-05-23 23:28:13 +02:00
Jannik Vogel
d77279a415
Refactor Tev stage dumper
2016-05-21 03:11:27 +02:00
Jannik Vogel
324c21c922
Extend Tev stage dumper
2016-05-21 03:08:59 +02:00
Jannik Vogel
edf30d84cc
Remove exceptions parameter from normaliseround VFP functions
2016-05-18 16:28:13 +02:00
Jannik Vogel
693cca8f1f
Fix exception propagation for VFP single precision
2016-05-18 15:24:42 +02:00
Jannik Vogel
7dde13f875
Fix exception propagation for VFP double precision
2016-05-18 15:24:42 +02:00
Jannik Vogel
3a45eacb16
Fix read-after-write in SMUAD, SMLAD, SMUSD, SMLSD
2016-05-18 14:03:02 +02:00
Jannik Vogel
af37dd0d52
Set fpscr for new threads
2016-05-17 08:59:52 +02:00
Jannik Vogel
ff0fa86b17
Retrieve shader result from new OutputRegisters-type
2016-05-16 18:55:51 +02:00
Jannik Vogel
501d0bc5ed
Fix ftoi behaviour
2016-05-16 15:00:45 +02:00
Jannik Vogel
6fe0cb671d
Respect fpscr in ftoiz
2016-05-16 15:00:45 +02:00
Jannik Vogel
1643786c04
Disable VFP3 instructions
2016-05-16 15:00:45 +02:00
Jannik Vogel
5389dedfa1
OpenGL: Only update depth uniforms if the depth changed
2016-05-14 10:31:18 +02:00
Jannik Vogel
f8a11a664f
OpenGL: value-initialize variables which cause uninitialised access otherwise
2016-05-14 10:16:11 +02:00
Jannik Vogel
1308afe2c2
Use new shader-jit signature for interpreter
2016-05-13 09:41:55 +02:00
Jannik Vogel
4e01e9ffc5
Refactor access to state in shader-jit
2016-05-13 09:20:14 +02:00
Jannik Vogel
5864cb7e00
OpenGL: Support blend equation
2016-05-12 22:57:40 +02:00
Jannik Vogel
7e756faaba
Move program_counter and call_stack from UnitState to interpreter
2016-05-12 19:05:42 +02:00
Jannik Vogel
6c6d99ca51
Move default_attributes into Pica state
2016-05-12 19:05:41 +02:00
Jannik Vogel
ae7a82fa1c
Turn ShaderSetup into struct
2016-05-11 23:48:24 +02:00
Jannik Vogel
5a7306d6df
OpenGL: Implement texture type 3
2016-05-11 08:07:37 +02:00
Jannik Vogel
4311297eb1
Rasterizer: Implement texture type 3
2016-05-11 08:07:36 +02:00
Jannik Vogel
2f8e8e1455
Pica: Add tc0.w to OutputVertex
2016-05-11 08:07:36 +02:00
Jannik Vogel
9cfebb9334
Pica: Add texture type to state
2016-05-11 08:07:36 +02:00
Jannik Vogel
fc9cc21024
OpenGL: Implement W-Buffers and fix depth-mapping
2016-05-10 08:58:52 +02:00
Jannik Vogel
4c98113b57
Pica: Implement W-Buffer in SW rasterizer
2016-05-10 08:58:52 +02:00
Jannik Vogel
7d7849d71a
citra_qt: Replace 'Pica Framebuffer Debugger' with 'Pica Surface Viewer'
2016-05-07 11:30:47 +02:00
Jannik Vogel
7a77b8356c
Pica: Rename VertexLoaded breakpoint to VertexShaderInvocation
2016-05-04 10:21:51 +02:00
Jannik Vogel
f74652d2fe
Pica: Use a union for PicaShaderConfig
2016-05-03 15:06:49 +02:00
Jannik Vogel
5fc8eb227a
Pica: Add TevStageConfigRaw to PicaShaderConfig (MSVC workaround)
2016-05-03 15:06:46 +02:00
Jannik Vogel
f3f7018c9e
Pica: Make PicaShaderConfig trivially_copyable and clear it before use
2016-05-03 14:10:11 +02:00
Jannik Vogel
5ec1140f8b
OpenGL: Don't copy const_color (Reverts #1745 )
2016-05-03 12:34:52 +02:00
Jannik Vogel
696cb197a5
Pica: Replace logic in shader.cpp with loop
2016-05-03 01:40:47 +02:00
Jannik Vogel
7e0d6903ff
OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied
2016-05-01 16:35:54 +02:00
Jannik Vogel and Yuri Kunde Schlesner
aab41604f7
OpenGL: border_color was never set. Fixed. ( #1740 )
2016-04-30 12:20:23 -07:00
Jannik Vogel
49bfe9bf91
Remove TGA dumper
2016-04-30 09:43:59 +02:00
Jannik Vogel
e2b63a2dd7
Rasterizer: Allow all blend factors for alpha blend-func
2016-04-17 22:44:24 +02:00
Jannik Vogel
997af88ec6
Use Settings::Apply in SDL frontend
2016-04-11 15:20:05 +02:00
Jannik Vogel
f2c8619704
CitraQt: Apply config at startup
2016-04-11 15:18:00 +02:00
Jannik Vogel
ff7c798d86
Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
2016-04-10 22:07:06 +02:00
Jannik Vogel
0ad050f85d
OpenGL: Implement color combiner Operation::Dot3_RGB
2016-04-10 15:31:24 +02:00
Jannik Vogel
35a92b4097
OpenGL: Respect buffer-write allow registers
2016-04-08 22:57:11 +02:00
Jannik Vogel
c6bbc41984
OpenGL: Split buffer-write mask sync into seperate functions
2016-04-08 22:42:44 +02:00
Jannik Vogel
fa24df7340
Rasterizer: Respect buffer-write allow registers
2016-04-08 22:35:22 +02:00
Jannik Vogel
d47605b2ed
OpenGL: Keep stencil-test and framebuffer.depth_format in sync
2016-04-08 22:35:17 +02:00
Jannik Vogel
693cbc1f8f
OpenGL: Check for framebuffer completeness
2016-04-03 17:06:05 +02:00
Jannik Vogel
c26b141407
Avoid warnings by casting to size_t for ARRAY_SIZE() comparisons
2016-04-01 02:14:43 +02:00
Jannik Vogel
7eef9ebc3b
PICA: Alignment happens locally in vertex
2016-03-17 02:24:20 +01:00
Jannik Vogel
9aad2f29bb
PICA: Fix MAD/MADI encoding
2016-03-15 20:01:25 +01:00
Jannik Vogel
0cdf8ff102
Update nihstro to latest master
2016-03-15 20:01:25 +01:00
Jannik Vogel
964cfaea47
PICA: Fix viewport offset
2016-03-14 18:37:33 +01:00
Jannik Vogel
f746a00964
Respect vs output map
2016-03-14 13:03:34 +01:00
Jannik Vogel
a66c186e81
PICA: Align vertex attributes
2016-03-13 04:54:23 +01:00
Jannik Vogel
557b732b43
Fix attribute mapping in vs debugger
2016-03-09 13:15:37 +01:00