wwylele 
							
						 
					 
					
						
						
							
						
						46c6973d2b 
					 
					
						
						
							
							pica/shader: extend UnitState for GS  
						
						... 
						
						
						
						Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access.
This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits 
						
						
					 
					
						2017-08-19 10:13:20 +03:00 
						 
				 
			
				
					
						
							
							
								wwylele 
							
						 
					 
					
						
						
							
						
						c89f804a01 
					 
					
						
						
							
							pica/shader_interpreter: fix off-by-one in LOOP  
						
						
						
						
					 
					
						2017-07-27 13:48:27 +03:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								Mat M 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						e10b11a5d0 
					 
					
						
						
							
							video_core/shader: Document sanitized MUL operation  
						
						
						
						
					 
					
						2017-02-12 13:29:14 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						443bb3d522 
					 
					
						
						
							
							Merge pull request  #2550  from yuriks/pica-refactor2  
						
						... 
						
						
						
						Small VideoCore cleanups 
						
						
					 
					
						2017-02-12 12:33:26 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						60fc0b086f 
					 
					
						
						
							
							VideoCore: Split regs.h inclusions  
						
						
						
						
					 
					
						2017-02-09 00:04:24 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						5759d94b5c 
					 
					
						
						
							
							VideoCore: Move Regs to its own file  
						
						
						
						
					 
					
						2017-02-04 13:59:12 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						f7c7f422c6 
					 
					
						
						
							
							VideoCore: Split shader regs from Regs struct  
						
						
						
						
					 
					
						2017-02-04 13:59:11 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						000e78144c 
					 
					
						
						
							
							VideoCore: Split rasterizer regs from Regs struct  
						
						
						
						
					 
					
						2017-02-04 13:08:47 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						97e06b0a0d 
					 
					
						
						
							
							Merge pull request  #2476  from yuriks/shader-refactor3  
						
						... 
						
						
						
						Oh No! More shader changes! 
						
						
					 
					
						2017-02-04 13:02:48 -08:00 
						 
				 
			
				
					
						
							
							
								wwylele 
							
						 
					 
					
						
						
							
						
						6dc1d6e568 
					 
					
						
						
							
							ShaderJIT: add 16 dummy bytes at the bottom of the stack  
						
						
						
						
					 
					
						2017-02-03 14:53:38 +02:00 
						 
				 
			
				
					
						
							
							
								Weiyi Wang 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Merry 
							
						 
					 
					
						
						
							
						
						f7e96dc068 
					 
					
						
						
							
							shader_jit_x64_compiler: esi and edi should be persistent ( #2500 )  
						
						
						
						
					 
					
						2017-01-31 00:38:31 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						dcdffabfe6 
					 
					
						
						
							
							VideoCore: Extract swrast-specific data from OutputVertex  
						
						
						
						
					 
					
						2017-01-29 21:31:38 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						92bf5c88e6 
					 
					
						
						
							
							VideoCore: Split shader output writing from semantic loading  
						
						
						
						
					 
					
						2017-01-29 21:31:37 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						335df895b9 
					 
					
						
						
							
							VideoCore: Consistently use shader configuration to load attributes  
						
						
						
						
					 
					
						2017-01-29 21:31:37 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						ab6954e942 
					 
					
						
						
							
							VideoCore: Rename some types to more accurate names  
						
						
						
						
					 
					
						2017-01-29 21:31:36 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						0e9081b973 
					 
					
						
						
							
							VideoCore/Shader: Move entry_point to SetupBatch  
						
						
						
						
					 
					
						2017-01-25 18:53:25 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						0f64274145 
					 
					
						
						
							
							VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup  
						
						
						
						
					 
					
						2017-01-25 18:53:25 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						6fa3687afc 
					 
					
						
						
							
							Shader: Remove OutputRegisters struct  
						
						
						
						
					 
					
						2017-01-25 18:53:25 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						1a2acc3baa 
					 
					
						
						
							
							Shader: Don't read ShaderSetup from global state  
						
						
						
						
					 
					
						2017-01-25 18:53:24 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						fa4ac279a7 
					 
					
						
						
							
							shader_jit_x64: Don't read program from global state  
						
						
						
						
					 
					
						2017-01-25 18:53:24 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						ade7ed7c5f 
					 
					
						
						
							
							VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine  
						
						
						
						
					 
					
						2017-01-25 18:53:24 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						114d6b2f97 
					 
					
						
						
							
							VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines  
						
						
						
						
					 
					
						2017-01-25 18:53:24 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						8eefc62833 
					 
					
						
						
							
							VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}  
						
						
						
						
					 
					
						2017-01-25 18:53:23 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						bd82cffd0b 
					 
					
						
						
							
							VideoCore/Shader: Add constness to methods  
						
						
						
						
					 
					
						2017-01-25 18:53:23 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						e3caf669b0 
					 
					
						
						
							
							VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup  
						
						
						
						
					 
					
						2017-01-25 18:53:23 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						34d581f2dc 
					 
					
						
						
							
							VideoCore/Shader: Extract input vertex loading code into function  
						
						
						
						
					 
					
						2017-01-25 18:53:20 -08:00 
						 
				 
			
				
					
						
							
							
								Kloen 
							
						 
					 
					
						
						
							
						
						5cc94c17f6 
					 
					
						
						
							
							video_core: fix shader.cpp signed / unsigned warning  
						
						
						
						
					 
					
						2017-01-23 16:53:31 +01:00 
						 
				 
			
				
					
						
							
							
								Jonathan Hao 
							
						 
					 
					
						
						
							
						
						c18cb1b192 
					 
					
						
						
							
							Fix some warnings ( #2399 )  
						
						
						
						
					 
					
						2017-01-04 13:48:29 -03:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						c135317de1 
					 
					
						
						
							
							VideoCore/Shader: Extract DebugData out from UnitState  
						
						
						
						
					 
					
						2016-12-16 00:16:25 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						6e7e767645 
					 
					
						
						
							
							Remove unnecessary cast  
						
						
						
						
					 
					
						2016-12-16 00:15:55 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						b5e3599704 
					 
					
						
						
							
							VideoCore/Shader: Extract evaluate_condition lambda to function scope  
						
						
						
						
					 
					
						2016-12-16 00:15:51 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						960578f4e1 
					 
					
						
						
							
							VideoCore/Shader: Extract call lambda up a scope and remove unused param  
						
						
						
						
					 
					
						2016-12-15 23:08:05 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						e4e962bc7c 
					 
					
						
						
							
							VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffset  
						
						
						
						
					 
					
						2016-12-15 23:08:05 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						d27cb1dedc 
					 
					
						
						
							
							VideoCore/Shader: Move DebugData to a separate file  
						
						
						
						
					 
					
						2016-12-15 23:08:05 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						fb9e856b91 
					 
					
						
						
							
							shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexing  
						
						
						
						
					 
					
						2016-12-15 10:02:42 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						f00ada3363 
					 
					
						
						
							
							VideoCore: Eliminate an unnecessary copy in the drawcall loop  
						
						
						
						
					 
					
						2016-12-14 21:00:29 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						5ff3206207 
					 
					
						
						
							
							shader_jit_x64: Use Reg32 for LOOP* registers, eliminating casts  
						
						
						
						
					 
					
						2016-12-14 20:06:09 -08:00 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						f4e98ecf3f 
					 
					
						
						
							
							VideoCore: Convert x64 shader JIT to use Xbyak for assembly  
						
						
						
						
					 
					
						2016-12-14 20:06:08 -08: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 
						 
				 
			
				
					
						
							
							
								Yuri Kunde Schlesner 
							
						 
					 
					
						
						
							
						
						d9a904f9cb 
					 
					
						
						
							
							VideoCore: Shader interpreter cleanups  
						
						
						
						
					 
					
						2016-09-29 21:15:49 -07:00