ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							b13fbc25b8 
							
						 
					 
					
						
						
							
							shader_ir/conversion: Implement F2I F16 Ra.H1  
						
						
						
						
					 
					
						2019-08-27 23:40:40 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							6207751b00 
							
						 
					 
					
						
						
							
							float_set_predicate: Add missing negation bit for the second operand  
						
						
						
						
					 
					
						2019-08-27 21:57:43 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							4e35177e23 
							
						 
					 
					
						
						
							
							shader_ir: Implement VOTE  
						
						... 
						
						
						
						Implement VOTE using Nvidia's intrinsics. Documentation about these can
be found here
https://developer.nvidia.com/reading-between-threads-shader-intrinsics 
Instead of using portable ARB instructions I opted to use Nvidia
intrinsics because these are the closest we have to how Tegra X1
hardware renders.
To stub VOTE on non-Nvidia drivers (including nouveau) this commit
simulates a GPU with a warp size of one, returning what is meaningful
for the instruction being emulated:
* anyThreadNV(value) -> value
* allThreadsNV(value) -> value
* allThreadsEqualNV(value) -> true
ballotARB, also known as "uint64_t(activeThreadsNV())", emits
VOTE.ANY Rd, PT, PT;
on nouveau's compiler. This doesn't match exactly to Nvidia's code
VOTE.ALL Rd, PT, PT;
Which is emulated with activeThreadsNV() by this commit. In theory this
shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
(set to PT on those cases) and not the registers. 
						
						
					 
					
						2019-08-21 14:50:38 -03:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							dfdd20142e 
							
						 
					 
					
						
						
							
							Merge pull request  #2777  from ReinUsesLisp/hsetp2-fe3h-fix  
						
						... 
						
						
						
						half_set_predicate: Fix HSETP2_C constant buffer offset 
						
						
					 
					
						2019-08-21 10:29:17 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							cedc1aab4a 
							
						 
					 
					
						
						
							
							Merge pull request  #2753  from FernandoS27/float-convert  
						
						... 
						
						
						
						Shader_Ir: Implement F16 Variants of F2F, F2I, I2F. 
						
						
					 
					
						2019-08-21 10:27:57 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ca61e298b3 
							
						 
					 
					
						
						
							
							Merge pull request  #2778  from ReinUsesLisp/nop  
						
						... 
						
						
						
						shader_ir: Implement NOP 
						
						
					 
					
						2019-08-18 08:51:34 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							2ff8044806 
							
						 
					 
					
						
						
							
							shader_ir: Implement NOP  
						
						
						
						
					 
					
						2019-08-04 03:02:55 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							ec0da3ef64 
							
						 
					 
					
						
						
							
							half_set_predicate: Fix HSETP2_C constant buffer offset  
						
						
						
						
					 
					
						2019-08-04 02:50:55 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							77f1a676a1 
							
						 
					 
					
						
						
							
							decode/half_set_predicate: Fix predicates  
						
						
						
						
					 
					
						2019-07-26 00:12:38 -03:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b0ff3179ef 
							
						 
					 
					
						
						
							
							Merge pull request  #2739  from lioncash/cflow  
						
						... 
						
						
						
						video_core/control_flow: Minor changes/warning cleanup 
						
						
					 
					
						2019-07-25 13:04:56 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4d26550f5f 
							
						 
					 
					
						
						
							
							Merge pull request  #2737  from FernandoS27/track-fix  
						
						... 
						
						
						
						Shader_Ir: Correct tracking to track from right to left 
						
						
					 
					
						2019-07-25 12:41:52 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							31e8a61527 
							
						 
					 
					
						
						
							
							Merge pull request  #2743  from FernandoS27/surpress-assert  
						
						... 
						
						
						
						Downgrade and suppress a series of GPU asserts and debug messages. 
						
						
					 
					
						2019-07-25 12:34:36 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							104641db07 
							
						 
					 
					
						
						
							
							shader/decode: Implement S2R Tic  
						
						
						
						
					 
					
						2019-07-22 16:16:10 -03:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							11f4e739bd 
							
						 
					 
					
						
						
							
							Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.  
						
						... 
						
						
						
						This commit takes care of implementing the F16 Variants of the 
