Subv 
							
						 
					 
					
						
						
							
						
						5d55403f94 
					 
					
						
						
							
							GPU: Calculate the correct viewport dimensions based on the scale and translate registers.  
						
						 
						
						... 
						
						
						
						This is how nouveau calculates the viewport width and height. For some reason some games set 0xFFFF in the VIEWPORT_HORIZ and VIEWPORT_VERT registers, maybe those are a misnomer and actually refer to something else? 
						
						
					 
					
						2018-06-04 16:36:54 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						ba117854f9 
					 
					
						
						
							
							Merge pull request  #500  from Subv/long_queries  
						
						 
						
						... 
						
						
						
						GPU: Partial implementation of long GPU queries. 
						
						
					 
					
						2018-06-03 21:24:50 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						d57333406d 
					 
					
						
						
							
							GPU: Partial implementation of long GPU queries.  
						
						 
						
						... 
						
						
						
						Long queries write a 128-bit result value to memory, which consists of a 64 bit query value and a 64 bit timestamp.
In this implementation, only select=Zero of the Crop unit is implemented, this writes the query sequence as a 64 bit value, and a 0u64 value for the timestamp, since we emulate an infinitely fast GPU.
This specific type was hwtested, but more rigorous tests should be performed in the future for the other types. 
						
						
					 
					
						2018-06-03 19:17:31 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						1efcba346a 
					 
					
						
						
							
							gl_shader_decompiler: Implement TEXS component mask.  
						
						 
						
						
						
						
					 
					
						2018-06-03 12:08:17 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						bb9d39b8fe 
					 
					
						
						
							
							Merge pull request  #494  from bunnei/shader-tex  
						
						 
						
						... 
						
						
						
						gl_shader_decompiler: Implement TEX, fixes for TEXS. 
						
						
					 
					
						2018-06-03 12:05:38 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						e54ea773fc 
					 
					
						
						
							
							gl_shader_decompiler: Implement RRO as a register move.  
						
						 
						
						
						
						
					 
					
						2018-06-03 11:14:31 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						888eb345c0 
					 
					
						
						
							
							gl_shader_decompiler: Implement TEX instruction.  
						
						 
						
						
						
						
					 
					
						2018-05-31 23:36:45 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						4c727d0ba8 
					 
					
						
						
							
							gl_shader_decompiler: Support multi-destination for TEXS.  
						
						 
						
						
						
						
					 
					
						2018-05-31 22:57:32 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						15086a22be 
					 
					
						
						
							
							Merge pull request  #489  from Subv/vertexid  
						
						 
						
						... 
						
						
						
						Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader. 
						
						
					 
					
						2018-05-30 14:10:48 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						99f12b05fa 
					 
					
						
						
							
							Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.  
						
						 
						
						
						
						
					 
					
						2018-05-30 10:58:03 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						68937a662d 
					 
					
						
						
							
							gl_shader_decompiler: Partially implement F2F_R instruction.  
						
						 
						
						
						
						
					 
					
						2018-05-29 23:10:44 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						ee53688ca7 
					 
					
						
						
							
							shader_bytecode: Implement other variants of FMNMX.  
						
						 
						
						
						
						
					 
					
						2018-05-25 23:18:50 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						898f0fa029 
					 
					
						
						
							
							Merge pull request  #458  from Subv/fmnmx  
						
						 
						
						... 
						
						
						
						Shaders: Implemented the FMNMX shader instruction. 
						
						
					 
					
						2018-05-20 23:44:07 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						8440cef223 
					 
					
						
						
							
							Shaders: Implemented the FMNMX shader instruction.  
						
						 
						
						
						
						
					 
					
						2018-05-20 17:53:06 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						a056d5ad8c 
					 
					
						
						
							
							ShadersDecompiler: Added decoding for the PSETP instruction.  
						
						 
						
						
						
						
					 
					
						2018-05-19 11:41:14 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						f41eb95e13 
					 
					
						
						
							
							maxwell_3d: Reset vertex counts after drawing.  
						
						 
						
						
						
						
					 
					
						2018-04-29 16:23:31 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						c7ce472eeb 
					 
					
						
						
							
							shader_bytecode: Add decoding for FMNMX instruction.  
						
						 
						
						
						
						
					 
					
						2018-04-29 16:05:17 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						6c464a2a4a 
					 
					
						
						
							
							Merge pull request  #416  from bunnei/shader-ints-p3  
						
						 
						
						... 
						
						
						
						gl_shader_decompiler: Implement MOV32I, partially implement I2I, I2F 
						
						
					 
					
						2018-04-29 12:56:16 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						f87ea8fa8b 
					 
					
						
						
							
							fermi_2d: Fix surface copy block height.  
						
						 
						
						
						
						
					 
					
						2018-04-28 20:40:03 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						0c01c34eff 
					 
					
						
						
							
							gl_shader_decompiler: Partially implement I2I_R, and I2F_R.  
						
						 
						
						
						
						
					 
					
						2018-04-28 20:03:19 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						f2dcb39049 
					 
					
						
						
							
							shader_bytecode: Add decodings for i2i instructions.  
						
						 
						
						
						
						
					 
					
						2018-04-28 20:03:18 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						a7b5ab4d9a 
					 
					
						
						
							
							gl_shader_decompiler: Implement MOV32_IMM instruction.  
						
						 
						
						
						
						
					 
					
						2018-04-28 20:03:18 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Lioncash 
							
						 
					 
					
						
						
							
						
						8475496630 
					 
					
						
						
							
							general: Convert assertion macros over to be fmt-compatible  
						
						 
						
						
						
						
					 
					
						2018-04-27 10:04:02 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						c9d7abe9c9 
					 
					
						
						
							
							gl_shader_decompiler: Boilerplate for handling integer instructions.  
						
						 
						
						
						
						
					 
					
						2018-04-26 14:38:42 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						f81b915fd8 
					 
					
						
						
							
							Merge pull request  #396  from Subv/shader_ops  
						
						 
						
						... 
						
						
						
						Shaders: Implemented the FSET instruction. 
						
						
					 
					
						2018-04-25 22:42:54 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						20d86d8a36 
					 
					
						
						
							
							GPU: Partially implemented the Fermi2D surface copy operation.  
						
						 
						
						... 
						
						
						
						The hardware allows for some rather complicated operations to be performed on the data during the copy, this is not implemented.