conversion instructions and makes sure conversions are done. 
						
						
					 
					
						2019-07-20 17:38:25 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							1158777737 
							
						 
					 
					
						
						
							
							Shader_Ir: Change Debug Asserts for Log Warnings  
						
						
						
						
					 
					
						2019-07-19 22:15:34 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							45c162444d 
							
						 
					 
					
						
						
							
							shader/half_set_predicate: Fix HSETP2 implementation  
						
						
						
						
					 
					
						2019-07-19 22:21:22 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							6c4985edc9 
							
						 
					 
					
						
						
							
							shader/half_set_predicate: Implement missing HSETP2 variants  
						
						
						
						
					 
					
						2019-07-19 22:20:47 -03:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							c1c89411da 
							
						 
					 
					
						
						
							
							video_core/control_flow: Provide operator!= for types with operator==  
						
						... 
						
						
						
						Provides operational symmetry for the respective structures. 
						
						
					 
					
						2019-07-18 21:03:31 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							1780e0e3d0 
							
						 
					 
					
						
						
							
							video_core/control_flow: Prevent sign conversion in TryGetBlock()  
						
						... 
						
						
						
						The return value is a u32, not an s32, so this would result in an
implicit signedness conversion. 
						
						
					 
					
						2019-07-18 21:03:31 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							a162a844d2 
							
						 
					 
					
						
						
							
							video_core/control_flow: Remove unnecessary BlockStack copy constructor  
						
						... 
						
						
						
						This is the default behavior of the copy constructor, so it doesn't need
to be specified.
While we're at it we can make the other non-default constructor
explicit. 
						
						
					 
					
						2019-07-18 21:03:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							56bc11d952 
							
						 
					 
					
						
						
							
							video_core/control_flow: Use std::move where applicable  
						
						... 
						
						
						
						Results in less work being done where avoidable. 
						
						
					 
					
						2019-07-18 21:03:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e7b39f47f8 
							
						 
					 
					
						
						
							
							video_core/control_flow: Use the prefix variant of operator++ for iterators  
						
						... 
						
						
						
						Same thing, but potentially allows a standard library implementation to
pick a more efficient codepath. 
						
						
					 
					
						2019-07-18 21:03:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							6885e7e7ec 
							
						 
					 
					
						
						
							
							video_core/control_flow: Use empty() member function for checking emptiness  
						
						... 
						
						
						
						It's what it's there for. 
						
						
					 
					
						2019-07-18 21:03:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							45fa12a05c 
							
						 
					 
					
						
						
							
							video_core: Resolve -Wreorder warnings  
						
						... 
						
						
						
						Ensures that the constructor members are always initialized in the order
that they're declared in. 
						
						
					 
					
						2019-07-18 21:03:30 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							47df844338 
							
						 
					 
					
						
						
							
							video_core/control_flow: Make program_size for ScanFlow() a std::size_t  
						
						... 
						
						
						
						Prevents a truncation warning from occurring with MSVC. Also the
internal data structures already treat it as a size_t, so this is just a
discrepancy in the interface. 
						
						
					 
					
						2019-07-18 21:03:29 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							3df9558593 
							
						 
					 
					
						
						
							
							video_core/control_flow: Place all internally linked types/functions within an anonymous namespace  
						
						... 
						
						
						
						Previously, quite a few functions were being linked with external
linkage. 
						
						
					 
					
						2019-07-18 21:03:29 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							1109db86b7 
							
						 
					 
					
						
						
							
							video_core/shader/decode: Prevent sign-conversion warnings  
						
						... 
						
						
						
						Makes it explicit that the conversions here are intentional. 
						
						
					 
					
						2019-07-18 21:03:29 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							63bda67a34 
							
						 
					 
					
						
						
							
							Merge pull request  #2738  from lioncash/shader-ir  
						
						... 
						
						
						
						shader-ir: Minor cleanup-related changes 
						
						
					 
					
						2019-07-18 13:52:01 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							5a06e33859 
							
						 
					 
					
						
						
							
							Shader_Ir: correct clang format  
						
						
						
						
					 
					
						2019-07-18 10:09:26 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							0b65e9335e 
							
						 
					 
					
						
						
							
							Shader_Ir: Downgrade precision and rounding asserts to debug asserts.  
						
						... 
						
						
						
						This commit reduces the sevirity of asserts for FP precision and 
rounding as this are well known and have little to no consequences in 
gpu's accuracy. 
						
						
					 
					
						2019-07-18 08:17:19 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							223a535f3f 
							
						 
					 
					
						
						
							
							Merge pull request  #2740  from lioncash/bra  
						
						... 
						
						
						
						shader/decode/other: Correct branch indirect argument within BRA handling 
						
						
					 
					
						2019-07-17 14:25:08 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							bebbdc2067 
							
						 
					 
					
						
						
							
							shader_ir: std::move Node instance where applicable  
						
						... 
						
						
						
						These are std::shared_ptr instances underneath the hood, which means
copying them isn't as cheap as a regular pointer. Particularly so on
weakly-ordered systems.
This avoids atomic reference count increments and decrements where they
aren't necessary for the core set of operations. 
						
						
					 
					
						2019-07-16 19:49:23 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							60926ac16b 
							
						 
					 
					
						
						
							
							shader_ir: Rename Get/SetTemporal to Get/SetTemporary  
						
						... 
						
						
						
						This is more accurate in terms of describing what the functions are
actually doing. Temporal relates to time, not the setting of a temporary
itself. 
						
						
					 
					
						2019-07-16 19:47:43 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							44d87ff641 
							
						 
					 
					
						
						
							
							shader_ir: Remove unused includes  
						
						... 
						
						
						
						Removes unnecessary header dependencies. 
						
						
					 
					
						2019-07-16 19:47:42 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							d614193e49 
							
						 
					 
					
						
						
							
							Shader_Ir: Correct tracking to track from right to left  
						
						
						
						
					 
					
						2019-07-16 15:06:59 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b56e7f870a 
							
						 
					 
					
						
						
							
							Merge pull request  #2565  from ReinUsesLisp/track-indirect  
						
						... 
						
						
						
						shader/track: Track indirect buffers 
						
						
					 
					
						2019-07-16 14:58:35 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e2d7dda166 
							
						 
					 
					
						
						
							
							shader/decode/other: Correct branch indirect argument within BRA handling  
						
						... 
						
						
						
						This appears to have been a copy/paste error introduced within
8a6fc529a968e007f01464abadd32f9b5eb0a26c 
						
						
					 
					
						2019-07-16 12:20:45 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1bdb59fc6e 
							
						 
					 
					
						
						
							
							Merge pull request  #2695  from ReinUsesLisp/layer-viewport  
						
						... 
						
						
						
						gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders 
						
						
					 
					
						2019-07-15 16:28:07 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							afa8096df5 
							
						 
					 
					
						
						
							
							shader: Allow tracking of indirect buffers without variable offset  
						
						... 
						
						
						
						While changing this code, simplify tracking code to allow returning
the base address node, this way callers don't have to manually rebuild
it on each invocation. 
						
						
					 
					
						2019-07-14 22:36:44 -03:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0ec9da2f9f 
							
						 
					 
					
						
						
							
							Merge pull request  #2692  from ReinUsesLisp/tlds-f16  
						
						... 
						
						
						
						shader/texture: Add F16 support for TLDS 
						
						
					 
					
						2019-07-14 08:44:38 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							f2549739d1 
							
						 
					 
					
						
						
							
							shader_ir: Add comments on missing instruction.  
						
						... 
						
						
						
						Also shows Nvidia's address space on comments. 
						
						
					 
					
						2019-07-09 17:15:45 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							2de7649311 
							
						 
					 
					
						
						
							
							shader_ir: limit explorastion to best known program size.  
						
						
						
						
					 
					
						2019-07-09 08:14:43 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e7c6045a03 
							
						 
					 
					
						
						
							
							control_flow: Correct block breaking algorithm.  
						
						
						
						
					 
					
						2019-07-09 08:14:43 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							dc4a93594c 
							
						 
					 
					
						
						
							
							control_flow: Assert shaders bigger than limit.  
						
						
						
						
					 
					
						2019-07-09 08:14:42 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							e7a88f0ab3 
							
						 
					 
					
						
						
							
							control_flow: Address feedback.  
						
						
						
						
					 
					
						2019-07-09 08:14:42 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							34357b110c 
							
						 
					 
					
						
						
							
							shader_ir: Correct parsing of scheduling instructions and correct sizing  
						
						
						
						
					 
					
						2019-07-09 08:14:41 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							cfb3db1a32 
							
						 
					 
					
						
						
							
							shader_ir: Correct max sizing  
						
						
						
						
					 
					
						2019-07-09 08:14:40 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							d45fed3030 
							
						 
					 
					
						
						
							
							shader_ir: Remove unnecessary constructors and use optional for ScanFlow result  
						
						
						
						
					 
					
						2019-07-09 08:14:40 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							01b21ee1e8 
							
						 
					 
					
						
						
							
							shader_ir: Corrections, documenting and asserting control_flow  
						
						
						
						
					 
					
						2019-07-09 08:14:39 -04:00 
						 
				 
			
				
					
						
							
							
								Fernando Sahmkow 
							
						 
					 
					
						
						
						
						
							
						
						
							d5533b440c 
							
						 
					 
					
						
						
							
							shader_ir: Unify blocks in decompiled shaders.  
						
						
						
						
					 
					
						2019-07-09 08:14:39 -04:00