Only same-format same-size raw copies are implemented for now. 
						
						
					 
					
						2018-04-25 12:54:26 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						e9ad8e9185 
					 
					
						
						
							
							Shaders: Added bit decodings for the I2I instruction.  
						
						 
						
						
						
						
					 
					
						2018-04-25 12:52:55 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						378c881427 
					 
					
						
						
							
							GPU: Added surface copy registers to Fermi2D  
						
						 
						
						
						
						
					 
					
						2018-04-25 11:55:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						b1109931b9 
					 
					
						
						
							
							GPU: Added boilerplate code for the Fermi2D engine  
						
						 
						
						
						
						
					 
					
						2018-04-25 11:55:29 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						c16cfbbc6c 
					 
					
						
						
							
							GPU: Reduce the number of registers of Maxwell3D to 0xE00.  
						
						 
						
						... 
						
						
						
						The rest are just macro shim registers. 
						
						
					 
					
						2018-04-25 11:55:28 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						a994446b6e 
					 
					
						
						
							
							GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D processor.  
						
						 
						
						... 
						
						
						
						It doesn't belong in the PFIFO handler. 
						
						
					 
					
						2018-04-25 11:55:27 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Lioncash 
							
						 
					 
					
						
						
							
						
						b7551e457b 
					 
					
						
						
							
							video-core: Move logging macros over to new fmt-capable ones  
						
						 
						
						
						
						
					 
					
						2018-04-25 09:13:57 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						0369ee7248 
					 
					
						
						
							
							Shaders: Added decodings for the FSET instructions.  
						
						 
						
						
						
						
					 
					
						2018-04-24 22:42:54 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						239ac8abe2 
					 
					
						
						
							
							memory_manager: Make GpuToCpuAddress return an optional.  
						
						 
						
						
						
						
					 
					
						2018-04-24 17:49:19 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						9e11a76e92 
					 
					
						
						
							
							memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.  
						
						 
						
						
						
						
					 
					
						2018-04-24 17:40:43 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						e8c2bb24b2 
					 
					
						
						
							
							Merge pull request  #386  from Subv/gpu_query  
						
						 
						
						... 
						
						
						
						GPU: Added asserts to our code for handling the QUERY_GET GPU command. 
						
						
					 
					
						2018-04-24 16:13:51 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						f208953585 
					 
					
						
						
							
							GPU: Added asserts to our code for handling the QUERY_GET GPU command.  
						
						 
						
						... 
						
						
						
						This is based on research from nouveau. Many things are currently unknown and will require hwtests in the future.
This commit also stubs QueryMode::Write2 to do the same as Write. Nouveau code treats them interchangeably, it is currently unknown what the difference is. 
						
						
					 
					
						2018-04-23 17:06:57 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						9531a29283 
					 
					
						
						
							
							GPU: Support multiple enabled vertex arrays.  
						
						 
						
						... 
						
						
						
						The vertex arrays will be copied to the stream buffer one after the other, and the attributes will be set using the ARB_vertex_attrib_binding extension.
yuzu now thus requires OpenGL 4.3 or the ARB_vertex_attrib_binding extension. 
						
						
					 
					
						2018-04-23 11:34:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						e1630c4d43 
					 
					
						
						
							
							shader_bytecode: Add several more instruction decodings.  
						
						 
						
						
						
						
					 
					
						2018-04-20 22:30:56 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						9f6d305eab 
					 
					
						
						
							
							shader_bytecode: Decode instructions based on bit strings.  
						
						 
						
						
						
						
					 
					
						2018-04-20 22:30:56 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						c3a8ea76f1 
					 
					
						
						
							
							ShaderGen: Implemented predicated instruction execution.  
						
						 
						
						... 
						
						
						
						Each predicated instruction will be wrapped in an `if (predicate) { instruction_body; }` in the GLSL, where `predicate` is one of the predicate boolean variables previously set by fsetp. 
						
						
					 
					
						2018-04-20 21:09:33 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						0a5e01b710 
					 
					
						
						
							
							ShaderGen: Implemented the fsetp instruction.  
						
						 
						
						... 
						
						
						
						Predicate variables are now added to the generated shader code in the form of 'pX' where X is the predicate id.
These predicate variables are initialized to false on shader startup and are set via the fsetp instructions.
TODO:
* Not all the comparison types are implemented.
* Only the single-predicate version is implemented. 
						
						
					 
					
						2018-04-20 21:09:33 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						d03fc77475 
					 
					
						
						
							
							ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).  
						
						 
						
						
						
						
					 
					
						2018-04-20 14:57:40 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						fe84842137 
					 
					
						
						
							
							ShaderGen: Implemented the fmul32i shader instruction.  
						
						 
						
						
						
						
					 
					
						2018-04-19 13:46:32 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						ce4f159b1c 
					 
					
						
						
							
							gl_shader_gen: Support vertical/horizontal viewport flipping. ( #347 )  
						
						 
						
						... 
						
						
						
						* gl_shader_gen: Support vertical/horizontal viewport flipping.
* fixup! gl_shader_gen: Support vertical/horizontal viewport flipping. 
						
						
					 
					
						2018-04-18 16:42:40 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Subv 
							
						 
					 
					
						
						
							
						
						48d4efbd69 
					 
					
						
						
							
							GPU: Pitch textures are now supported, don't assert when encountering them.  
						
						 
						
						
						
						
					 
					
						2018-04-18 12:52:53 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						c93ea96366 
					 
					
						
						
							
							Merge pull request  #346  from bunnei/misc-gpu-improvements  
						
						 
						
						... 
						
						
						
						Misc gpu improvements 
						
						
					 
					
						2018-04-17 22:17:07 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						71b4a3b9f6 
					 
					
						
						
							
							Merge pull request  #344  from bunnei/shader-decompiler-p2  
						
						 
						
						... 
						
						
						
						Shader decompiler changes part 2 
						
						
					 
					
						2018-04-17 22:10:53 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						4a8eb6745e 
					 
					
						
						
							
							maxwell3d: Allow Texture2DNoMipmap as Texture2D.  
						
						 
						
						
						
						
					 
					
						2018-04-17 21:39:15 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bunnei 
							
						 
					 
					
						
						
							
						
						531c25386e 
					 
					
						
						
							
							shader_bytecode: Make ctor's constexpr and explicit.  
						
						 
						
						
						
						
					 
					
						2018-04-17 21:27:07 -04:00